Интернационализация и локализация ¶
Обзор ¶
Цель интернационализации и локализации - позволить одному веб-приложению предлагать свой контент на языках и в форматах, адаптированных к аудитории.
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
. Языковая часть всегда в нижнем регистре. Часть страны указывается в заглавном регистре, если она содержит более двух символов, в противном случае - в верхнем регистре. Разделитель - подчеркивание. - код языка
- Представляет название языка. Браузеры отправляют имена языков, которые они принимают, в
Accept-Language
заголовке HTTP, используя этот формат. Примеры:it
,de-at
,es
,pt-br
. Коды языков обычно представлены в нижнем регистре, ноAccept-Language
заголовок HTTP нечувствителен к регистру. Разделитель - прочерк. - файл сообщения
- Файл сообщения - это простой текстовый файл, представляющий один язык, который содержит все доступные строки перевода и то, как они должны быть представлены на данном языке. Файлы сообщений имеют
.po
расширение. - строка перевода
- Буквальное значение, которое можно перевести.
- файл формата
- Файл формата - это модуль Python, который определяет форматы данных для данной локали.