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

Обзор

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

Django имеет полную поддержку translation of text, formatting of dates, times and numbers и time zones.

По сути, Django делает две вещи:

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

Очевидно, что перевод зависит от целевого языка, а форматирование обычно зависит от целевой страны. Эта информация предоставляется браузерами в заголовке Accept-Language. Однако часовой пояс не всегда доступен.

Определения

Слова «интернационализация» и «локализация» часто вызывают путаницу; вот упрощенное определение:

интернационализация
Подготовка программного обеспечения к локализации. Обычно выполняется разработчиками.
локализация
Написание переводов и местных форматов. Обычно выполняется переводчиками.

Более подробную информацию можно найти в W3C Web Internationalization FAQ, Wikipedia article или GNU gettext documentation.

Предупреждение

Перевод и форматирование управляются настройками USE_I18N и USE_L10N соответственно. Однако обе эти функции связаны с интернационализацией и локализацией. Названия настроек являются неудачным результатом истории Django.

Вот еще несколько терминов, которые помогут нам найти общий язык:

имя локали
Имя локали, либо спецификация языка в форме ll, либо комбинированная спецификация языка и страны в форме ll_CC. Примеры: it, de_AT, es, pt_BR. Языковая часть всегда пишется в нижнем регистре, а часть страны - в верхнем. Разделителем является знак подчеркивания.
код языка
Представляет собой название языка. Браузеры отправляют названия языков, которые они принимают, в HTTP-заголовке Accept-Language, используя этот формат. Примеры: it, de-at, es, pt-br. Коды языков обычно представляются в нижнем регистре, но заголовок HTTP Accept-Language не чувствителен к регистру. Разделителем является тире.
файл сообщения
Файл сообщения - это текстовый файл, представляющий один язык, который содержит все имеющиеся translation strings и то, как они должны быть представлены в данном языке. Файлы сообщений имеют расширение .po.
строка перевода
Букварь, который можно перевести.
файл формата
Файл формата - это модуль Python, определяющий форматы данных для данной локали.
Вернуться на верх