Python多語言、國際化?

Tags: 語言, 程式,

Python通過gettext模組支援國際化(i18n),可以實現程式的多語言介面的支援

方法/步驟

進入Python的安裝目錄中Tools\i18n目錄

Python多語言、國際化

執行pygettext.py

生成一個messages.pot

Python多語言、國際化

修改messages.pot中編碼

CHARSET gb2312

ENCODING utf8

Python多語言、國際化

編輯messages.pot

新增需要國際化的內容,另存為*.po檔案

我這裡存成了lang.po

Python多語言、國際化

編譯lang.po

執行msgfmt.py lang.po

生成lang.mo

Python多語言、國際化

在專案中建立目錄

\locale\zh_CN\LC_MESSAGES

\locale\en_US\LC_MESSAGES

LC_MESSAGES這個是必須的

同時將剛剛的lang.po、lang.mo放入到zh_CN\LC_MESSAGES\這個目錄下。

也可以生成一個英文的對應檔案放入到en_US\LC_MESSAGES\目錄下

Python多語言、國際化

測試下效果,輸出用_(str)代替str。成功輸出中文

將zh_CN換成en_US如果沒有配置預設直接輸出原內容,如Hello YY

完整的test.py

# -*- coding: utf-8 -*-

#!/usr/bin/env python

import sys

reload(sys)

sys.setdefaultencoding('utf8')

import gettext

gettext.install('lang', 'F:\Workspaces\server\MobileApiServer\project\locale', unicode=False)

gettext.translation('lang', 'F:\Workspaces\server\MobileApiServer\project\locale', languages=['zh_CN']).install(True)

print _('Hello YY')

Python多語言、國際化

專案直接使用,服務啟動的時候載入所有的mo檔案。

在請求的過濾入口處設定本次請求的語言,後面程式碼中就可以直接使用啦

Python多語言、國際化

相關問題答案