2

Flask + Babel + Flask Security をセットアップしました。次のようにすべての翻訳を作成しました。

    • main.py
    • 翻訳
        • LC_MESSAGES
          • メッセージ.mo
          • メッセージ.po

main.py には、以下を実行するセットアップ言語の一部があります。

@babel.localeselector
def get_locale():
    user = getattr(g, 'user', None)
    if user is not None:
        print("User locale {}".format(user.locale))
        return user.locale
    # I put here constant to test
    return 'ru'

しかし、http://localhost/loginは翻訳されないままでした。他にどこを掘るべきかアドバイスをお願いできますか?Debug = Trueでもログにエラーはありません

4

3 に答える 3

1

特定のロケールを使用していることをアプリに伝える必要があります。私は次のようにしました:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_security import Security, SQLAlchemyUserDatastore
from .models import User, Role, 
from flask_babel import Babel

app = Flask(__name__)
db = SQLAlchemy(app)

user_datastore = SQLAlchemyUserDatastore(db, User, Role)
security = Security(app, user_datastore)

babel = Babel(app, 'ru')
于 2019-10-12T15:09:56.067 に答える