Почему pygettext переводит строки в кортежах, а не строки в списке кортежей? - PullRequest
1 голос
/ 10 июня 2019

Я использовал pygettext для перевода модуля python, и он правильно создал файл po, но когда дело доходит до перевода, он не переводит все.Например:

txt=(_("Wait"),_("shutting"),_("down..."))

Строки в кортеже переводятся правильно

Menu_Main = [
    (_("Begin Exam"), "test(duration=env['TEST_DURATION'])"),
    (_("Back to Parameters Monitor"), "menu_return(True)"),
]

Строки в этом списке кортежей не переводятся.Почему?

Я установил язык следующим образом:

lang = "it"
gettext.textdomain('domain')
gettext.bindtextdomain('domain', '/usr/share/locale')
la = gettext.translation('domain', '/usr/share/locale',languages=lang.split(),fallback=True)
_ = la.gettext
la.install(names=['gettext'])

Я пытался использовать xgettext вместо pygettext, но ничего не изменилось

1 Ответ

0 голосов
/ 12 июня 2019

Хорошо, я нашел решение проблемы. У меня были кортежи, вложенные в список, и меню, которое перебирало их, поэтому мне пришлось использовать отложенные переводы. Внутри цикла for:

draw.text((dt_x, dt_y) , _(mytext), font=myfont, fill="white")

Мне пришлось обернуть mytext (кортеж строк) функцией _ ().

...