Locale

如何在 Python 中找到系統語言?

  • July 11, 2016

在 Python 3 中有什麼方法可以找出系統使用的語言嗎?

即使是一個棘手的問題,例如:從一個偷偷摸摸的目錄中的文件中讀取,並找到字元串'ENG''FRE'文件的內容……

Unix 系統並沒有真正的“系統語言”。Unix 是一個多使用者系統,每個使用者都可以自由選擇他們喜歡的語言。最接近系統語言的是使用者在不配置帳戶時獲得的預設語言。該設置的位置因分佈而異;它在登錄過程中的某個時間點被拾取。

在大多數情況下,無論如何,相關的不是“系統語言”,而是使用者希望應用程序使用的語言。語言首選項通過區域設置來表達。確定應用程序應在其使用者界面中使用的語言的設置是LC_MESSAGES。還有日期、貨幣等設置。這些設置通過環境變數傳遞,這些設置通常在使用者從某些系統和使用者相關文件登錄時設置。

查找語言環境設置比讀取LC_MESSAGES變數要復雜一些,因為有幾個變數會起作用(請參閱我應該將語言環境設置為什麼以及這樣做的含義是什麼?)。有一個標準庫函式。在 Python 中,使用locale.getlocale. 您首先需要呼叫setlocale以打開區域設置感知。

import locale
locale.setlocale(locale.LC_ALL, "")
message_language = locale.getlocale(locale.LC_MESSAGES)[0]

引用自:https://unix.stackexchange.com/questions/295245