Flask巴别塔平移路径

2024-06-12 09:46:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个webapp,它使用Flask Babel来翻译模板。 此webapp可以通过将数据库名称添加到其url来使用多个数据库,例如:

myapp.com/<dbname>

问题是翻译路径是硬编码在巴别塔:

^{pr2}$

巴贝尔强迫我进入名为“翻译”的目录和名为“翻译”的语言文件消息.mo““

我在网上试了很多遍,但仍然没有明确的解决办法。在

我想到的一个想法是,是否可以用babelex更改babel,然后我可以覆盖翻译路径?在


Tags: 路径目录名称com模板数据库urlflask
3条回答

为什么不直接将flask babel源代码加载到您的项目中并对其进行修改?在

解决办法是安装烧瓶巴别莱克斯而不是巴别塔。在

。。。几年后,得到一条线索in github。从0.6版开始,Babel似乎有一个文档化很差的参数Babel_TRANSLATION_目录。那么烧瓶应用程序框架应该是

# example.py
from flask import Flask
app = Flask('example')

# change path of messages.mo file
app.config['BABEL_TRANSLATION_DIRECTORIES'] = 'i18n'

# add translation capacity
from flask.ext.babel import Babel
babel = Babel(app)

# define routes and so on ...

有了这个配置,Flask将首先在dir'i18n'中查找转换。在

一个非常基本的jinja模板

^{pr2}$

目录树有两种语言。文件夹消息.po应该包含“hello”的翻译

/myProject
  /i18n
    /en
      /LC_MESSAGES
        messages.po
    /fr
      /LC_MESSAGES
        messages.po
  example.py

奖励:多目录使用

app.config['BABEL_TRANSLATION_DIRECTORIES'] = 'i18n;second_dir;third_dir'

相关问题 更多 >