繁体   English   中英

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

[英]Translation issue - wrong language is displayed by default

我才刚刚开始编写多语言应用程序。 我已经阅读了有关语言资源文件的概念,我想我的主要思想是。 我尝试实现它,并立即发现一个问题:

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

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

CultureInfo.CurrentUICulture = "en-US" 

CultureInfo.Currentculture = "sl-SI"

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

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

我发现此博客文章回答了我的问题。

如果其他人为此感到挣扎,请执行以下操作:

因此,如果您使用的是Windows的最常见版本(英语版),那么您就会陷入“ en-US”文化的困境。 因此,您的应用程序将始终使用英语资源。 为了减轻这种情况,您可以在应用程序启动时执行一些技巧。 您可能会误导您的应用程序以您的CurrentCulture属性代替CurrentUICulture属性。 在应用程序启动时,您可以编写如下内容:

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

这样,您的应用程序将使用您的全球化设置而不是默认的Windows本地化设置。 您的应用程序将被本地化为您的全球化语言和文化。 如果您在“控制面板”中更改“区域设置”,则您的应用程序语言和区域性将自动更改。

暂无
暂无

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

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