Jul*_*e B 6 django translation django-models multilinestring
我使用 ugettext_lazy 作为 _ ,在模型文件中我的字符串以这种方式表示:
s = _(“第一行”
“第二行”
“第三线”)
但运行 makemessages 后,我发现 .po 文件中只有“firstline”被标记为翻译,其余部分都不存在。我不想避免使用多线,那么有什么方法可以使翻译与此配合使用吗?
更新:
应该补充我的问题:我需要我的多行字符串由 django 的 makemessages 处理
到目前为止我能想象的最好的解决方案是
s = str(_("第一行")) +
str(_("第二行") +
str(_("第三行"))
dmv*_*rtx -2
更新:实际的问题是makemessages没有进行 python(和 JS 等)解析,因此它不会按预期连接多行字符串。下面的解决方案也不起作用(它不会看到计算值)。
不幸的是,您必须找到另一种方法来格式化消息,最好将其拆分为单行部分。
之前的回答:
ugettext_lazy只能接受单个参数,因此这取决于您想要的翻译方式。
如果您愿意"firstline" "secondline" "thirdline"将其导出为单个句子进行翻译,您可以执行以下操作:
s = _(' '.join(["firstline", "secondline", "thirdline"]))
Run Code Online (Sandbox Code Playgroud)
如果您想将它们保留为单独的翻译句子,那么这样的方法也可能有效:
s = ' '.join(_(line) for line in ["firstline", "secondline", "thirdline"])
Run Code Online (Sandbox Code Playgroud)
或者只是调用_每一行并将它们连接起来
| 归档时间: |
|
| 查看次数: |
2856 次 |
| 最近记录: |