问题标签 [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 回答
285 浏览

python - 在 AppEngine 中使用烧瓶 babel 时出错

我正在做我的第一个 Flask Babel 项目并遇到了障碍:

我需要将文本和菜单翻译成不同的语言,稍后我将处理数字和日期。pybabel extract 和 init 命令运行良好并且没有错误。

这是我的文件:

主文件

配置文件

messages.pot 的输出

messages.po(位置:/home/xxx/Appengine/fpp-dev-01/translations/es/LC_MESSAGES)

我使用以下命令在本地(Linux)运行应用程序:

终端中应用程序的输出:

所以有人暗示为什么我的应用程序无法识别翻译的“_(”?

提前致谢!

0 投票
0 回答
71 浏览

python - 烧瓶通天塔 | Flask 应用程序运行时重新加载 .mo 文件 | 生产

Flask Web 应用程序存在小问题。现在我正在为一个网站创建后端,其中一项任务是在 Flask-Admin 中创建翻译面板。网站使用 Flask-Babel 提供多语言支持。

长话短说,我在管理面板中制作了 BaseView,它显示了所有翻译并提供了编辑它们的能力。但是有一个问题 Babel 在服务器启动时读取 .mo 文件,当我的 View 通过解析 .po 文件保存翻译并将它们编译为 .mo 文件时,网站在我重新加载之前不会显示任何更新。

有什么解决方案如何处理。也许除了 Babel 之外的其他模块?

PS:当管理员单击视图中的保存更改时,我考虑过(并尝试过)重新加载网站,但这看起来很愚蠢,因为网站上的人可能正在做某事并且网站重新加载会删除他们的数据:(

0 投票
1 回答
548 浏览

python - Flask-Babel 语言选择器

您好,很高兴与您打招呼,今天我来向您寻求 Babel de Flask 向我提出的错误的帮助,我是该主题的新手,但在此先感谢您的合作。

在代码的末尾,我在 Quote 中显示了错误消息。

接下来是使用的代码。

我添加了init .py

我的 > config.py

我的 base.html

错误

jinja2.exceptions.UndefinedError: 'AVAILABLE_LANGUAGES' 未定义

我在这里看到我的代码

0 投票
3 回答
123 浏览

python - 如何获取当前不是语言环境的特定字符串翻译?

假设我有一个英文字符串,locale="en",例如“computer”,它的西班牙语翻译 locale="es" 翻译为“computadora”。

如果网站当前设置为英语,如何在不更改整个网站的全球区域设置的情况下仍访问该特定字符串但翻译成西班牙语?

像 = gettext ('computer', language='es' ) 之类的东西?

0 投票
1 回答
171 浏览

python - 如何从flask_babel导入_而不抛出关键错误

我正在将子模块导入父模块并出现关键错误。

子模块代码(剪枝)如下。

错误信息是:-

发生异常:KeyError 'babel' 文件“C:...\solution\cradle\messaging.py”,第 196 行,在 >> _('Success :)'),文件“C:\Users\Mark Kortink\ OneDrive\dev\metapplica_dev\entity_frame.py",第 15 行,从 solution.cradle.messaging 导入结果

相关事实是:-

  • 子模块从flask_babel 导入_。
  • 父模块从子模块导入一个类 Result。
  • 父模块过去可以工作,我所做的只是将子模块移动到同级目录。
  • 如果我直接运行子模块,它可以正常工作,_ 工作。
  • 当我运行父模块时,子模块在导入期间抛出一个关键错误。
  • 在字典 msglib 中查找“babel”时发生关键错误。
  • 如果我用我自己的函数替换 _ 一切正常。

这对我来说是奇怪的行为,我不明白为什么在导入期间首先要搜索“babel”。移动子模块应该没有什么区别,因为我更改了关联的导入。提供我自己的 _ 不会触发错误,因此在这种情况下无法搜索“babel”???

谁能建议这里可能发生的事情?

0 投票
1 回答
637 浏览

localization - 基于微服务的 webapp 中的本地化

我们目前正在为我们的系统添加本地化,​​我正试图找出应对这一挑战的有利选择。我的系统是一个基于微服务 python 架构的 web 应用程序。FE 使用 GW 与多个 BE 微服务通信,每个 MS 有不同的端点,应该根据语言环境返回字符串。

这里有一些讨论,但我们更专注于解决方案,该解决方案还允许数据(来自 db)和本地环境中的文本翻译。

我目前的选择是:

  1. 添加本地化微服务,在每次调用 BE 端点后,FE 将轮询字符串翻译。(这是否可以很好地扩展?这会产生压倒性的开销吗?)

  2. 添加本地化微服务以供 BE 中的其他微服务用于翻译 - 这可能会导致与其他微服务的紧密耦合,特别是如果我们还想在某个级别(而不仅仅是元数据)翻译来自数据库的数据。(1)

  3. 翻译将在现有的微服务中完成 - 如果我想降低微服务对翻译逻辑的认识,最好的方法是什么?似乎 Flask-Babel 可以帮助翻译阶段——但是如何减少这段代码的耦合呢?

我很想听听对上述选项的评论,以及对我可能错过的其他选项的建议。谢谢。

0 投票
0 回答
32 浏览

google-app-engine - flask_babel flash 不会在生产中的 GAE 中更新

我正在用下面的 flask_babel 实现 i18n,它可以在本地服务器上运行。但是,部署后它在生产中不起作用。它可以用“_('English')”显示翻译,但它确实显示 {{ _('English')}},就像在 HTML 中一样。有没有办法在 HTML 中显示适当的消息?

[主.py]

[索引.html]

0 投票
0 回答
163 浏览

python - Flask-Security,多语言页面的动态 url 前缀(使用 Flask-Babelex)

我正在将 Flask-Babelex 添加到我的网站。我使用 url_prefix 注册蓝图,如下所示:

我设置 babel.localeselector 如下:

然后在相应蓝图的 routes.py 文件中添加:

基本上,我正在关注这里所做的事情,并且运行良好。我似乎无法实现的是强制 Flask-Security-Too 使用这个变量 url_prefix。

如果我不更改烧瓶安全配置中的任何内容并访问 localhost:5000/change_password 它会向我抛出“UnknownLocaleError: unknown locale 'change_password'”,这是可以理解的。如果我访问 localhost:5000/pl/change_password,我会得到“AttributeError: '_AppCtxGlobals' 对象没有属性 'lang_code'”。

现在我可以将 SECURITY_URL_PREFIX 配置参数设置为“/<lang_code>”,但随后我得到“AttributeError:'_AppCtxGlobals' 对象也没有属性'lang_code'”。

如何将 lang_code 的信息传递给 Flask-Security?

编辑:
配置:

版本:

  • Flask-BabelEx==0.9.4
  • Flask-Security-Too==3.4.5
0 投票
1 回答
47 浏览

celery - 如何在芹菜中使用flask babel gettext?

我有一个烧瓶芹菜设置,烧瓶 babel 翻译我的文本。我不能在 celery 任务中翻译。我相信这是因为它不知道当前的语言(即使它知道我也不知道),这是因为 celery 无法访问请求上下文(据我所知)......

能够翻译的解决方案是什么?

0 投票
1 回答
336 浏览

python - Flask-Babel 在开发中工作,但在生产中没有翻译

我已经设置好 Flask-Babel 并在我的 localhost 开发应用程序上正常工作(使用两种语言:en_GBen_US)。

但是,当我尝试在生产应用程序上切换语言时,它什么也没做。该get_locale()函数正在返回正确的语言(我可以看到它在页面刷新时被多次调用,这表明它正在为每个所需的翻译调用),但没有出现实际的翻译。

正如我所说,它在开发应用程序中运行良好,我看不出为什么行为在生产中应该有任何不同。任何想法将不胜感激。

翻译文件 (messages.momessages.po) 存储在translations/en_us/LC_MESSAGES.

配置文件

babel.cfg

__init__.py

手动选择语言的功能

编辑: 一些额外的信息。我已经确认它BABEL_TRANSLATION_DIRECTORIES指向了正确的位置,并且还list_translations()用来确认它正在找到我的en_US翻译文件。