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

发布于 2024-08-22 07:59:44 字数 516 浏览 3 评论 0原文

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

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

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

CultureInfo.CurrentUICulture = "en-US" 

虽然

CultureInfo.Currentculture = "sl-SI"

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

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

I have just started writing a multilingual application for the very first time. I have read about the concept of language resource files and I think I get the main idea. I have tried to implement it, and instantly found an issue:

I have entered the default language strings to a resx file, and then added another resource file (for example: UIStrings.en.resx). Since my company is not based in England / other English speaking countries, our applications are primarily written in our language. Thus default language is our language (Slovenian).

When I add the .en.resx file and insert the correct translations and run the program it now displays English text. I figured that is because

CultureInfo.CurrentUICulture = "en-US" 

while

CultureInfo.Currentculture = "sl-SI"

I figure this is because I am running English version of windows (though all the properties in Regional Options are set correctly to Slovenian settings).

How can I make the application display the strings in the users language, not the installed windows language?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

揪着可爱 2024-08-29 07:59:44

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

如果其他人正在为此苦苦挣扎,请执行以下操作:

所以,如果您使用的是最常见的
Windows 版本(英文版),
你被“en-US”困住了
文化;因此,您的应用程序将
始终使用您的英语资源。在
为了减轻这种情况,你可以
对你表演一个小把戏
应用程序启动。你可能会误导
您的申请查看您的
CurrentCulture 属性而不是
CurrentUICulture 属性。在
应用程序启动,你可以这样写
像这样的东西:

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

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

I have found out this blog post that answers my question.

If anyone else is struggling with this, here is what you do:

So, if you are using the most common
version of Windows (Englis version),
you are stuck with the “en-US”
culture; hence, your application will
always use your English resource. In
order to mitigate this, you can
perform a little trick at your
application startup. You can mislead
your application to look in your
CurrentCulture property instead of
CurrentUICulture property. At the
application startup, you can write
something like this:

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

This way, your application will use
your globalization setting instead of
your default windows localization
setting. Your application will be
localized to your globalization
language and culture. If you change
the Regional Settings in your Control
Panel, your application language and
culture will change automatically.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文