Flask-Babel使用簡易教程(二)

閱讀本章前請先參照Flask-Babel使用簡易教程(一)

我們也需要決定我們將要提供翻譯的語言種類。支持語言的列表被添加到配置文件中(文件hello.py):


語言列表

LANGUAGES字典有可用語言代碼的鍵,以及可打印的語言名稱作為值。我們使用短的語言代碼,但是要指明語言和地域的話,也可能使用長代碼。比如,如果我們要支持美國和英國英語的話,我們的字典里面可以有‘en-US’‘en-GB’。

注意因為Espa?ol有一個外來字符,我們必須在 Python 源代碼文件頂部中添加coding聲明,告訴 Python 解釋器我們是使用UTF-8 編碼不是 ASCII,因為 ASCII 編碼缺少?字符。

接下來的一個配置就是我們需要一個Babel用于決定使用哪種語言的函數(shù)(文件hello.py):


localeselector

這個函數(shù)有一個localeselector裝飾器,它被調(diào)用在請求之前為了當產(chǎn)生響應的時候給我們機會選擇使用的語言?,F(xiàn)在為止我們做的是簡單的,我們只要讀取瀏覽器發(fā)送的 HTTP 請求中的Accept-Languages頭并且從我們支持的語言列表中選擇最匹配的語言。這個過程實際上也相當簡單,best_match方法為我們做了所有工作。

Accept-Languages頭在大多數(shù)瀏覽器上被默認配置成操作系統(tǒng)層的所選擇的語言,但是所有的瀏覽器給我們機會選擇其它的語言。用戶可以提供語言列表,每一個都有權重。作為例子,下面是復雜的Accept-Languages頭:

Accept-Language: da, en-gb;q=0.8, en;q=0.7

上面的頭信息表示最佳的語言是丹麥語(默認權重為 1),接著是英國英語(權重是 0.8)以及最后一個選項是通用英語(權重是 0.7)。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容