我正在尝试在VS2008中本地化桌面应用程序(C#)。
我已经掌握了多种语言的表单本地化,我还有一个普通字符串的项目资源文件,但我无法理解如何创建这个文件的多个语言版本!
似乎没有记录在任何地方。
结果似乎是,如果我想生成我的应用程序的德语版本,我必须编辑常规资源文件(Properties / Resources.resx),构建和部署应用程序,然后重新编辑一般资源文件回到英文。
每次我想要制作新的德语版本时,我都必须这样做。与用于本地化表单的工具相比,这看起来很笨重,我相信在VS2008中有更好的方法。有谁知道它是什么?
答案 0 :(得分:3)
你是对的,我误解了这个问题。
在这种情况下,您可能想要尝试的是向项目添加新项目,或者添加现有资源文件的现有副本,可能必须先在VS之外重命名。
选择“资源文件”
将其命名为Resource.de-DE.resx
创建后,您可以将其移动到“属性”文件夹中。
打开文件,将顶部的访问修饰符更改为内部,将其设置为“无代码生成”
将带有德语翻译的字符串添加到新资源文件
编译,当语言或线程UI文化发生变化时,应使用语言资源文件中的正确值。
我的快速小测试工作正常,并根据需要切换。
答案 1 :(得分:2)
你可以使用Satellite Resource DLLs(注意:我只在C ++中使用它们) 这是一个系统,您可以为要支持的每种语言使用不同的资源DLL。应用程序内部将不再有资源(至少没有可能必须本地化的资源),因此翻译团队只需将资源DLL的翻译成适当的语言。
答案 2 :(得分:1)
实际上Visual Studio内置了这个功能。 在您的表单上,您希望本地化语言,将Localizable属性更改为true。
然后将Language属性更改为您要为其设置资源文件的语言。 在您的情况下,选择德语。
将表单上的所有文本更改为德语文本。这将为您更改语言属性的每种语言创建一个额外的resx文件。
完成后,您可以更改为另一种翻译后的表单资源文件的其他语言,或切换回默认值。
现在,当计算机在设置为使用其他语言的计算机上运行时,它将查找要匹配的resx文件并切换所有控件以使用资源文件中提供的文本。
您还可以通过更改CurrentThread上的CurrentUICulture
来测试这也是MSDN上的一个很好的演练:
http://msdn.microsoft.com/en-us/library/y99d1cd3(VS.80).aspx