找出Linux上的默认语言

时间:2010-07-26 19:30:06

标签: linux posix

有没有办法从C中找出Linux系统的默认语言?有这个POSIX API吗?例如。我希望有一个人类可读格式的字符串,即德语系统中的“German”或“Deutsch”,法语系统上的“French”或“Francais”等。有这样的东西吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

通常,LANG环境变量包含“de_DE.UTF-8”等格式的信息。

您可以使用getenv功能检索它。

编辑:

对于更复杂的国际化,您可能需要查看gettext

答案 1 :(得分:0)

查看与环境变量LANGUAGE等相关的getenv和setenv。

这与区域设置有关。

http://billposer.org/Software/NumbersAndLocales.html

请务必注意所有变量的不同含义。通过LC_ALL等覆盖。

答案 2 :(得分:0)

要确定系统上的当前语言,您可以查看以下环境变量(按优先级降序排序):

  1. LANGUAGE
  2. LC_ALL
  3. LC_MESSAGESLC_NUMERICLC_TIMELC_COLLATE和其他人
  4. LANG
  5. 这些变量中的每一个都有一种特殊格式: ll_CC ,其中前两个字母表示语言代码,后两个字母表示国家/地区代码。还可以指定诸如字符集或变体之类的附加信息。作为例外,第一个变量可以包含语言代码列表,只有在启用了本地化机制时才有效。

    至少, gettext 是类Unix操作系统中最受欢迎的翻译框架,遵循这些规则。
    https://gnu.org/software/gettext/manual/html_node/gettext_2.html#Locale-Environment-Variables