19.06.2009 12:24

  1. Здравствуйте!

    Недавно начал использовать Django и столкнулся с вопросом выбора метода многоязыковой поддержки проекта. Для совсем небольшого сайта возможно подошли бы встроенные возможности фрэймворка, но проект предполагается в перспективе немаленький и хотелось бы спросить, сталкивался ли кто-нибудь с подобным вопросом.

    Порядка тридцати таблиц в БД. Переводу подлежат поля практически из каждой таблицы.

    Предполагается использовать как ручной перевод, так и автоматический, основанный на Google Ajax Language API для обмена сообщениями. Ручной перевод необходим, так как в системе будет большое количество специфических терминов, переводчики с этим пока не справляются.

    Из рассматриваемых на данный момент средств: Django internationalization и Django-multilingual (http://code.google.com/p/django-multilingual/)

    Первое крайне неудобно с точки зрения постоянной необходимости в редактировании файлов переводов и их периодической сборки (хотя наверняка можно придумать надстройку, автоматизирующую этот процесс и удобный интерфейс).

    Второе же решение довольно сомнительно для маштабируемых проектов, так как заранее неизвестно сколько языков должна поддерживать система. Скорей всего их количество будет увеличиваться. Плюс непонятно с производительностью такой схемы при большом объеме данных.

    Друзья, подскажите пожалуйста прав ли я в своих рассуждениях?
    Что лучше предпринять в данной ситуации?

  2. Посмотрите django-rosetta - она из админки позволяет редактировать языковые файлы *.po
    http://code.google.com/p/django-rosetta/
  3. Dyadya Zed, большое спасибо!
    Очень необходимый инструмент для переводов.

    Но как быть если необходимо динамически обновлять словарь исходных слов из базы? То есть люди на разных языках вносят информацию и она должна автоматически появляться для переводчика.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.