问题标签 [python-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.
python - 使用 Jinja2 和 Babel,我如何翻译包含 HTML 标签的句子?
假设我有一个 Jinja2 模板,并且我正在使用 Flask-Babel 来翻译我的项目。例如:
所以我有一个带有链接和强调的句子。假设我想翻译我的句子。显而易见的方法是使用gettext()
或{% trans %}
标记:
显然,问题在于这会将句子分解成多个不能很好翻译的片段。这将导致翻译人员将字符串“The”、“best”、“way of using the Internet is to use”和“our site”视为所有单独的字符串,加上标点符号。当然,翻译者会想要重新构造句子,并选择单独连接和强调的单词。
那么鉴于此,解决方案是什么?如何将一个带有标签的句子翻译为一个单元?
python - Flask-Babel 多语言 URL 路由
我正在创建一个多语言网站(EN 和 FR),如果用户愿意,我需要它在点击时来回切换。我正在使用 Flask-Babel,翻译和切换在点击时可以正常工作,但是,我还需要翻译 URL。我目前已经用英语和法语 URL 包装了我的 URL 路由:
获取语言和切换的其余代码如下:
模板如下所示,用户单击链接以更改语言:
由于我对 Python/Flask 的经验很少……我正在努力寻找切换到已翻译 URL 的最佳方式。我该怎么做呢?任何信息,将不胜感激。提前致谢。
python - 国际化(i18n)未在 Ubuntu 实例上使用带有 mod_wsgi 的 flask-babel 和 apache 呈现
我有一个使用 python 2.7.6 开发的 web 应用程序,flask 并部署在 Apache Ubuntu 服务器上。
为了国际化,该应用程序使用该flask-babel
包来翻译成泰语。但是,似乎我的translations/th/LC_messages/messages.po
文件被忽略了。
它在我的本地主机上完美运行,但在服务器上却不行。为了强制选择语言环境,我使用下面的代码:
似乎我的配置文件中可能缺少某些内容,但无法弄清楚。
如果您有任何想法,请随意。谢谢你。
python - 使用 Flask-Babel 进行 Flask 测试设置
我想setUp
用unittest
模块。
我的 Flask 应用程序是使用工厂创建的 (create_app) 使用 Flask-Babel for i18n/
create_app
函数调用configure_extensions(app)
如下:
当我运行应用程序时它工作正常,但我无法正确创建单元测试,因为它断言错误如下:
由于消息“已注册语言环境选择器函数”,我认为在调用每个测试方法时调用我的方法这一事实会产生问题setUp
。unittest
因此,我改变了@classmethod
setUpClass
这样的:
但是,@babel.localeselector
装饰@babel.timezoneselector
器不起作用。
python - 访问在应用工厂中定义的 Flask 扩展
我正在使用应用工厂模式来设置我的 Flask 应用程序。我的应用程序使用了 Flask-Babel 扩展,这也是在工厂中设置的。但是,我想在蓝图中访问扩展以使用它,
工厂在__init__.py
。
我想将以下内容添加到main.py
:
不幸的是,main.py
无法babel
从应用程序工厂访问该变量。我应该如何解决这个问题?
python - Flask babel 不能进行简单的翻译?
好的,我有以下应用程序:
babel.cfg
露西/初始化.py
露西/控制器/main.py
我运行了以下命令:
- pybabel 提取 -F babel.cfg -o messages.pot 。
- pybabel init -i messages.pot -d 翻译 -l de
- pybabel 编译 -d 翻译/
这是我的项目结构的样子:
以下是翻译结果:
消息.pot
翻译/de/LC_MESSAGES/message.po
翻译/de/LC_MESSAGES/message.mo
当我访问 /debug 时,我看到我的语言环境是de
. 但是,我仍然看到A simple string
正在输出。任何想法为什么?
python - 如何在 Flask 中切换两种语言?
我想用两种不同的语言制作我的网站,我正在Flask-Babel
为此目的使用。
这是我的settings.py配置:
在这里,您可以看到包含我的应用程序中使用的两种语言的字典。
这是views.py:
inject_url_for 函数意味着应用程序中的所有 url_for() 调用都需要修改为传递一个名为 lang 的额外参数,而这正是我所做的,这里是index函数:
听起来不错吧?
现在,如果我按原样运行应用程序,没有任何变化,它只是给了我默认语言,即英语,但如果我将其切换为俄语,它将不起作用。
请任何帮助将不胜感激:)。
python - 调用 setup.py install 时编译翻译文件
我正在使用 Babel 开发一个 Flask 应用程序。多亏了Distutils/Setuptools 集成,所有 compile/extract/... 函数的参数都存储在i18n 文件中setup.cfg
,编译 i18n 文件就像
伟大的。现在我希望在运行时自动完成
换句话说make
,就是让install
目标依赖于compile_catalog
目标。
上下文
我们仅将翻译 ( .po
) 文件存储在代码存储库中。.gitignore排除.mo
和.pot
跟踪文件。
当开发人员拉取代码的新版本时,他运行
更新依赖项并在开发模式下安装项目。然后,使用上面的命令行,他编译翻译二进制 ( .mo
) 文件。
是否有一种简单且推荐的方式来修改setup.py
以一步完成这两项操作?还是我试图滥用setuptools
?
使用这样的脚本可以用于开发目的:
但我想要一个在使用通常的setup.py
安装说明安装软件包时也能工作的解决方案,比如从 PyPi 安装。
我应该明白吗setuptools
不应该像这样使用,分发软件的人在创建档案时手动或使用自定义脚本编译他们的翻译文件,而不是依赖于setup.py
在安装时编译它们?
我在互联网上没有找到很多解决这个问题的帖子。我发现的那些涉及pybabel
从 中的函数运行命令行界面setup.py
,这听起来很可惜,因为它错过了 setuptools 集成的要点。
python - Babel date_format 为 2017 日期返回 2016
我正在尝试显示为指定语言格式化的日期,看到这一点我并不感到惊讶:
给出期望值,即:
尽管:
给我:
为什么是 2016 年而不是 2017 年?
python - Flask + Flask-Security + Babel 不工作
我已经设置了 Flask + Babel + Flask Security。像这样创建所有翻译:
- 根
- 主文件
- 翻译
- 汝
- LC_MESSAGES
- 消息.mo
- 消息.po
- LC_MESSAGES
- 汝
在 main.py 中有部分设置语言执行:
但是http://localhost/login没有翻译。你能建议在哪里挖吗?即使使用Debug = True,日志中也没有错误