Locale
如何在 Python 中找到系統語言?
在 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]