Главная | Архив новостей | Общение | Площадка | Примеры OpenID
Хостинг Django от «Джино»
Оглавление

Использование переводов в ваших проектах

Django ищет переводы по следующему алгоритму:

  • Сначала просматривается каталог locale в каталоге приложения представление которого было вызвано. Если будет найден соответствующий файл с переводами, будет установлен этот перевод.

  • Затем просматривается каталог locale в каталоге проекта. Если файл с переводами будет найден, он будет установлен.

  • Наконец, просматривается базовый каталог django/conf/locale.

Таким образом вы можете создавать приложения, которые будут иметь свой собственный перевод, также вы можете переопределять базовый перевод для своего проекта. Вы можете построить большой проект с несколькими приложениями и разместить переводы в одном большом файле. Этот выбор за вами.

Замечание

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

Все репозитории с файлами переводов структурированы одинаково:

  • $APPPATH/locale/<language>/LC_MESSAGES/django.(po|mo)

  • $PROJECTPATH/locale/<language>/LC_MESSAGES/django.(po|mo)

  • Все пути перечисленные в параметре LOCALE_PATHS файла конфигурации проверяются по порядку для <language>/LC_MESSAGES/django.(po|mo).

  • $PYTHONPATH/django/conf/locale/<language>/LC_MESSAGES/django.(po|mo).

Для создания файлов с сообщениями следует использовать утилиту bin/make-messages.py. Потребуется только запускать её из правильного места — в каталоге в котором находится conf/locale (в случае дерева исходных текстов) или locale/ (в случае сообщений приложения или проекта). Далее следует использовать compile-messages.py для создания бинарного django.mo, который используется gettext.

Файлы сообщения для приложения немного сложнее обнаружить, им требуется пакет LocaleMiddleware. Если вы не используете этот пакет, будут обрабатываться только файлы сообщений Django и проекта.

Наконец, вы должны как-то организовать структуру файлов с переводами. Если ваши приложения будут распространяться среди других пользователей и будут использоваться в других проектах, может потребоваться использовать переводы на уровне приложений. Но одновременное наличие переводов на уровне приложений и проекта могут породить неприятные проблемы с make-messages.py. Эта утилита просматривает все каталоги, начиная от текущего, и помещает идентификаторы сообщений в файл сообщений проекта, а эти идентификаторы уже могут находиться в файле приложений.

Простейший способ решения этой проблемы — не хранить приложения внутри каталога проекта (предоставляя им собственные переводы). Тогда выполнение make-messages.py на уровне проекта соберёт строки относящиеся только к проекту и которые не будут распространяться независимо от проекта.


Увидели ошибку?
Выделите её мышкой и нажмите
Ctrl-Enter
Обработано:
1049 49 130 71

Версия книги
1.0 2.0
Версия 2.0 в процессе перевода!

Мой луч
Многообразие света

Полезное
Актуальные вакансии, Python работа для python-разработчиков.


Скачать в формате
CHM от 2 сентября

Заказать PDF файл можно через почту, чат, джаббер. Всего 2WMZ. Содержимое точно соответствует содержимому сайта.
Чем чаще заказываете — тем больше перевожу.

Русская группа

на поддержку перевода
Яндекс Яндекс.Деньги Хочу такую же кнопку
Ускорить процесс перевода!
R130494980980
Z425285133788
E112528079659
U327380922061

Книга помогла реализовать:
Проект «Мой луч»
АРМ УФМС.


Мой вебсайт стоит666 337,31 руб

© 2008-2009 Ruslan Popov @ gmail.com Powered by Django 1.1 beta 1 SVN-11114
Главная | Архив новостей | Общение | Площадка | Примеры OpenID