python - Flask Babel 不起作用

标签 python flask python-babel flask-babel

我使用 Flask Babel 为 Flask 管理项目做 I18N。但不能让它工作,即使使用简单的模板。 下面是代码,先初始化babel,

app=Flask(__name__,template_folder='templates')
app.config.from_object('config')
csrf=CsrfProtect(app)
bcrypt=Bcrypt(app)
db=SQLAlchemy(app)
babel=Babel(app) 
@babel.localeselector
def get_locale():
    return 'zh_Hans_CN'

添加构建管理页面并添加 I18N,我也尝试了 lazy_gettext()。不工作。

# Create admin
admin = admin.Admin(app, 'iInvest:', index_view=MyAdminIndexView(), base_template='my_master.html')  
# Add view 
admin.add_view(UserManageView(User, db.session, gettext(u'User Management'))) 

使用 babel 获取 I18N 并添加翻译,

os.system(pybabel + ' extract -F babel.cfg -k lazy_gettext -o messages.pot iInvest/')
os.system(pybabel + ' init -i messages.pot -d translations -l zh_Hans_CN')
os.unlink('messages.pot')

它找到所有文本并手动添加翻译,然后编译它,

os.system(pybabel + ' compile -f -d translations')

重启服务器并检查页面,没有任何翻译。我尝试了其他语言,但都不起作用。可能的原因是什么? 这是完整的代码 https://github.com/XiaokunHou/FlaskProject

最佳答案

我发现我哪里错了。翻译文件夹位于错误的位置。它应该在 iInvest 下(在其他情况下是应用程序).​​.

pybabel extract -F babel.cfg -k lazy_gettext -o messages.pot iInvest/
pybabel init -i messages.pot -d iInvest/translations -l zh_Hans_CN
pybabel compile -f -d iInvest/translations

关于python - Flask Babel 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30171200/

相关文章:

python - flask 中的 sqlalchemy : how to "delete .. where ... "?

python - 为 Babel 指定一个特定的 .mo 文件来加载

python - 使用 Jinja2 和 Babel,如何翻译包含 HTML 标签的句子?

python - pandas 像磁性一样合并 DataFrame

Python Flask 通过所有模块记录请求正文

python - Flask 在上传文件或等待其他服务器时无响应

python - 检索字符串以进行单元测试

python - 如何使用python访问gmail?

python - 如何使用 sqlalchemy 按日期过滤

python - Pandas:使用多个正则表达式比较两列中的行并将正确的行复制到自己的列中