在Python 3中,有什么办法可以找出系统使用的语言吗?即使是一个棘手的问题,例如:从偷偷摸摸的目录中的文件中读取,并在文件内容中
查找字符串'ENG'
或......'FRE'
答案1
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]