1
527
运行此代码:
它应该打印“你好”。 现在,添加一个名为“strings.fr.resx”的新资源文件(注意“fr”部分;这个部分将包含法语资源)。添加一个字符串资源,该资源的名称与strings.resx中的名称相同,但其值为法语(name=“hello”,value=“salut”)。现在,如果运行以下代码,它将打印salut:
发生的是系统将为“fr-fr”寻找资源。它将找不到一个(因为我们在您的文件中指定了“fr”)。然后它将返回到检查“fr”,它发现(并使用)。 下面的代码,将打印“您好”:
这是因为它找不到任何“en-us”资源,也找不到“en”资源,所以它将返回到默认值,即我们从一开始就添加的值。 如果需要,您可以创建具有更多特定资源的文件(例如,法国和加拿大分别为strings.fr-fr.resx和strings.fr-ca.resx)。在每一个这样的文件中,您将需要为那些字符串添加资源,这些字符串不同于它将返回到的资源。因此,如果在法国和加拿大文本相同,可以将其放入strings.fr.resx,而加拿大法语中不同的字符串可以放入strings.fr-ca.resx。 |
2
36
实际上,这很简单。例如,创建一个新的资源文件
现在,如果要添加(例如德语本地化),请添加本地化的resx文件。这通常是
现在开始创建一个字符串-假设一个具有名称的字符串
现在您已经生成了这个
你可以使用
|
3
14
很好的答案。但是,如果您想要更新翻译,或者在应用程序发布后添加新语言,那么您将陷入困境,因为您总是需要重新编译它来生成resources.dll。 下面是手动编译资源dll的解决方案。它使用resgen.exe和al.exe工具(与sdk一起安装)。 假设您有strings.fr.resx资源文件,则可以使用以下批处理编译资源dll:
请确保将原始命名空间保留在文件名中(此处为“wpfribbonapplication1”)。 |
4
14
此外,@fredrik m¶rk对弦乐的伟大回答 表单本地化 执行以下操作:
这个 MSDN article on Localizing Windows Forms 提供更多信息。 |
5
9
修正和阐述 @弗雷德里克 回答。
Visual Studio自动生成
此代码始终打印
现在添加一个新的语言特定资源:
以下代码打印
使用什么资源取决于
您可以添加特定于国家的资源,如
要使用的字符串按以下优先顺序确定:
请注意,特定于语言的资源会生成 satellite assemblies .
还学习如何
|
6
0
除了 @埃里克·博勒·费索特 答: 由于有了卫星组件,可以基于 .DLL/exe 文件夹。这种方式:
有一种鲜为人知的工具叫做 LSACreator (非商业用途或购买选项免费)允许您基于.dll/.exe文件创建本地化。实际上,它在内部(在语言项目的目录中)创建/管理resx文件的本地化版本,并以类似于 @埃里克·博勒·费索特 描述。 |
7
0
以我为例
在assemblyinfo.cs中,阻止了正常工作。 |
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |