繁体   English   中英

使用C#.NET的多语言Windows应用程序

[英]Multilingual windows application using C#.NET

我正在使用C#开发应用程序,我想使其成为多语言版本。 为此,我有2个选项,为所有类文件创建单独的资源文件,其次为整个应用程序创建一个公共资源文件。

我不确定哪个选项最好,所以有人可以建议我吗? 如果还有其他实现多语言功能的方式,也请告诉我。

干杯:)

以我的经验,将所有本地化资源集中在一个地方比较容易。 通常,应用程序将具有在多个地方使用的字符串。 如果将所有资源都放在一个位置,则只需将重复的字符串转换一次。

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

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

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

我将在每个程序集中创建一个资源文件 (需要时)。

您可以让VS为资源文件创建一个类,该类允许在编译时安全地访问资源。 (您将为每个字符串获得一个属性。)我认为您可以通过Build Action来实现。 生成的类是内部的。 因此,资源只能在程序集中访问,这很有意义。

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

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

我们包装了gettext并使用了它。 积极的一面是,只需添加一个新的翻译即可,一切正常。 可以随时更改语言。 对于翻译人员而言,这很容易,因为他们可以向他们发送一个可以编辑的简单文本文件。

我们尚未发布或将其发布到项目中,但是如果人们发现它有趣,我们可能会这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM