Подготовка проекта к интернационализации

Давайте подготовим проект к использованию различных языков. Мы собираемся создать английский и испанский вариант для нашего магазина. Отредактируйте файл settings.py вашего проекта и добавьте в него следующие настройки LANGUAGES. Поместите их рядом с параметром LANGUAGE_CODE:

LANGUAGES = (
    ('en', 'English'),
    ('es', 'Spanish'),
)

Параметр LANGUAGES содержит два кортежа, состоящие из кода языка и имени. Коды языков могут быть специфичными для конкретного языка, например en-us или en-gb или универсальные, например en. С помощью этого параметра мы указываем, что наше приложение будет доступно только на английском и испанском языках. Если не определить пользовательские языки, сайт будет доступен на всех языках, на которых будет переведен Джанго.

Отредактируйте LANGUAGE_CODE настройку следующим образом:

LANGUAGE_CODE = 'en'

Добавьте 'django.middleware.locale.LocaleMiddleware' в настройки MIDDLEWARE_CLASSES. Убедитесь, что эта строка вставлена после SessionMiddleware, потому что LocaleMiddleware необходимо использовать данные сессии. Она также должна быть помещена перед CommonMiddleware, поскольку для разрешения запрошенного URL-адреса требуется активный язык. Параметры MIDDLEWARE_CLASSES должны выглядеть следующим образом:

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.middleware.common.CommonMiddleware',
    # ...
)

Порядок промежуточного программного обеспечения очень важен, так как каждое промежуточное программное обеспечение может зависеть от данных, которые были заданы другим программным обеспечением, выполненным ранее. Промежуточное программное обеспечение применяется для запросов в порядке их появления в MIDDLEWARE_CLASSES и в обратном порядке для ответов.

Создайте следующую структуру каталогов в главном каталоге проекта рядом с файлом manage.py:

locale/
        en/
        es/

Каталог locale — это место, где будут находиться файлы сообщений для приложения. Отредактируйте файл settings.py и добавьте в него следующий параметр:

LOCALE_PATHS = (
    os.path.join(BASE_DIR, 'locale/'),
)

Параметр LOCALE_PATHS указывает каталоги, в которых Джанго должен искать файлы перевода. Пути языка, которые появляются первыми, имеют наивысший приоритет.

При использовании команды makemessages из каталога проекта файлы сообщений будут создаваться в каталогах созданных внутри директории locale/. Однако для приложений, содержащих язык и региональные стандарты, в этом каталоге будут созданы файлы сообщений.

results matching ""

    No results matching ""