2010-07-26 22 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