Как локализовать модуль argparse Python без его исправления?

Локализованное приложение командной строки выглядит странно, когда какая-то часть сообщений находится на языке пользователя и некоторых других частях на английском языке.

Я не знаю, испортил ли я что-либо, когда я установил Python 3 из исходного кода, кажется, что нет файлов *.mo , поэтому argparse (в целом) не является локализацией.

API, похоже, не предлагает способ локализации. Или я пропустил это?

Я мог бы argparse.py , но я не буду, поскольку я хочу, чтобы он был переносимым, и я не в порядке с предложением пользователям исправить их установку Python.

Вопрос в меньшем количестве слов: как локализовать argpase без исправления стандартной библиотеки Python?

Связанный вопрос : возможно ли это?

По умолчанию argparse использует модуль gettext для перевода сообщений, чтобы вы могли легко перевести их, если хотите.

Чтобы сгенерировать *.pot файлы (которые вы можете преобразовать в *.mo файлы после перевода), вы можете использовать программу pygettext которая доступна во встроенном модуле gettext в python.

Применение:

 python pygettext.py argparse.py 

Это создаст messages.pot который вы можете перевести, после чего просто .mo (многие способы сделать это, просто Google).

Для получения дополнительной информации о pygettext см. Руководство Python по теме: https://docs.python.org/2/library/gettext.html#internationalizing-your-programs-and-modules