配置文件的全球化

时间:2009-11-05 09:02:44

标签: c# xml globalization

我有多个配置文件描述了我的系统的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文件

谢谢!

3 个答案:

答案 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...

因此,当西班牙人访问您的应用程序时,他们将获得默认语言,斯洛文尼亚语将获得他们自己的翻译,爱尔兰和德国用户也将...所有这些文件将具有相同的资源键但提供不同的翻译。您需要做的就是在配置文件中使用这些密钥。单一 - 语言中立。