问题标签 [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 - Flask-Babel 不会翻译 Web 项目中的任何内容
我的用法说明:
这是我的项目结构(基本上基于Flask Web Development):
/babel.cfg 和 /app/__init__.py 中的配置
babel.cfg:
应用程序/__init__.py:
然后我按照 Flask-Babel 文档
跑$ pybabel extract -F babel.cfg -o messages.pot .
跑$ pybabel extract -F babel.cfg -k lazy_gettext -o messages.pot .
他们确实找到了所有的gettext
s 和lazy_gettext
s。
跑$ pybabel init -i messages.pot -d translations -l zh_CN
这为我生成了一个/translations/zh_CN/LC_MESSAGES/messages.po
。我修复了其中的一些翻译。(包括删除# .fuzzy
)
最后我跑了$ pybabel compile -d translations
。这样就生成/tranlations/zh_CN/LC_MESSAGES/messages.mo
成功了。
但是什么都没有翻译......而且我真的不知道如何修复这个错误。
这几天我真的被搞砸了。
有关更多信息,我将这个项目放在了Github上。
python - 单元测试 Flask Babel 翻译
我想做一些单元测试来检查我的烧瓶应用程序翻译。我试过这段代码:
但是,尽管应用程序运行良好,但它不起作用/通过。我究竟做错了什么?
python - Flask-Babel 不使用可插入视图进行翻译
我正在尝试让 Flask-Babel 与可插入视图一起使用。尽管@babel.localeselector注释函数按预期调用,但实际上并没有发生翻译。
我在 GitHub 上设置了我的问题的演示仓库: https ://github.com/legeorges/flask-babel
对于使用模板的索引页面和只返回字符串的 /hello 页面,我们应该看到“Hello”而不是“Bonjour”
有一个名为simple-babel的工作示例应用程序,但是它使用蓝图而不是可插入视图。
python - 使用 babel 或其他任何东西将字符限制发送到 transifex
有没有办法从模板中为翻译设置字符限制?
我目前正在使用 babel 生成 pot 文件以将它们推送到 transifex。我发送的标签之一是翻译者的评论
我想知道是否有一种方法可以在我的模板中设置字符限制并将其设置在要在 transifex 中设置的 pot 文件中
python - Python(flask,babel):检测浏览器语言(不是首选/接受的语言)
在将此问题标记为“重复”/“已回答”之前,请考虑到此“重复”都与 ACCEPTED_LANGUAGES 标头字段有关。
问题是:如何在 Python 中检测用户为其浏览器 UI 设置的语言?
使用 @babel.localeselector 返回在浏览器的语言优先顺序中具有最大“权重”的语言,而不是浏览器的语言。JS 的 navigator.language 检测浏览器的实际语言(IE 除外,其中 navigator.userLanguage 返回 OS 语言,并且仅适用于 IE11) - 使用 Flask 和 Babel 在 Python 中可以实现同样的事情吗?其他一些轻量级框架建议?还是我最好的选择是坚持使用 JS 路径而忘记 IE 用户,并希望他们的浏览器语言与操作系统相同?
谢谢
python - Pybabel用jinja2生成空锅文件
我正在使用 Flask、Flask-Babel 和 Jinja2。我正在尝试生成 .pot 文件。这就是我到目前为止所做的。
我的 babel.cfg 看起来像这样:
我正在使用我的应用程序初始化 Flask-Babel,如下所示:
在我的模板目录中,我确实有 homepage.html:
然后运行这个命令(当我在我的 virtualenv 中时):
输出线之一是:
它会生成一个带有以下内容的 messages.pot 文件:
该文件没有我的翻译。
我没有收到任何错误或警告,pybabel 只是找不到gettext
jinja2 文件中的变体。但是当我gettext
在 .py 文件中使用它时,它工作得很好。
我错过了什么吗?
python - 为 Babel 指定一个特定的 .mo 文件来加载
问题的设置很简单:
- 用户选择语言首选项(可以从用户的会话中读取此首选项);
- 基于此选择,从可用的翻译中加载适当的 .mo;
- (没有设置单独的域,如果有什么不同的话)
问题:由于此返回必须在烧瓶应用程序范围之外完成,因此无法实例化并使用@babel.localeselector。相反,我使用了一个基于 webapp2 i18n' 扩展的简单函数,它使用 Babel 的支持函数加载给定的翻译并返回一个翻译实例(翻译:“PROJECT VERSION”)。(inb4 '为什么不使用 webapp2 呢?' 库已经太多了)。
从这一点开始,我不清楚如何处理这个实例。我怎样才能让 Babel 使用这个特定的实例?(目前,它总是使用默认的,不涉及'best_match')。
python - 检索字符串以进行单元测试
考虑这段代码:
编写单元测试以确保函数返回 this - 由 Babel 引用和翻译 - 字符串的最佳方法是什么?
这个幼稚的代码不会包含引用——所以这实际上是一个不同的“Babel 字符串”:
python - 烧瓶巴别塔不起作用
我使用 Flask Babel 为烧瓶管理项目做 I18N。但即使使用简单的模板也无法使其工作。下面是代码,先初始化babel,
添加构建管理页面并添加I18N,我也尝试了lazy_gettext()。不行。
使用 babel 获取 I18N 并添加翻译,
它找到所有文本并手动添加翻译,然后编译它,
重新启动服务器并检查页面,没有任何翻译。我尝试了其他语言,它们都不起作用。可能的原因是什么?这是完整的代码https://github.com/XiaokunHou/FlaskProject