制作多语言用户控件
本文关键字:用户 控件 语言 | 更新日期: 2023-09-27 18:11:45
我正在开发一个用户控件,现在(在工作结束时)我面临着使其多语言的问题。我想我可以这样做:
- 对于UI部分,我可以将
Localizable = true
设置为控件,并让VS生成我需要的默认语言的所有"记录"。 - 然后我必须手动添加我用于动态菜单,消息等的所有字符串
- 最后我需要为我需要的语言创建所有资源文件
使用MSDN
中的代码Assembly myAssembly = this.GetType().Assembly;
ResourceManager mgr = new ResourceManager("namespace.resource", myAssembly);
mgr.GetString(...)
我的工作可以(轻松)完成。
但是我有一些问题:
- 当我的控制(生成的DLL)是从终端用户使用,我可以有一些麻烦使用
new ResourceManager(...)
,因为在目标应用程序的主要名称空间的变化?
考虑我不知道最终用户将使用哪个命名空间。 - 当我创建语言资源时,VS生成卫星程序集:是否有一种方法可以"集成"这些文件在我的目标DLL中?
如果可能的话,我想只部署一个文件… 有没有更好的方法来完成我的任务? - 当我开发多语言控件时,我真的需要关心什么吗?
谢谢大家
更新:(感谢@ lak_b的一些建议)
经过一番研究,我回答了一些问题:
- 这是真的,我可以硬编码命名空间,这不会被改变当最终用户把我的控制在他的表单 嗯,似乎没有简单的方法。
- …不,对于这个问题,我仍然在等待有人告诉我一个更好/更简单的方法
- 从lake -b中指定了某个临界点。
还有什么我需要担心的吗?
无论如何,这篇文章提供了一个很好的教训和一个很好的解决方案!!
再次感谢
看看在c#/WinForms中制作多语言应用程序的最佳实践?
- 你可以在这里"硬编码"程序集名称。
- 试试这个http://research.microsoft.com/en-us/people/mbarnett/ILMerge.aspx
-
- 你只需要搜索一下,然后在行动中尝试一下!总而言之,你必须关心很多事情:
- DateTime 货币
- 一周的第一天
- 从右到左或从左到右
- 你只需要搜索一下,然后在行动中尝试一下!总而言之,你必须关心很多事情: