【发布时间】:2016-03-03 19:10:30
【问题描述】:
我遇到了一个非常奇怪的问题。我正在对我的项目实施本地化,但是当我尝试让当前的语言环境 Windows 正在运行时,它错过了国家信息。这是一个示例代码:
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
CultureInfo culture = CultureInfo.CurrentUICulture;
Console.WriteLine("The current UI culture is {0} [{1}]",
culture.NativeName, culture.Name);
}
}
当我以最常用的语言(英语-美国、法语-法语)运行它时,它会正确返回。但是,例如,当我从比利时选择法语时,它会检索我 FR-fr 而不是 FR-be - 即使我从语言首选项选项中删除了法国的法语。
我想知道,无论我的软件位于哪个国家/地区,我如何才能始终正确选择国家/地区。
ps:使用 CurrentCulture 不是我正在寻找的答案,因为我想要匹配我在 UI 中使用的显示语言,而不是日期/时间/数字格式(它们可能完全不同) .
【问题讨论】:
-
我刚刚尝试卸载法语语言包 (FR-fr) 并从法语比利时选择它重新安装。我仍然得到FR-fr。那会是 Windows 问题吗?
-
水晶球说您选择了另一个键盘布局而不是更改操作系统语言。您必须使用“高级”按钮。非常不清楚你实际上做了什么,最好先在 superuser.com 上 ping 这个。请务必提及 Windows 版本和版本,他们几乎在每个版本中都更改了这一点,您安装的语言包很重要。
-
我在 Windows 8 和 10 中进行了测试。它们都不起作用。正如我在上一条评论中提到的那样,我更改了操作系统语言 - 安装了语言包和类似的东西(你只能在高级会话中这样做)。
-
我不再积极寻找这个问题的答案 - 我不再从事这个项目,也不再使用 C#。但是,如果有人找到这个(或有用的信息)的答案,我仍然很好奇,我愿意检查它是否适合那个项目......
标签: c# localization cultureinfo culture currentuiculture