gpt4 book ai didi

.net - 什么可能导致 CurrentCulture 和 CurrentUICulture 默认为明显的系统文化以外的值?

转载 作者:行者123 更新时间:2023-12-04 05:58:28 25 4
gpt4 key购买 nike

我有一个使用 .NET 3.5 框架的基于 WinForms 的应用程序。该应用程序具有某些资源的本地化版本。

当我在运行 Windows XP 副本的机器上运行该应用程序时,该副本最初安装时使用 en-US 作为默认区域性,但随后将默认区域性设置为 en-CA,CurrentCulture 和 CurrentUICulture 均默认为 en-US .

为什么会发生这种情况?我需要更改什么才能使应用程序开始使用当前的操作系统文化作为其默认设置?

最佳答案

用户从未在 Windows 设置中提及她最喜欢的语言本身:她在控制面板中设置她的文化,例如英语(加拿大)又名 en-CA。这个选择体现在 Thread.Culture属性(property)。 Windows 使用它来确定如何显示和格式化诸如日期(包括日期和月份的格式和名称)、货币、...

另一个设置是安装 Windows (GUI) 的语言(在您的情况下很可能是英语(美国))。这反射(reflect)在 Thread.CurrentUICulture .当然,这个选项的可用选择较少,因为它反射(reflect)了 GUI 的语言(菜单、按钮、帮助……)。例如没有 en-CA CurrentUICulture 这样的东西。

注意:在 Vista+ 和 XP-MUI 中,您可以随后安装其他 GUI 语言并设置每个用户帐户使用的语言。这反射(reflect)在 CurrentUICulture 中。

一个常见的误解是认为应该使用文化来确定用户最喜欢的语言。最好依靠 CurrentUICulture。就我而言,Windows 是英文的,我的用户偏好(文化)是 fr-BE(法语 - 比利时)。永远不要想用法语显示您的用户界面:我安装了英语的 Windows 是为了一个目的:我宁愿拥有英语的本地用户界面,而不是法语翻译的用户界面。我的选择背后的原因是有争议的,但这无关紧要。只有我的决定是相关的。

也就是说,我将 5/2/2012 读为 2012 年 2 月 5 日而不是 5 月 2 日。这就是为什么 fr-BE 是我的语言环境/文化。

FWIW,非 Unicode 程序语言说明非 Unicode 程序应使用哪个默认代码页(Win32 NLS 中的 CP_ACP)。这不会影响您的应用程序,因为 .NET 应用程序是 Unicode。

默认输入语言确定默认键盘布局。这也不是文化设置。

影响 Culture 属性的设置如下:

XP Regional Settings

关于.net - 什么可能导致 CurrentCulture 和 CurrentUICulture 默认为明显的系统文化以外的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9229500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com