Интернационализация и локализация

Обзор

Цель интернационализации и локализации - позволить одному веб-приложению предлагать свой контент на языках и в форматах, адаптированных к аудитории.

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, который определяет форматы данных для данной локали.

Copyright ©2021 All rights reserved