Международная локализация и локализация
Обзор
Цель международной локализации и локализации — обеспечить веб-приложению возможность отображать свой контент на языках и в форматах, адаптированных к аудитории.
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.1/topics/i18n/index/