【发布时间】:2016-09-23 03:40:54
【问题描述】:
我有一个 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?
【问题讨论】:
-
确保附属程序集部署在客户端计算机上的应用程序附近。
-
如果您将
Thread.CurrentThread.CurrentUICulture设置为new CultureInfo("fi-FI")这是什么意思:为什么当我对CurrentUICulture进行硬编码时它会起作用,而当我不硬编码时却不起作用? -
我在我的开发 PC 上输入以下内容进行测试:Thread.CurrentThread.CurrentUICulture = new CultureInfo("fi-FI");在 program.cs 的开头但是,当我删除上面的行并放在运行芬兰语的 PC 上时,文本显示为英文。
-
当您说在以芬兰语运行的PC 上 时,您的意思是操作系统语言是芬兰语还是只是用户在其键盘语言中使用芬兰语?整个窗户都是芬兰语吗?
-
@RezaAghaei PC 显示语言在 windows 打开区域和语言 -> 键盘和语言 -> 显示语言中更改为芬兰语。
标签: c# winforms localization globalization mvs