4

Flask Babel を使用して、フラスコ管理プロジェクトの I18N を実行します。しかし、単純なテンプレートでも機能させることはできません。コードは次のとおりです。最初にバベルを初期化し、

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

4

1 に答える 1