【问题标题】:Set html tag lang attribute accordingly using flask babel使用flask babel相应地设置html标签语言属性
【发布时间】:2018-12-18 11:31:45
【问题描述】:

查看文档我发现没有提到这个非常基本和常见的需求:

我想根据选定的语言环境设置html 标签lang 属性——而不是每次都明确地将其传递给render_template,例如

<html lang="{{ lang }}">

我唯一想到的就是将Babel.locale_selector_func 添加到上下文中,这对我来说似乎有点矫枉过正

babel = Babel(app)
...
@app.context_processor
def utility_processor():
    return dict(lang=babel.locale_selector_func)

然后我就可以了

<html lang="{{ lang() }}">

【问题讨论】:

  • 不能为‘lang’标签中的内容添加翻译吗?这样翻译就会被实际显示的翻译选择!

标签: python flask python-babel


【解决方案1】:

我确实认为将语言注入上下文是可行的方法。

我自己只做一个小改动,我会在 python 中调用函数并返回模板中的值,而不是调用模板中的函数:

babel = Babel(app)
...
@app.context_processor
def utility_processor():
    return dict(lang=babel.locale_selector_func())

...

<html lang="{{ lang }}">

我浏览了一下 babel 源代码,但他们只是将翻译功能注入到模板中,而不是实际的语言。所以我想这是唯一的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    • 1970-01-01
    • 2016-11-05
    相关资源
    最近更新 更多