gettest transnslation или установка не находит язык - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь реализовать i18n с Python в моем решении, для этого я создал tryOut.py

У меня следующая структура папок:

  • \ bin \ languages ​​
  • \ bin \ languages ​​\ de
  • \ bin \ languages ​​\ de \ LC_MESSAGES # Здесь находятся файлы po & mo
  • \ tryOut.py

Сейчас я пытаюсь создать перевод по умолчанию (engli sh) на немецкий язык с помощью этой программы:

import gettext
import os

localdir = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'bin\languages')
gettext.install('tryOut',localdir)
print(localdir)
setLang = "de"


def greet():
    'Prints out greeting message.'
    age = 25
    print(_('Hi'))
    print(_("What's up?"))
    print(_('I am {age} years old!').format(age=20))
    print('\n')

def select_language(language,localdir):
    lang = gettext.translation('tryOut',localdir,languages=[language],fallback=True)
    gettext.install('tryOut',localdir)

greet()

select_language('de',localdir)
greet()

select_language('en',localdir)
greet()

Но перевод не появляется.

Я попытался использовать документацию gettext, чтобы решить эту проблему, но в данный момент я не вижу своей проблемы. Не могли бы вы помочь мне с этим?

С уважением

1 Ответ

0 голосов
/ 08 апреля 2020

Я нашел свое решение / ошибка, проблема была в разделе:

def select_language(language,localdir):
lang = gettext.translation('tryOut',localdir,languages=[language],fallback=True)
gettext.install('tryOut',localdir)

Мне нужно загрузить lang.install вместо gettext.install:

def select_language(language,localdir):
lang = gettext.translation('tryOut',localdir,languages=[language],fallback=True)
lang.install('tryOut')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...