2009-08-11 57 views
2

我正在使用C#编写应用程序,我希望使其成为多语言。我首先有两个选项,为所有类文件创建单独的资源文件,然后为整个应用程序创建一个公共资源文件。使用C#.NET的多语言窗口应用程序

我不确定哪个选项是最好的,所以有人可以告诉我关于此?如果有任何其他方式实现多语言功能,那么也请让我知道。

干杯:)

回答

1

以我的经验,这样更容易把所有的本地化资源的一个地方。通常,应用程序将有几个地方使用的字符串。如果您将所有资源都集中在一个地方,则只需翻译一次重复的字符串即可。

1

我更喜欢使用IDE中包含的内置本地化功能。它可以是挑剔的,但它可以完成工作。它为每种语言生成一个单独的DLL。

在我使用非UI字符串的情况下,我有一个包含所有语言的XML文件,其中的语言字符串与唯一标识符绑定。

1

我使用Softwarebuero Jollans的“Multi-Language Add-In”(http://jollans.com/tiki/tiki-index.php)。这是一个商业产品,得到很好的支持。您可以将字符串从Visual Studio中的应用程序导出到要翻译的Excel电子表格中,然后将电子表格重新导入到应用程序中。语言将被自动编译为嵌入式资源。

1

我会在每个程序集(需要时)创建一个单独的资源文件。

你可以让VS为资源文件创建一个类,它允许编译时安全地访问资源。 (你为每个字符串获得一个属性。)我认为你使用Build Action来做到这一点。生成的类是内部的。所以资源只能在组件中访问,这是有道理的。

1

使用一个资源文件,并确保您已将所有表单和组件标记为可本地化。完成此操作后,您就可以使用多个第三方工具来定位您的应用程序。

我们在工作中使用Visual Localize。并不是说你可以导出文本资源并在翻译后重新导入,还可以调整大小或重新排列对话框以适应新的文本大小。例如。德语比英语中的文字长一倍半。

1

我们包装了gettext并使用它。好处是人们可以添加一个新的翻译,一切正常。人们可以随时改变语言。对于翻译者来说很容易,因为他们可以给他们发送一个他们可以编辑的简单文本文件。

我们没有发布或将其发布到项目中,但如果人们觉得它很有趣,我们可能会这样做。