翻译问题 - 默认显示错误的语言

时间:2010-02-24 09:21:43

标签: c# localization multilingual cultureinfo

我刚开始写第一次多语言应用程序。我已经阅读了有关语言资源文件的概念,我认为我得到了主要的想法。我试图实现它,并立即发现了一个问题:

我已将默认语言字符串输入到resx文件,然后添加了另一个资源文件(例如:UIStrings.en.resx)。由于我的公司不在英格兰/其他英语国家,我们的应用程序主要使用我们的语言编写。因此,默认语言是我们的语言(斯洛文尼亚语)。

当我添加.en.resx文件并插入正确的翻译并运行程序时,它现在显示英语文本。我想这是因为

CultureInfo.CurrentUICulture = "en-US" 

CultureInfo.Currentculture = "sl-SI"

我认为这是因为我正在运行英文版的Windows(尽管区域选项中的所有属性都已正确设置为斯洛文尼亚语设置)。

如何让应用程序以用户语言显示字符串,而不是安装的Windows语言?

1 个答案:

答案 0 :(得分:1)

我发现这篇博文回答了我的问题。

如果其他人正在努力解决这个问题,那就是你做的事情:

  

所以,如果你使用最常见的   Windows版本(英文版),   你被困在“en-US”   文化;因此,您的申请将   总是使用你的英语资源。在   为了减轻这种影响,你可以   在你身上做一点小动作   应用启动。你可以误导   你的申请看你的   CurrentCulture属性而不是   CurrentUICulture属性。在   应用程序启动,你可以写   像这样的东西:

Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
  

这样,您的应用程序将使用   你的全球化设置而不是   您的默认Windows本地化   设置。你的申请将是   本地化到你的全球化   语言和文化。如果你改变了   控件中的区域设置   面板,您的应用程序语言和   文化会自动改变。