Spec-Zone.ru › Django 4.2

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

Обзор

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

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

По сути, Django выполняет две задачи:

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

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

Определения

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

internationalization
Подготовку программного обеспечения к локализации. Обычно выполняется разработчиками.
localization
Написание переводов и локальных форматов. Обычно выполняется переводчиками.

Более подробную информацию можно найти в часто задаваемых вопросах W3C по веб-интернационализации, в статье Википедии или в документации GNU gettext.

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

Перевод и форматирование контролируются настройками USE_I18N и USE_L10N соответственно. Однако оба аспекта включают в себя интернационализацию и локализацию. Названия настроек — результат истории Django.

Вот некоторые другие термины, которые помогут нам обращаться с общим языком:

locale name
Имя локали, представляющее собой либо спецификацию языка в формате ll , либо объединённую спецификацию языка и страны в формате ll_CC. Примеры: it, de_AT, es, pt_BR, sr_Latn. Часть языка всегда в нижнем регистре. Часть страны — в верхнем регистре, если она содержит более 2 символов, в противном случае — в верхнем регистре. Разделитель — нижнее подчёркивание.
language code
Представляет имя языка. Браузеры отправляют имена принимаемых языков в Accept-Language HTTP-заголовке в этом формате. Примеры: 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/4.2/topics/i18n/index/

Spec-Zone.ru

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