如何在 Python 中找到系统语言?

joH*_*oH1 4 system-information locale python3

在 Python 3 中,有没有办法找出系统使用的语言?
即使是一个棘手的一个,虽然,这样的:从文件中读取偷偷摸摸目录,并找到字符串'ENG''FRE'文件的内容中...

Gil*_*il' 6

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]
Run Code Online (Sandbox Code Playgroud)