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

使用C#.NET的多语言windows应用程序,c#,internationalization,C#,Internationalization,我正在用C#编写一个应用程序,我想让它成为多语言的。我有两个选项,第一,为所有类文件创建单独的资源文件,第二,为整个应用程序创建一个公共资源文件 我不确定哪种选择是最好的,所以有人能给我一些建议吗??如果有任何其他方式实现多语言功能,那么也请让我知道 干杯:)根据我的经验,将所有本地化资源放在一个地方更容易。通常,一个应用程序会有多个地方使用的字符串。如果您将所有资源放在一个位置,那么只需翻译一次重复的字符串。我更喜欢使用IDE中包含的内置本地化功能。它可能很挑剔,但它完成了工作。它为每种语言生

我正在用C#编写一个应用程序,我想让它成为多语言的。我有两个选项,第一,为所有类文件创建单独的资源文件,第二,为整个应用程序创建一个公共资源文件

我不确定哪种选择是最好的,所以有人能给我一些建议吗??如果有任何其他方式实现多语言功能,那么也请让我知道


干杯:)

根据我的经验,将所有本地化资源放在一个地方更容易。通常,一个应用程序会有多个地方使用的字符串。如果您将所有资源放在一个位置,那么只需翻译一次重复的字符串。

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


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

我使用了Softwarebuero Jollans()中的“多语言加载项”。这是一个很受支持的商业产品。您可以在Visual Studio中将应用程序中的字符串导出到要翻译的Excel电子表格,然后将电子表格重新导入到应用程序中。然后,语言将自动编译成嵌入式资源。

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


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

使用一个资源文件,并确保所有表单和组件都标记为可本地化。这样,您就可以使用多个第三方工具对应用程序进行本地化


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

我们包装了gettext并使用了它。积极的一面是,只要添加一个新的翻译,一切都会正常工作。一个人可以随时改变语言。这对翻译人员来说很容易,因为他们只需发送一个简单的文本文件就可以编辑

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