如何以编程方式学习 Windows 操作系统的语言(从 Windows XP 开始)?
感兴趣的是系统的语言 - 即 Windows 与程序用户通信的语言,而不是所选国家或键盘布局等。相对而言,您需要找出名称“我的电脑”或“我的电脑”或“Mój Komputer”是用什么语言写的。接收到的名称的格式并不那么重要(ISO 或英文文本或本地化文本)。
大声思考:
我尝试了几个选项,包括GetLocaleInfo(LOCALE_USER_DEFAULT.., GetSystemDefaultLangID, GetUserDefaultLangID,但没有一个返回我的操作系统语言环境(英语),而是返回了Russian. 到目前为止,唯一合理的线索是hklm\system\controlset001\control\nls\language\Installlanguage,但不清楚为什么安装语言是一种(英语),而默认是另一种(俄语),尽管操作系统用英语与我交流。
对于相对较新的 Delphi 版本,您可以使用
GetUserDefaultUILanguage来自 WinAPI.Windows 模块的调用(返回当前用户选择的界面语言的值):这里列出了一些以低字节或关闭返回的语言。微软的名单
对于旧版本的 Delphi,您必须自己
GetUserDefaultUILanguage从 kernel32.dll 中定义它,例如,像这样:由于@teran 首先指向该函数,因此可以将答案格式化为一般答案。