我刚开始写第一次多语言应用程序。我已经阅读了有关语言资源文件的概念,我认为我得到了主要的想法。我试图实现它,并立即发现了一个问题:
我已将默认语言字符串输入到resx文件,然后添加了另一个资源文件(例如:UIStrings.en.resx)。由于我的公司不在英格兰/其他英语国家,我们的应用程序主要使用我们的语言编写。因此,默认语言是我们的语言(斯洛文尼亚语)。
当我添加.en.resx文件并插入正确的翻译并运行程序时,它现在显示英语文本。我想这是因为
CultureInfo.CurrentUICulture = "en-US"
而
CultureInfo.Currentculture = "sl-SI"
我认为这是因为我正在运行英文版的Windows(尽管区域选项中的所有属性都已正确设置为斯洛文尼亚语设置)。
如何让应用程序以用户语言显示字符串,而不是安装的Windows语言?
答案 0 :(得分:1)
我发现这篇博文回答了我的问题。
如果其他人正在努力解决这个问题,那就是你做的事情:
所以,如果你使用最常见的 Windows版本(英文版), 你被困在“en-US” 文化;因此,您的申请将 总是使用你的英语资源。在 为了减轻这种影响,你可以 在你身上做一点小动作 应用启动。你可以误导 你的申请看你的 CurrentCulture属性而不是 CurrentUICulture属性。在 应用程序启动,你可以写 像这样的东西:
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
这样,您的应用程序将使用 你的全球化设置而不是 您的默认Windows本地化 设置。你的申请将是 本地化到你的全球化 语言和文化。如果你改变了 控件中的区域设置 面板,您的应用程序语言和 文化会自动改变。