【问题标题】:Why does my application not translate to the local CurrentUICulture?为什么我的应用程序不能转换为本地 CurrentUICulture?
【发布时间】: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


【解决方案1】:

您可以在窗体上设置定位和语言,它将按窗口的语言显示

【讨论】:

  • 嗨@DT,感谢您的回答+ 1。我已经选择了这些。以这种方式实施将意味着我将不得不分别更新每个表单 resx?我对吗?目前我正在尝试在属性下使用一个 resx,因为在多个表单中使用了许多字符串以最小化翻译。按照您的答案进行操作需要维护大约 5 个 resx 文件夹,而不是一个。
  • 有没有办法让 form.resx 引用 resources.resx 文件?或者更改表单引用,使其引用 resources.resx 而不是 form.resx?
猜你喜欢
  • 2012-08-03
  • 2012-07-18
  • 2014-05-24
  • 2019-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多