Локализация и интернационализация
Обзор
Цель локализации и интернационализации — предоставление веб-приложения с контентом на языках и в форматах, адаптированных к аудитории.
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-LanguageHTTP с помощью этого формата. Примеры:it,de-at,es,pt-br. Коды языка обычно представляются строчными, но заголовок HTTPAccept-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.0/topics/i18n/index/