要根据accept-language头选择正确的语言,可以使用以下代码示例中的方法:
from flask import Flask, request, g
from flask_babel import Babel
app = Flask(__name__)
babel = Babel(app)
@babel.localeselector
def get_locale():
# 检查accept-language头
lang = request.accept_languages.best_match(['en', 'fr', 'es'])
return lang
@app.before_request
def before_request():
# 设置g.locale以供其他部分使用
g.locale = get_locale()
@app.route('/')
def index():
# 获取当前选择的语言
lang = g.locale
# 根据语言返回不同的内容
if lang == 'fr':
return 'Bonjour!'
elif lang == 'es':
return '¡Hola!'
else:
return 'Hello!'
if __name__ == '__main__':
app.run()
在上述示例中,我们使用了Flask-Babel库来处理本地化。在get_locale
函数中,我们从request.accept_languages
中选择最佳匹配的语言。然后,在before_request
函数中,我们将选择的语言存储在g.locale
中,以供其他部分使用。
在路由函数index
中,我们可以通过g.locale
来获取当前选择的语言,并根据语言返回不同的内容。
请注意,上述示例仅演示了如何根据accept-language头选择语言,并返回不同的内容。您可能需要根据您的具体需求进行修改和扩展。
上一篇:本地化非根InfoPlist值
下一篇:本地化格式化输入标签助手(日期)