文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
标记文本以在模板中进行翻译
在前面的章节中,你已经看到了如何在 Python 源代码中标记可翻译的文本,但这只是该过程的一部分,因为模板文件也包含文本。 _()
函数也可以在模板中使用,所以过程非常相似。 例如,参考来自 404.html 的这段 HTML 代码:
<h1>File Not Found</h1>
启用翻译之后的版本是:
<h1>{{ _('File Not Found') }}</h1>
请注意,除了用 _()
包装文本外,还需要添加 {{...}}
来强制 _()
进行翻译,而不是将其视为模板中的文本字面量。
对于具有动态组件的更复杂的短语,也可以使用参数:
<h1>{{ _('Hi, %(username)s!', username=current_user.username) }}</h1>
_post.html 中的一个特别棘手的案例让我花了一些时间才理顺:
{% set user_link %}
<a href="{{ url_for('user', username=post.author.username) }}">
{{ post.author.username }}
</a>
{% endset %}
{{ _('%(username)s said %(when)s',
username=user_link, when=moment(post.timestamp).fromNow()) }}
这里的问题是我希望 username
是一个超链接,指向用户的个人主页,而不仅仅是名字,所以我必须使用 set
和 endset
模板指令创建一个名为 user_link
的中间变量 ,然后将其作为参数传递给翻译函数。
正如我上面提到的,你可以 下载 该版本的应用,其中的 Python 源代码和模板中都已被标记成可翻译文本。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论