Международная и локальная локализация
Обзор
Цель международной и локальной локализации — предоставление веб-приложения на языках и в форматах, адаптированных к целевой аудитории.
Django полностью поддерживает перевод текста, форматирование дат, времени и чисел и часовые пояса.
По существу, Django выполняет две задачи:
- Разрешает разработчикам и авторам шаблонов указывать, какие части приложений должны быть переведены или отформатированы для локальных языков и культур.
- Использует эти возможности для локализации веб-приложений для конкретных пользователей в соответствии с их предпочтениями.
Перевод зависит от целевого языка, а форматирование обычно зависит от целевой страны. Эта информация предоставляется браузерами в заголовке Accept-Language. Однако часовой пояс не доступен напрямую.
Определения
Слова «международная» и «локальная локализация» часто вызывают путаницу; вот упрощённое определение:
-
internationalization - Подготовка программного обеспечения к локализации. Обычно выполняется разработчиками.
-
localization - Написание переводов и локальных форматов. Обычно выполняется переводчиками.
Более подробную информацию можно найти в часто задаваемых вопросах W3C по веб-международной локализации, статье Википедии или документации GNU gettext.
Предупреждение
Перевод контролируется параметром USE_I18N. Однако он включает международную и локальную локализации. Название параметра — результат истории 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/5.0/topics/i18n/index/