по поводу простого примера с gettext
сделаем файл test.py с таким содержимым:
import gettext
lang1 = gettext.translation('messages', 'i18n', languages=['en'])
lang2 = gettext.translation('messages', 'i18n', languages=['ru'])
lang1.install()
print _(u'This is a translatable string.')
lang2.install()
print _(u'This is a translatable string.')
pygettext.py test.py
у нас появляется файл messages.pot
правим в нем CHARSET на utf-8
создаем директорию i18n/ru/LC_MESSAGES и i18n/en/LC_MESSAGES
копируем в них файлик messages.pot под именем messages.po
нас интересует файлик в директории i18n/ru/LC_MESSAGES
открываем файлик messages.po (кодировка utf-8) и в строке msgstr пишем русскую фразу
для файлов messages.po формируем mo файлы
msgfmt.py messages.po
пробуем запустить файл test.py