【发布时间】:2023-01-04 23:13:33
【问题描述】:
尽管密切关注文档和在线资源,但我似乎无法让我的 GNU gettext 实用程序正常工作。
我的文件夹结构如下:
/
|- src
| |- __init__.py
| |- main.py
|- locales
|- ru
|- LC_MESSAGES
|- base.mo
|- base.po
我的 main.py 的顶部是这样的(Windows 机器):
import argparse
import gettext
from gettext import gettext as _
argparser = argparse.ArgumentParser()
argparser.add_argument("--language", required=False, default="en")
arguments = argparser.parse_args()
gettext.translation(
"base", localedir=r".\locales", languages=[arguments.language[:2]]
).install()
然而,当我尝试以英语或俄语运行脚本时,我仍然收到错误消息:
FileNotFoundError: [Errno 2] No translation file found for domain: 'base'
我究竟做错了什么?
我尝试将 locales 目录放入 src 文件夹并删除点前缀 (gettext.translation("base", localedir=r"locales", ...),但它似乎没有任何改变。
编辑:添加 fallback=True 似乎有效,但翻译似乎没有进行。可以找细节转载here。
【问题讨论】: