Как найти язык системы в Python?

Вы можете оставить терминал открытым, выполнив команду с тем, что ожидает ввода пользователя:

tmux new-window 'make ; read'

Если ваша оболочка не поддерживает прочтите встроенную команду , вы можете использовать, например. sed -n q .

3
12.07.2016, 02:24
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]
6
27.01.2020, 21:15

Теги

Похожие вопросы