Django 汉化
Django 漢化
1 簡(jiǎn)介
Django 支持國(guó)際化,多語(yǔ)言。Django的國(guó)際化是默認(rèn)開(kāi)啟的,如果您不需要國(guó)際化支持,那么您可以在您的設(shè)置文件中設(shè)置 USE_I18N = False,那么Django會(huì)進(jìn)行一些優(yōu)化,不加載國(guó)際化支持機(jī)制。
NOTE: 18表示Internationalization這個(gè)單詞首字母I和結(jié)尾字母N之間的字母有18個(gè)。I18N就是Internationalization(國(guó)際化)的意思。
Django 完全支持文本翻譯,日期時(shí)間數(shù)字格式和時(shí)區(qū)。
本質(zhì)上講,Django做了兩件事:
2 漢化配置
這是在Django 2.1下進(jìn)行的。
2.1 在settings.py中進(jìn)行配置
TIME_ZONE = 'Asia/Shanghai' LANGUAGE_CODE = 'zh-Hans'USE_I18N = True USE_L10N = True USE_TZ = TrueLANGUAGES = ( # ('en', ('English')),('zh-Hans', ('中文簡(jiǎn)體')), # ('zh-Hant', ('中文繁體')), )#翻譯文件所在目錄,需要手工創(chuàng)建 LOCALE_PATHS = (os.path.join(BASE_DIR, 'locale'), )TEMPLATES = [{............'OPTIONS': {'context_processors': [............'django.template.context_processors.i18n',],},}, ]MIDDLEWARE = [............'django.middleware.locale.LocaleMiddleware', ]2.2 生成翻譯文件
python manage.py makemessages -l zh_Hans # 簡(jiǎn)體 python manage.py makemessages -l zh_Hant # 繁體2.3 手工翻譯 locale 中的 django.po
... ...#: .\tutorial\models.py:23 msgid "created at" msgstr "創(chuàng)建于"#: .\tutorial\models.py:24 msgid "updated at" msgstr "更新于"... ...2.4 編譯翻譯文件
通過(guò)編譯后才會(huì)翻譯才會(huì)生效。
python manage.py compilemessages經(jīng)過(guò)編譯后得到的目錄結(jié)構(gòu)如下:
├── locale │?? └── zh_Hans # 通過(guò)makemessages生成的 │?? └── LC_MESSAGES │?? ├── django.mo # 編譯生成的翻譯文件 │?? └── django.po # 要編寫(xiě)的翻譯文件參考:
https://code.ziqiangxuetang.com/django/django-internationalization.html
總結(jié)
- 上一篇: 汉诺塔问题(含四柱加强版)
- 下一篇: 20万天猫智慧门店背后的商业思考和技术重