我有一个 winform、C# 应用程序,我想以本地化语言运行。目标 .Net 是 3.0,因为我的很多用户仍在使用 XP。该应用程序是系统托盘应用程序。
我已将所有字符串放入 Resources.resx 并使用 ResX 资源管理器为我需要的不同语言生成了 Resources.XX.resx 文件。
如果我使用代码将 CurrentUICulture 设置为另一种语言(即芬兰语):
Thread.CurrentThread.CurrentUICulture = new CultureInfo("fi-FI");
它按预期工作,并以芬兰语显示所有表格。
但是,如果我将应用程序安装在语言设置为芬兰语的机器上,所有的 winform 都会提供英语字符串(英语也是中性字符串)
我已经检查了表单的属性 localizable 是否设置为 true。
为什么当我对 CurrentUICulture 进行硬编码时它会起作用,而当我不硬编码时它却不起作用?
是否有其他方法可以检查 PC 的 UI 语言并更新应用程序 CurrentUICulture?