有没有办法从C语言中找出Linux系统的默认语言?有 POSIX API 可以实现这个功能吗?例如,我想要一个人类可读格式的字符串,即德语系统上的“German”或“Deutsch”,法语系统上的“French”或“Francais”等。有类似的东西吗?
谢谢!
要确定系统上的当前语言,您可以查看以下环境变量(按优先级降序排列):
LANGUAGELC_ALLLC_MESSAGES,LC_NUMERIC,LC_TIME,LC_COLLATE, 和别的LANG每个变量都有特殊的格式:ll_CC,其中前两个字母表示语言代码,后两个字母表示国家/地区代码。还可以指定诸如字符集或变体之类的附加信息。作为例外,第一个变量可以包含语言代码列表,并且仅在启用本地化机制时才有效。
至少,类 Unix 操作系统中最流行的翻译框架gettext受到这些规则的指导。
https://gnu.org/software/gettext/manual/html_node/gettext_2.html#Locale-Environment-Variables