python - {% translate s %} 传入 {% include ... with s=s %} 不在 .po 文件中
问题描述
我有一个我试图在我的 Django 项目中呈现的基本提要。我创建了一个feed.html文件作为基本模板,用于相同类型的提要的细微变化。在这些变体中,提要的标题。重要的是,我希望将该标题翻译成多种语言。
我已经使用{% include "feed.html" with variation=variation %}
. 但是,我在翻译这些变体时遇到了问题。
我在feed.html中尝试以下内容:
{% translate header %}
然后在我想要一个feed.html变体的模板中,我有:
{% include "feed.html" with header="Header" %}
问题是,字符串“Header”没有进入我的任何.po
文件,因此仍然无法翻译。
我究竟做错了什么?我应该使用不同的语法吗?
解决方案
问题是,字符串“Header”没有进入我的任何 .po 文件,因此仍然无法翻译。
如果这意味着该makemessages
命令不提取字符串,那么是的,它不会,因为没有字符串。只是一个变量。该变量可以取任何值,makemessages
不可能将其追溯到您可能为header
. makemessages
只能提取您直接放入{% translate %}
标签或_()
函数调用的内容。
与前两个示例一样,使用变量或计算值的警告是 Django 的翻译字符串检测实用程序 django-admin
makemessages
将无法找到这些字符串。https://docs.djangoproject.com/en/3.1/topics/i18n/translation/#standard-translation
您需要在传递标头值之前对其进行翻译:
{% include "feed.html" with header=_("Header") %}
推荐阅读
- java - Mockito 不断调用真正的方法而不是模拟它
- html - 如何在 HTML 中使用模板组件内部的插槽
- r - 多级线性模型中的变量分组
- docker - 如何在容器内获取 docker 容器的“构建历史”?
- excel - vbs脚本后留下的Excel进程
- javascript - HTML 列表中的图像 - 不缩进文本
- c# - 使用 DDD for User Domain 模型生成 ID 和密码散列的最佳方法
- c# - 是否可以从子数据上下文(视图模型)中获取父视图元素的数据上下文(视图模型)?
- javascript - 如何根据加速度和摩擦计算速度
- amazon-web-services - Tomcat pod 不断崩溃并出现错误 javax.jms.JMSException: Stopped