Интернационализация и регионализация ¶
Предварительный просмотр ¶
Цель интернационализации и регионализации - дать возможность одному веб-приложению представлять свой контент на языках и в форматах, подходящих для его посетителей.
Django полностью поддерживает перевод текста , форматирование дат, времени и чисел , а также часовых поясов .
По сути, Django делает две вещи:
- Он позволяет разработчикам и разработчикам шаблонов указывать, какие части их приложений необходимо перевести или отформатировать в соответствии с местными языками и культурами.
- Он использует эти маркеры для регионализации веб-приложений на основе предпочтений пользователя.
Перевод зависит от целевого языка, а форматирование обычно зависит от целевой страны. Эта информация предоставляется браузерами в заголовке Accept-Language
. Однако часовой пояс не всегда доступен.
Определения ¶
Слова «интернационализация» и «регионализация» часто вызывают путаницу. Вот упрощенное определение:
- интернационализация
- Подготовка программного обеспечения к регионализации. Обычно это делают разработчики.
- районирование
- Написание переводов и языковых форматов. Обычно это делают переводчики.
Вы можете найти более подробную информацию в FAQ W3C Web Internationalization , статье в Википедии или документации GNU gettext .
Предупреждение
Перевод и форматирование контролируются соответствующими настройками USE_I18N
и USE_L10N
. Но эти две функции касаются интернационализации и регионализации. Имена этих настроек в Django имеют неудачное историческое происхождение.
Вот еще несколько терминов, которые помогут нам использовать тот же язык:
- название локали
- Имя языкового стандарта, либо языковая спецификация формы,
ll
либо комбинированная спецификация языка и страны в формеll_CC
. Примеры:it
,de_AT
,es
,pt_BR
,sr_Latn
. Языковая часть всегда в нижнем регистре. Часть страны указывается в заглавном регистре, если она содержит более двух символов, в противном случае - в верхнем регистре. Разделитель - нижнее подчеркивание. - код языка
- Представляет название языка. Браузеры отправляют названия языков, которые они принимают, в заголовке HTTP в
Accept-Language
этом формате. Примеры:it
,de-at
,es
,pt-br
. Коды языков обычно отображаются в нижнем регистре, но заголовок HTTPAccept-Language
не чувствителен к регистру. Разделитель - прочерк. - файл сообщения
- Файл сообщений - это чистый текстовый файл, соответствующий одному языку и содержащий все доступные строки символов перевода с их переведенным эквивалентом на данном языке. Файлы сообщений имеют расширение
.po
. - строка для перевода
- Текст для перевода.
- формат файла
- Файл форматов - это модуль Python, определяющий форматы данных для определенного языка.