我正在为 Windows CE 设备使用 C# 编写一个程序,并且希望根据应用程序本身的语言设置来翻译该应用程序。
我已经阅读了一些有关使用资源文件进行本地化以及使用“可本地化”和“语言”属性翻译表单的文章。根据我所读到的内容,我了解到这种类型的表单翻译适用于操作系统语言设置(如果我错了,请纠正我)。
现在我正在寻找一种根据我自己的程序内语言设置进行表单翻译的方法,最好使用资源文件。
我已经考虑过在每个表单的 Load 事件中进行此翻译,但也许还有其他解决方案或最佳实践。任何帮助表示赞赏。
如果您使用 Language.resx、Language.[语言]-[国家/地区].resx 方式进行本地化,则生成的语言类将具有一个名为 Culture 的属性,可以将其设置为覆盖当前系统区域性。
Language.Culture = new CultureInfo("sv-SE");
label1.Text = Language.my_language_string;
如果您想使用 ResourceManager 类,它有一个带有参数 CultureInfo 的成员 GetResourceSet()。我自己没有尝试过使用 GetResourceSet,但这听起来像是您可以使用的东西。
ResourceManager CultureResourceManager = new ResourceManager("My.Language.Assembly", System.Reflection.Assembly.GetExecutingAssembly());
ResourceSet resourceSet = CultureResourceManager.GetResourceSet("sv-SE", true, true);
resourceSet.GetString("my_language_resource");
MSDN 链接:http://msdn.microsoft.com/en-us/library/system.resources.resourcemanager.getresourceset(v=vs.80).aspxo http://msdn.microsoft.com/en-us/library/system.resources.resourcemanager.getresourceset(v=vs.80).aspxo
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)