python - Flask-Babel 不会翻译 Web 项目中的任何内容

标签 python flask flask-sqlalchemy python-babel flask-babel

我的使用说明:

这是我的项目结构(基本上基于Flask Web开发):

├── README.md
├── app
│   ├── __init__.py
│   ├── admin
│   │   ├── __init__.py
│   │   ├── user_admin.py
│   ├── auth
│   │   ├── __init__.py
│   │   ├── forms.py
│   │   ├── views.py
│   ├── decorators.py
│   ├── main
│   │   ├── __init__.py
│   │   ├── errors.py
│   │   ├── forms.py
│   │   ├── views.py
│   ├── models.py
│   └── templates
│       ├── auth
│       │   ├── login.html
│       │   └── register.html
│       ├── base.html
│       ├── edit-profile.html
│       ├── index.html
│       ├── layout.html
│       └── user.html
├── babel.cfg
├── config.py
├── manage.py
├── migrations
│   ├── README
│   ├── alembic.ini
│   ├── env.py
│   ├── script.py.mako
│   └── versions
│       ├── 20c68396e6d8_.py
├── requirement.txt
├── test
└── translations
    └── zh_CN
        └── LC_MESSAGES
            ├── messages.mo
            └── messages.po

/babel.cfg 和/app/__init__.py 中的配置

babel.cfg:

[python: **.py]
[jinja2: **/templates/**.html]
extensions=jinja2.ext.autoescape,jinja2.ext.with_

应用程序/__init__.py:

# ...
from flask_babelex import Babel

babel = Babel()

@babel.localeselector
def get_locale():
    return 'zh_CN'

def create_app(config_name):
    #...
    babel.init_app(app)
    return app

然后我按照 Flask-Babel 文档

运行$ pybabel extract -F babel.cfg -o messages.pot 。

运行$ pybabel extract -F babel.cfg -k lazy_gettext -o messages.pot 。

他们确实找到了所有 gettextlazy_gettext

运行$ pybabel init -i messages.pot -d翻译-l zh_CN

这会为我生成一个 /translations/zh_CN/LC_MESSAGES/messages.po 。我修复了其中的一些翻译。(包括删除 # .fuzzy)

最后我运行$ pybabelcompile-dtranslations。这样就成功生成了/translations/zh_CN/LC_MESSAGES/messages.mo

但是什么都没有被翻译......而且我真的不知道如何修复这个错误。

我真的被这个搞砸了好几天了。

欲了解更多信息,我将此项目放在 Github .

最佳答案

因为babel实际解析的语言环境名称是“zh_Hans_CN”,所以将你的翻译目录命名为“zh_Hans_CN”,就会被找到。

关于python - Flask-Babel 不会翻译 Web 项目中的任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28102769/

相关文章:

python - 我正在做很多列表和字典排序......这导致 Python 网站出现内存错误

python - 有没有办法 pickle FTP 对象?

python - 查询父模型时可以过滤关系的内容吗?

sqlalchemy group_by 和计数

python - 在 python 二维数组中排列值

flask - 如何将 ptiPython 与 Flask-Script 一起使用?

python - 如何将 Flask 登录与 Dash 应用程序合并?

python - 如何通过 Flask 请求文件属性获取 Python 字典

python - 从交互式控制台运行代码时无法访问数据库

python - OpenCV python 错误 (-215) 照片找到 50% 的时间