问题标签 [flask-babel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
160 浏览

flask - 如何翻译 .po 文件

我有一个烧瓶应用程序,我想向它添加多种语言。所以我在 Flask_babel 上使用这个演示来做到这一点。 烧瓶标签演示

配置文件

这是app.py

babel.cfg

要开始这个过程,我首先使用了这个命令

然后这个

它生成messages.po文件

我如何翻译每一个msgid。演示说要手动执行此操作,但这是一个演示,它仅包含 10 行,但我的项目将包含 10 种语言的数百个翻译,那么我该怎么做呢?如何通过库或程序将未翻译的 .po 文件转换为已翻译的 .po 文件?

0 投票
0 回答
21 浏览

python - 如何使用 Flask Babel 翻译元组列表中的值?

在我的 Flask 应用程序中,我有一个带有列标题的表格,我想用 Flask-Babel 翻译它。在页面的其他部分 Flask 敌人做得很好,但在这里我无法让它工作:

我已经尝试了这个列表的几个变体,但我得到了一个TemplateSyntaxError: expected token ':', got '}'.

我也尝试('country','{{ _lazy_gettext('Country') }}')过(在列表中),但结果是TemplateSyntaxError: expected token ')', got 'Country'.

我试过('country','{{ _lazy_gettext("Country") }}')了,结果{{ _lazy_gettext("Country") }}在标题中。

如何 babel-ify 我的列标题?

0 投票
1 回答
37 浏览

python - 如果请求的语言环境中的 msgstr 为空,则让 Flask-Babel 使用默认语言环境的 msgstr

我们想使用 Flask-Babel 来实现 Flask 应用程序的国际化。

我们的目标是为 msgid 使用像“example_demo_text”这样的唯一 ID 字符串,并将这个 msgid 翻译成多种语言。我们的流程是这样工作的:在 gettext(..) 函数中使用唯一的 msgid“example_demo_text”,提取所有 gettext 消息并将关联的消息字符串 (msgstr) 写入默认语言环境 (en) 的 .po 文件中。

到目前为止,整个过程都有效......

当请求希望消息字符串采用受支持的语言,但尚未完全翻译(可悲的是经常发生)并且此语言环境中的 msgstr 为空时,flask-babel 返回 msgid,该 msgid 不应显示给用户。

如果请求的语言环境中的 msgstr 为空,我们如何配置 flask-babel 以使用回退本地(在我们的例子中为 en)?

以下是我们在烧瓶应用程序中实现烧瓶 babel 的方式:
main.py

RequestHeader()只是一个处理我们的标头的类,具有获取用户区域设置的方法,该方法由我们的身份验证代理作为标头提供。)

我们的示例路由文件 demos.py:

/en/messages.po

(例如example_demo_text/de/message.po 中 msgid 的 msgstr 为空,flask-babel 应返回 en 的 msgstr。)

0 投票
1 回答
14 浏览

python - Flask babel in-line variables

I'm using Flask-Babel for a web application.

In my Jinja2 templates I can do gettext("Number %(number)s", number=1). However that doesn't seem to work in Python code. when I do so I get the error TypeError: gettext() got an unexpected keyword argument 'number'.

I have tried different variations like gettext(f'Number {number}') and gettext('Number %s') % (number). But with no luck. I've tried looking in the documentation, but it's rather limited and they suggest my initial method.

If anybody could help me out that would be great. Thank you.