[英]Python, flask, babel- message, and e.g. Spanish - How to
我對嘗試使用帶燒瓶的 babel 進行語言翻譯感到非常困惑。
讓我們假設以下內容。 用戶更喜歡西班牙語而不是英語。 我有一個標記這一點的變量:
g.user.default_language='sp'
假設我必須發送消息,一個是英文的,另一個是我想要顯示的西班牙文。 “請”與“請”
<html>
<h1>INSERT TRANSLATION HERE</h1>
</html>
這是我的基本 babel 配置文件
[python: **.py]
[jinja2: **/templates/**.html]
extensions=jinja2.ext.autoescape,jinja2.ext.with_
那么,如果用戶偏好是西班牙語,“請”去哪里以及它如何映射到“por fovor”?
那么,如何從基於語言配置文件的模板調用?
謝謝
Flask-Babel是一個非常棒的項目。 如果你在谷歌上尋找 jinja、i18n 和 Flask,你會發現一些有用的例子。 請參閱文檔了解更多信息。 在這里,我將提供一個小例子:
1. 創建翻譯目錄:
my_website/translations/pt/LC_MESSAGES/
my_website/translations/en/LC_MESSAGES/
假設您的網站是葡萄牙語和英語。 這是一種手動方式來做到這一點。 你最好使用pybabel init
命令。
2. 創建一個名為 messages.po 的文件(這些文件將包含翻譯的字符串):
$ touch my_website/translations/pt/LC_MESSAGES/messages.po
$ printf "msgid \"Hello world\"\nmsgstr \"Olá mundo\"" > my_website/translations/pt/LC_MESSAGES/messages.po
$ cat my_website/translations/pt/LC_MESSAGES/messages.po
它將創建一個包含以下內容的文件:
msgid "HELLO WORLD"
msgstr "Olá mundo"
3.編譯翻譯
$ pybabel compile -d translations
4. 將此行代碼添加到您的燒瓶的主應用程序文件中。
app.config['BABEL_DEFAULT_LOCALE'] = 'pt_BR' #(context locale to load language).
5. 在 jinja 的模板文件中使用_()
函數來查看Olá mundo字符串。
<h1>{{ _('HELLO WORLD') }}</h1>
我希望它會很有用。
您是否按照指南中的說明運行了 pybabel 翻譯? http://packages.python.org/Flask-Babel/
並參見http://jinja.pocoo.org/docs/templates/#i18n-in-templates和http://jinja.pocoo.org/docs/integration/#babel-integration
看來你可以簡單地使用_()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.