簡體   English   中英

Python、flask、babel-消息和例如西班牙語 - 如何

[英]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-templateshttp://jinja.pocoo.org/docs/integration/#babel-integration

看來你可以簡單地使用_()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM