Интернационализация в Django
Django предлагает полную поддержку интернационализации и локализации. Указанная поддержка позволяет переводить приложение на несколько языков и обрабатывает форматирование дат, времен, чисел и часовых поясов в зависимости от локали.
Давайте проясним разницу между интернационализацией и локализацией:
Интернационализация (сокращенно i18n) – это процесс адаптации программного обеспечения под потенциальное использование разных языков и локалей, чтобы избежать его жесткой привязки к определенному языку или локали.
Локализация (сокращенно l10n) – это процесс фактического перевода программного обеспечения и его адаптации под конкретную локаль. Сам Django переведен более чем на 50 языков с использованием своего фреймворка интернационализации.
Фреймворк интернационализации позволяет легко помечать подлежащие переводу строковые литералы как в исходном коде Python, так и в шаблонах. В нем используется инструментарий GNU gettext, который служит для генерирования файлов сообщений и управления ими.
Файл сообщения – это обычный текстовый файл, представляющий язык. Он содержит часть либо все подлежащие переводу строковые литералы, найденные в приложении, и соответствующие им переводы на другой язык.
Файлы сообщений имеют расширение .po. После завершения перевода файлы сообщений компилируются, чтобы обеспечить быстрый доступ к переведенным строковым литералам. Скомпилированные файлы перевода имеют расширение .mo.