对应每一种语言都有一个po文件,里面有对字符串翻译的定义,需要把po文件生成二进制的mo文件,才能为django所用。

 

使用django自带的工具:

 1 MIDDLEWARE_CLASSES = (
 2     ...
 3     'django.middleware.locale.LocaleMiddleware',
 4 )
 5 
 6 
 7 LANGUAGE_CODE = 'en'
 8 TIME_ZONE = 'UTC'
 9 USE_I18N = True
10 USE_L10N = True
11 USE_TZ = True
12 
13 LANGUAGES = (
14     ('en', ('English')),
15     ('zh-hans', ('中文简体')),
16     ('zh-hant', ('中文繁體')),
17 )
18 
19 #翻译文件所在目录,需要手工创建
20 LOCALE_PATHS = (
21     os.path.join(BASE_DIR, 'locale'),
22 )
23 
24 TEMPLATE_CONTEXT_PROCESSORS = (
25     ...
26     "django.core.context_processors.i18n",
27 )
setting.py
python manage.py makemessages -l zh_hans
python manage.py makemessages -l zh_hant
python manage.py compilemessages

使用msgfmt:

安装msgfmt:

sudo dpkg --configure -a
sudo apt-get install gettext

编码 po 文件为 mo 文件:

msgfmt -o django.mo django.po

mo 文件反编码成 po文件:

msgunfmt django.mo -o django.po

 

 posted on 2017-04-21 13:14  yahuishuo  阅读(268)  评论(0)    收藏  举报