文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
翻译日期和时间
现在,我已经为 Python 代码和模板中的所有文本提供了完整的西班牙语翻译,但是如果你使用西班牙语运行应用并且是一个很好的观察者,那么会注意到还有一些内容以英文显示。 我指的是由 Flask-Moment 和 moment.js 生成的时间戳,显然这些时间戳并未包含在翻译工作中,因为这些包生成的文本都不是应用程序源代码或模板的一部分。
moment.js 库确实支持本地化和国际化,所以我需要做的就是配置适当的语言。 Flask-Babel 通过 get_locale()
函数返回给定请求的语言和语言环境,所以我要做的就是将语言环境添加到 g
对象,以便我可以从基础模板中访问它:
app/routes.py :存储选择的语言到 flask.g 中。
# ...
from flask import g
from flask_babel import get_locale
# ...
@app.before_request
def before_request():
# ...
g.locale = str(get_locale())
Flask-Babel 的 get_locale()
函数返回一个本地语言对象,但我只想获得语言代码,可以通过将该对象转换为字符串来获取语言代码。 现在我有了 g.locale
,可以从基础模板中访问它,并以正确的语言配置 moment.js:
app/templates/base.html :为 moment.js 设置本地语言
...
{% block scripts %}
{{ super() }}
{{ moment.include_moment() }}
{{ moment.lang(g.locale) }}
{% endblock %}
现在所有的日期和时间都与文本使用相同的语言了。 你可以在下面看到西班牙语的外观:
此时,除用户在用户动态或个人资料说明中提供的文本外,所有其他的文本均可翻译成其他语言。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论