Какую систему динамической интернационализации использовать в проектах Django? - PullRequest
8 голосов
/ 20 августа 2010

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

  • Джанго-многоязычная
  • Джанго-подключаемый-модель-i18n
  • Джанго-modeltranslation
  • Transdb
  • Джанго-многоязычная-модельно
  • Джанго-Transmeta

чтобы назвать несколько.

Transdb, transmeta и многоязычный звучат справедливо, но я хочу прочитать некоторые личные впечатления.

Какой из них мне выбрать?

Ответы [ 4 ]

5 голосов
/ 20 августа 2010

Я согласен с С. Лоттом в том, что вы захотите подумать о том, что вам нужно от интернационализации. Тем не менее, это очень хорошая версия всех упомянутых пакетов:

http://blog.muhuk.com/2010/01/06/dynamic-translation-apps-for-django.htm

Пока что мой личный выбор - «ничего из вышеперечисленного». В настоящее время я создаю прототип с дататрансом:

http://github.com/citylive/django-datatrans

http://www.botondus.com/dynamic-translation-with-django-datatrans/

Но я все же могу выбрать другое решение.

3 голосов
/ 21 июня 2011

Существует 2 вида перевода модели:

  1. Добавление дополнительных столбцов / полей в модель для перевода
  2. Использование второй таблицы для переводов

1-й подход более эффективен, потому что вы не используете дополнительные объединения. И второй менее навязчив, поскольку он не изменяет исходную таблицу моделей. Мне лично больше нравится первый вариант, и это одна из основных причин, по которой я использую django-modeltranslation .

Вы также можете взглянуть на эту сетку сравнения .

2 голосов
/ 26 сентября 2011

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

Оно все еще находится в разработке, но работает хорошо иочень полная документация .

Этот фрагмент кода показывает, как определяются многоязычные модели:

from django.db import models
from nani.models import TranslatableModel, TranslatedFields


class DjangoApplication(TranslatableModel):
    name = models.CharField(max_length=255, unique=True)
    author = models.CharField(max_length=255)

    translations = TranslatedFields(
        description = models.TextField(),
        description_author = models.CharField(max_length=255),
    )

    def __unicode__(self):
        return self.name
0 голосов
/ 20 августа 2010

Я использую django i18n для двуязычного проекта: я действительно очень доволен этим, и я определенно рекомендую его, но я должен сказать, что никогда не пробовалодин из других ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...