我有多个配置文件描述了我的系统的Addins。 我正在寻找一种方法来全局化配置文件中的某些标签(即支持多种语言)
例如:在文件activity.xml中,我想全局化一些属性:
<?xml version="1.0" encoding="UTF-8"?>
<Resource
type="Activity"
id="123456.ConcatenateStrings"
version="1.0.0"
group="String Manipulation"
shortName="$$Concatenate_Strings"
description="$$Concatenates_Strings_Description"
assembly="VTDBasicActivities.dll"
className="ConcatenateStringsActivity"
visible="true">
</Resource>
我希望某些属性(shotName,description)的值取自不同的配置文件(可能是resx),其中值可以用任何语言编写。
我需要一种方法来标记某些属性的值,以便xml解析器知道从配置文件中获取它们的值(在我的示例中,我在这些值之前写了“$$”)
这样做的最佳方式是什么? 我正在使用C#
解析xml文件谢谢!
答案 0 :(得分:1)
与我的IT /支持朋友交谈。通常,配置文件以英语保存。它不是最友好的解决方案,但配置映射是指定的信息,硬编码到程序中。 (键是,而不是值)
此外,您还必须记住:使用配置文件的人通常是通知用户,因此修改文件的用户群较小。
答案 1 :(得分:0)
您需要使用资源文件。见这里:http://ondotnet.com/pub/a/dotnet/2002/09/30/manager.html
答案 2 :(得分:0)
而不是在配置中提供实际的字符串,而是提供资源键并将字符串保存在具有不同翻译的资源文件中。这就是资源文件的用途,你也应该使用它们。 不要重新发明轮子。
让Resources.resx
具有所有非本地化语言默认的默认翻译。然后为您要支持的每种语言创建单独的资源文件:
Resources.sl.resx
Resources.en-ie.resx
Resources.de.resx
etc...
因此,当西班牙人访问您的应用程序时,他们将获得默认语言,斯洛文尼亚语将获得他们自己的翻译,爱尔兰和德国用户也将...所有这些文件将具有相同的资源键但提供不同的翻译。您需要做的就是在配置文件中使用这些密钥。单一 - 语言中立。