对应每一种语言都有一个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 )
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
浙公网安备 33010602011771号