日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Django 國(guó)際化

 小飛苑 2017-01-08

Django 支持國(guó)際化,多語(yǔ)言。Django的國(guó)際化是默認(rèn)開啟的,如果您不需要國(guó)際化支持,那么您可以在您的設(shè)置文件中設(shè)置 USE_I18N = False,那么Django會(huì)進(jìn)行一些優(yōu)化,不加載國(guó)際化支持機(jī)制。

NOTE: 18表示Internationlization這個(gè)單詞首字母I和結(jié)尾字母N之間的字母有18個(gè)。I18N就是Internationlization的意思。


Django 完全支持文本翻譯,日期時(shí)間數(shù)字格式和時(shí)區(qū)。

本質(zhì)上講,Django做了兩件事:

  1. 它允許開發(fā)者指定要翻譯的字符串

  2. Django根據(jù)特定的訪問(wèn)者的偏好設(shè)置 進(jìn)行調(diào)用相應(yīng)的翻譯文本。


一,開啟國(guó)際化的支持,需要在settings.py文件中設(shè)置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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', ('中文簡(jiǎn)體')),
    ('zh-tw', ('中文繁體')),
)
#翻譯文件所在目錄,需要手工創(chuàng)建
LOCALE_PATHS = (
    os.path.join(BASE_DIR, 'locale'),
)
TEMPLATE_CONTEXT_PROCESSORS = (
    ...
    "django.core.context_processors.i18n",
)

注意:Django 1.9 及以上版本中,語(yǔ)言的代碼發(fā)生變化(詳情鏈接:github, django ticket,如下

1
2
3
4
5
LANGUAGES = (
    ('en', ('English')),
    ('zh-hans', ('中文簡(jiǎn)體')),
    ('zh-hant', ('中文繁體')),
)


二,生成需要翻譯的文件(Django 1.8及以下的版本):

1
2
python manage.py makemessages -l zh-cn
python manage.py makemessages -l zh-tw

Django 1.9 及以上版本要改成

1
2
python manage.py makemessages -l zh_hans
python manage.py makemessages -l zh_hant


三,手工翻譯 locale 中的 django.po

1
2
3
4
5
6
7
8
9
10
11
12
13
14
此處省去500字
...
#: .\tutorial\models.py:23
msgid "created at"
msgstr "創(chuàng)建于"
#: .\tutorial\models.py:24
msgid "updated at"
msgstr "更新于"
...
此處省去幾百字

四,編譯一下,這樣翻譯才會(huì)生效

1
python manage.py compilemessages

如果翻譯不生效,請(qǐng)檢查你的語(yǔ)言包的文件夾是不是有 中劃線,請(qǐng)用下劃線代替它。

比如 zh-hans 改成 zh_hans


Django 官方教程:internationalization-and-localization

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多