Ric*_*ton 14 locale windows-xp
如果您打开Regional and Language Options
(via Control Panel
),然后单击Regional Options
选项卡,则会出现一个包含所有可用语言环境的下拉列表。
这个列表是从哪里填充的?
(我想比较每个语言环境的设置;我很清楚如何做到这一点,但我需要一个语言环境名称列表来循环。)
编辑:浏览我的 windows 目录后(可能应该提到我使用的是 XP),文件
C:\WINDOWS\system32\locale.nls
Run Code Online (Sandbox Code Playgroud)
看起来像是一个合理的候选者,但它是一个二进制文件。这是我应该看的,如果是,我该如何阅读?
微软不会让你轻松。问题中提到的 NLS 文件确实包含区域设置信息,但它是十六进制的。即使使用十六进制编辑器,其内容也远非人类可读。受 r0ca 回答的启发,我决定采取另一种策略。
Microsoft 发布了更准确的可用语言环境列表。不幸的是,即使这个列表也不完全正确。(我安装了所有可用的语言环境,并且我安装了 Northern Sotho,它不在 Microsoft 的列表中,但不包括传统西班牙语、现代西班牙语或马其顿语。乌克兰语在列表中两次。)
Microsoft 列表中的名称也不完全正确。
通常,名称应采用“Language”或“Language_Country Name”形式,例如“English”或“English_United Kindom”
这意味着第一个后面的下划线必须用空格替换,人名需要用国名替换,例如“Malay_Brunei_Darussalam”变成“Malay_Brunei Darussalam”“Dutch_Belgian”变成“Dutch_Belgium”
还有很多其他的怪事。拉丁文、西里尔文和其他一些词需要用括号括起来,例如“Serbian_Cyrillic_Bosnia_Herzegovina”变成“Serbian (Cyrillic)_Bosnia and Herzegovina”
同样,“Sami_Inari”变成“Sami (Inari)_Finland”
还有更多的例子必须猜测正确的国家名称“English_Philippines”变成“English_Republic of the菲律宾”
我通过从控制面板更改我的 Windows 区域设置,然后加载 R 并键入
Sys.getlocale()
Run Code Online (Sandbox Code Playgroud)
不幸的是,此方法目前不适用于印度语言环境(以及其他一些语言环境)。请参阅此处的错误报告。