【发布时间】:2018-05-02 04:48:56
【问题描述】:
在“购买”应用中,有一个文件reports.py。在这个应用程序中,我正在生成一些 pdf 报告,有时我想将其翻译成捷克语。不幸的是,makemessages 脚本没有检测到可翻译的字符串。
运行以下显示正在处理reports.py。但是没有添加文件。
.././manage.py makemessages -l cs_CZ -v 2
processing file reports.py in .
processing locale cs_CZ
这是来自 reports.py 文件的 sn-p:
from django.utils.translation import ugettext as trans
def purchase_order_report(purchase_order, language='en'):
...
doc.add_text(trans('Items requested'), 'Heading2')
...
Locale 文件夹的设置如下:
LOCALE_PATHS = (
os.path.join(BASE_DIR, "locale"),
)
编辑: django makemessages 似乎没有正确翻译导入。
运行以下工作(但在将变量解包到_时可能会发生冲突):
from django.utils.translation import ugettext as _
def purchase_order_report(purchase_order, language='en'):
...
doc.add_text(_('Items requested'), 'Heading2')
...
也可以运行以下命令(但如果您想混合和匹配 ugettext 和 ugettext_lazy,则不是很方便):
from django.utils.translation import ugettext
def purchase_order_report(purchase_order, language='en'):
...
doc.add_text(ugettext('Items requested'), 'Heading2')
...
有什么想法吗?
【问题讨论】: