國際化和本地化的目的就是讓一個網(wǎng)站應(yīng)用能做到根據(jù)用戶語種和指定格式的不同而提供不同的內(nèi)容。
Django 對文本翻譯, 日期、時間和數(shù)字的格式化,以及時區(qū)提供了完善的支持。
實際上,Django做了兩件事:
很顯然,翻譯取決于用戶所選語言,而格式化通常取決于用戶所在國家。 這些信息由瀏覽器通過Accept-Language
協(xié)議頭提供。不過確定時區(qū)就不是這么簡單了。
國際化和本地化通常會被混淆,這里我們對其進行簡單的定義和區(qū)分:
國際化
讓軟件支持本地化的準(zhǔn)備工作,通常由開發(fā)者完成。
本地化
編寫翻譯和本地格式,通常由翻譯者完成。
更多細(xì)節(jié)詳見W3C Web Internationalization FAQ、Wikipedia article和GNU gettext documentation。
警告
是否啟用翻譯和格式化分別由配置項
USE_I18N
和USE_L10N
決定。 但是,這兩個配置項都同時影響國際化和本地化。 這種情況是Django的歷史因素所致。
下面幾項可幫助我們更好地處理某種語言:
本地化名稱
表示地域文化的名稱,可以是 ll
格式的語種代碼,也可以是 ll_CC
格式的語種和國家組合代碼。例如:it
, de_AT
, es
, pt_BR
。語種部分總是小寫而國家部分則應(yīng)是大寫,中間以下劃線(_)連接。
語言代碼
表示語言的名稱。瀏覽器會發(fā)送帶有語言代碼的 Accept-Language
HTTP報頭給服務(wù)器。例如:it
, de-at
, es
, pt-br
. 語種和國家部分都是小寫,中間以破折線(-)連接。
消息文件
消息文件是純文本文件,包含某種語言下所有可用的翻譯字符串及其對應(yīng)的翻譯結(jié)果。消息文件以 .po
做為文件擴展名。
翻譯字符串
可以被翻譯的文字。
格式文件
針對某個地域定義數(shù)據(jù)格式的Python模塊。
譯者:Django 文檔協(xié)作翻譯小組,原文:Overview。
本文以 CC BY-NC-SA 3.0 協(xié)議發(fā)布,轉(zhuǎn)載請保留作者署名和文章出處。
Django 文檔協(xié)作翻譯小組人手緊缺,有興趣的朋友可以加入我們,完全公益性質(zhì)。交流群:467338606。