django国际化与html语言,Django 国际化
Django 國際化
Django 支持國際化,多語言。Django的國際化是默認(rèn)開啟的,如果您不需要國際化支持,那么您可以在您的設(shè)置文件中設(shè)置 USE_I18N = False,那么Django會(huì)進(jìn)行一些優(yōu)化,不加載國際化支持機(jī)制。
NOTE: 18表示Internationalization這個(gè)單詞首字母I和結(jié)尾字母N之間的字母有18個(gè)。I18N就是Internationalization(國際化)的意思。
Django 完全支持文本翻譯,日期時(shí)間數(shù)字格式和時(shí)區(qū)。
本質(zhì)上講,Django做了兩件事:它允許開發(fā)者指定要翻譯的字符串
Django根據(jù)特定的訪問者的偏好設(shè)置 進(jìn)行調(diào)用相應(yīng)的翻譯文本。
一,開啟國際化的支持,需要在settings.py文件中設(shè)置MIDDLEWARE_CLASSES?=?(
...
'django.middleware.locale.LocaleMiddleware',
)
LANGUAGE_CODE?=?'en'
TIME_ZONE?=?'UTC'
USE_I18N?=?True
USE_L10N?=?True
USE_TZ?=?True
LANGUAGES?=?(
('en',?('English')),
('zh-cn',?('中文簡體')),
('zh-tw',?('中文繁體')),
)
#翻譯文件所在目錄,需要手工創(chuàng)建
LOCALE_PATHS?=?(
os.path.join(BASE_DIR,?'locale'),
)
TEMPLATE_CONTEXT_PROCESSORS?=?(
...
"django.core.context_processors.i18n",
)
注意:Django 1.9 及以上版本中,語言的代碼發(fā)生變化(詳情鏈接:github, django ticket,如下LANGUAGES?=?(
('en',?('English')),
('zh-hans',?('中文簡體')),
('zh-hant',?('中文繁體')),
)
二,生成需要翻譯的文件(Django 1.8及以下的版本):python?manage.py?makemessages?-l?zh-cn
python?manage.py?makemessages?-l?zh-tw
Django 1.9 及以上版本要改成python?manage.py?makemessages?-l?zh_hans
python?manage.py?makemessages?-l?zh_hant
三,手工翻譯 locale 中的 django.po此處省去500字
...
#:?.\tutorial\models.py:23
msgid?"created?at"
msgstr?"創(chuàng)建于"
#:?.\tutorial\models.py:24
msgid?"updated?at"
msgstr?"更新于"
...
此處省去幾百字
四,編譯一下,這樣翻譯才會(huì)生效python?manage.py?compilemessages
如果翻譯不生效,請檢查你的語言包的文件夾是不是有 中劃線,請用下劃線代替它。
比如 zh-hans 改成 zh_hans (但是要注意 setttings.py 中要用 中劃線,不要也改了,就這一句話,你可能會(huì)浪費(fèi)幾個(gè)小時(shí)或幾天)
總結(jié)
以上是生活随笔為你收集整理的django国际化与html语言,Django 国际化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle虚拟机字符集,更改虚拟机上的
- 下一篇: P1579哥德巴赫猜想