为什么我的 Windows 日期和时间格式设置会影响应用程序的默认语言?

为什么我的 Windows 日期和时间格式设置会影响应用程序的默认语言?

这种行为已经困扰我很久了。我住在德国,但我喜欢我的操作系统和所有安装的应用程序都是英文的。
所以每当我安装 Windows 系统时,我都会安装英文版。然后我将位置(控制面板 -> 时钟、语言和区域 -> 更改位置)更改为“美国”。

但是,90% 的情况下,当我安装其他应用程序(例如 VirtualBox)时,它会选择德语作为默认语言。这种行为随处可见。

改变这种情况的唯一方法是更改​​日期和时间格式。一旦我将其更改为“英语(美国)”,所有受影响的程序都将使用英语。然后我甚至可以将配置文件调整回我想要的任何格式(这就是我所做的),最终我得到了想要的结果。

为什么会发生这种情况?90% 的程序员都无法使用正确的 API 来确定用户所需的语言吗?这是 Windows 下确定默认语言的方式吗?我只是错误地设置了我的系统吗?

答案1

我的系统设置是否不正确?

从某种程度上来说,是的。你肯定没有读你正在看的标签。

这是一种快速、肮脏且极其懒惰的猜测语言设置的方法,99% 的时间可能都是正确的。

错误。安装程序正在使用Windows 国家语言支持 API获取您配置的系统区域设置和语言,以确定使用哪种语言提示您。区域设置信息是使用控制面板该部分中的“格式”选项卡设置的。

您正在使用“位置”选项卡。位置与区域设置和语言不同,尤其是因为它们的 .NET API 在 Windows NT 6.1 版之前的 Windows 上实际上不起作用。 位置 API是一个完全不同的 API,在 Windows XP Service Pack 3 之前版本上甚至不存在。想要拥有一个可以在 Windows NT 6.1 之前版本上运行的安装程序的安装程序编写者将使用区域设置 API,因为这是存在并且可以工作的。

这也是什么是对的

有区别的是地理标识和一个用户界面语言,而你得到的却是完全相反的结果。地点或者地理标识计算机的物理位置,这就是您需要在控制面板中的“位置”选项卡上设置的内容。用户界面语言是您想要看到的显示内容的语言,它是在其他地方设置的;包括由控制面板中的“格式”选项卡设置的区域设置。

在“位置”选项卡的最顶部,确实说明了它的用途。为什么你认为将你的计算机设置为获取美国的“新闻和天气等本地信息”是正确的做法,因为你已经告诉系统你实际位于美国,而当你实际位于德国时?定位你的机器物理位置并设置语言和区域您想要在用户界面上看到的语言和货币/数字/日期格式。

简而言之:几乎 100% 的来自不同供应商的程序都不是按照你想象的那样运行的。是你的想法错了,而不是程序错了。

相关内容