python - 为什么 pygettext 翻译元组中的字符串而不是元组列表中的字符串?
问题描述
我使用 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 但没有任何改变
解决方案
好的,我找到了问题的解决方案。我将元组嵌套在一个列表中,还有一个迭代它们的菜单,所以我不得不使用延迟翻译。在 for 循环内:
draw.text((dt_x, dt_y) , _(mytext), font=myfont, fill="white")
我不得不用 _() 函数包装 mytext (字符串元组)。
推荐阅读
- c# - 订阅事件时无法创建用户控件的实例
- python - 对 pandas 数据框中的元素进行排名
- python - Python 无法读取最新的 Outlook 附件,只能读取较旧的附件
- c - 将连续除法的其余部分存储在数组中
- javascript - io.sockets.in(room).emit() 不工作
- html - 我如何向这个 flexbox 布局添加响应式设计?
- html - 如何检查 Handlebars 模板中的多个条件?
- ethereum - 获取每个钱包地址余额
- javascript - 使用 ng-if 或 ng-show 根据用户输入显示部分
- r - 根据数据框列条件更新 For 循环外的向量