2010-07-26 73 views
0

有没有办法从C中找出Linux系统的默认语言?有这个POSIX API吗?例如。我想要一个可读的格式的字符串,例如德语系统中的“德语”或“Deutsch”,法语系统中的“法语”或“法语”等等。有没有类似的东西?在Linux上找出默认语言

谢谢!

回答

1

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

您可以使用getenv函数检索它。

编辑:

对于更加复杂的国际化,你可能想看看gettext

0

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

  1. LANGUAGE
  2. LC_ALL
  3. LC_MESSAGES,LC_NUMERIC, LC_TIME,LC_COLLATE和其他
  4. LANG

这些变量中的每个人都有一个特殊格式:ll_CC,其中前两个字母的意思是语言代码,第二两个1意味着国家代码。也可以指定字符集或变体等附加信息。作为例外,第一个变量可以包含语言代码列表,并且只有在启用了本地化机制的情况下才有效。

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