制作多语言用户控件

本文关键字:用户 控件 语言 | 更新日期: 2023-09-27 18:11:45

我正在开发一个用户控件,现在(在工作结束时)我面临着使其多语言的问题。我想我可以这样做:

  1. 对于UI部分,我可以将Localizable = true设置为控件,并让VS生成我需要的默认语言的所有"记录"。
  2. 然后我必须手动添加我用于动态菜单,消息等的所有字符串
  3. 最后我需要为我需要的语言创建所有资源文件

使用MSDN

中的代码
Assembly myAssembly = this.GetType().Assembly;
ResourceManager mgr = new ResourceManager("namespace.resource", myAssembly);
mgr.GetString(...) 

我的工作可以(轻松)完成。
但是我有一些问题:

  1. 当我的控制(生成的DLL)是从终端用户使用,我可以有一些麻烦使用new ResourceManager(...),因为在目标应用程序的主要名称空间的变化?
    考虑我不知道最终用户将使用哪个命名空间。
  2. 当我创建语言资源时,VS生成卫星程序集:是否有一种方法可以"集成"这些文件在我的目标DLL中?
    如果可能的话,我想只部署一个文件…
  3. 有没有更好的方法来完成我的任务?
  4. 当我开发多语言控件时,我真的需要关心什么吗?

谢谢大家


更新:(感谢@ lak_b的一些建议)

经过一番研究,我回答了一些问题:

  1. 这是真的,我可以硬编码命名空间,这不会被改变当最终用户把我的控制在他的表单
  2. 嗯,似乎没有简单的方法。
    无论如何,这篇文章提供了一个很好的教训和一个很好的解决方案!!
  3. …不,对于这个问题,我仍然在等待有人告诉我一个更好/更简单的方法
  4. 从lake -b中指定了某个临界点。
    还有什么我需要担心的吗?

再次感谢

制作多语言用户控件

看看在c#/WinForms中制作多语言应用程序的最佳实践?

  1. 你可以在这里"硬编码"程序集名称。
  2. 试试这个http://research.microsoft.com/en-us/people/mbarnett/ILMerge.aspx
  3. 你只需要搜索一下,然后在行动中尝试一下!总而言之,你必须关心很多事情:
    • DateTime
    • 货币
    • 一周的第一天
    • 从右到左或从左到右