Стандартный модуль gettext в Python не использует настройки языка startdard из настроек Windows, но вместо этого полагается на наличие одной из переменных среды: LANGUAGE
, LC_MESSAGES
, LC_ALL
или LANG
, (Я бы сказал, что это пример слабого переноса библиотеки Unix / Linux на Windows.)
Переменные среды, упомянутые выше, не представлены на типичном компьютере с Windows, поскольку ОС Windows и собственные приложения вместо этого используют настройки из реестра. Поэтому вам нужно получить языковые настройки из реестра Windows и поместить их в среду процесса.
Вы можете использовать мой вспомогательный модуль для этого: https://launchpad.net/gettext-py-windows
Этот помощник получает языковые настройки из настроек Windows и устанавливает переменную LANG для текущего процесса, поэтому gettext может использовать эти настройки.
Итак, если рассматриваемое приложение не ваше, вы можете сделать следующее. Установите мой помощник gettext как обычно с python setup.py install
. Затем добавьте эти строки перед locale.setlocale(locale.LC_ALL, '')
:
import gettext_windows
gettext_windows.setup_env()
Вот и все.