Spec-Zone.ru › Django 6.0

Интернационализация и локализация

Обзор

Цель интернационализации и локализации — позволить одному веб-приложению предлагать содержимое на языках и в форматах, соответствующих аудитории.

Django полностью поддерживает перевод текста, форматирование дат, времени и чисел и часовые пояса.

По сути, Django делает две вещи:

  • Позволяет разработчикам и авторам шаблонов указывать, какие части приложений следует переводить или форматировать с учетом местных языков и культур.
  • Использует эти механизмы для локализации веб-приложений с учетом предпочтений отдельных пользователей.

Перевод зависит от целевого языка, а форматирование обычно зависит от целевой страны. Эта информация передается браузерами в заголовке Accept-Language. Однако часовой пояс не предоставляется автоматически.

Определения

Слова «интернационализация» и «локализация» часто вызывают путаницу; вот упрощенное определение:

internationalization

Подготовка программного обеспечения к локализации. Обычно выполняется разработчиками.

localization

Создание переводов и локальных форматов. Обычно выполняется переводчиками.

Подробнее можно узнать в FAQ W3C по интернационализации веба, статье в Википедии или документации GNU gettext.

Предупреждение

Перевод контролируется параметром USE_I18N. Однако он охватывает интернационализацию и локализацию. Название параметра — досадное следствие истории Django.

Ниже приведены другие термины, которые помогут нам разобраться в общей терминологии:

locale name

Название локали: либо указание языка в формате ll, либо указание языка и страны в формате ll_CC. Примеры: it, de_AT, es, pt_BR, sr_Latn. Часть, обозначающая язык, всегда записывается строчными буквами. Часть, обозначающая страну, записывается с заглавной буквы, если содержит более двух символов, иначе — прописными буквами. В качестве разделителя используется подчеркивание.

language code

Обозначает название языка. Браузеры передают названия поддерживаемых ими языков в HTTP-заголовке Accept-Language в этом формате. Примеры: it, de-at, es, pt-br. Коды языков обычно записываются строчными буквами, но регистр символов в HTTP-заголовке Accept-Language не учитывается. В качестве разделителя используется дефис.

message file

Файл сообщений — это текстовый файл для одного языка, содержащий все доступные строки перевода и указания о том, как их следует отображать на этом языке. Файлы сообщений имеют расширение .po.

translation string

Литерал, который можно перевести.

format file

Файл форматов — это модуль Python, который определяет форматы данных для заданной локали.

© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/6.0/topics/i18n/index/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API