Интернационализация моделей в приложениях Django - PullRequest
3 голосов
/ 10 января 2011

Мое приложение будет доступно на двух языках: английском и немецком.Приложение будет иметь несколько объектов XType с полем описания.Как я могу перевести поле описания XType?Поддерживает ли Django это, или мне придется использовать другое приложение Django?

class XType(models.Model):
    description = models.CharField(max_length=50)  
    def __unicode__(self):
        return self.description

class X(models.Model):
    type = models.ForeignKey(XType)

Ответы [ 3 ]

1 голос
/ 10 января 2011

Django не предоставляет прямой поддержки трансляций полевых моделей.

Вам нужно найти способ справиться с этим либо в Django, либо с помощью подключаемых приложений (например, опубликованных уже django-easymode или проверки http://blog.muhuk.com/2010/01/06/dynamic-translation-apps-for-django.html).

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

class XType(models.Model):
    language = models.CharField(max_length=5)
    description = models.CharField(max_length=50) 

Конечно, многое зависит отваш проект нуждается.

0 голосов
/ 10 января 2011

Проверьте одно из этих дополнений: http://www.google.pl/search?sourceid=chrome&ie=UTF-8&q=django+model+translation для гибкого решения

0 голосов
/ 10 января 2011

django-easymode включает @ i18n decorator , который может решить вашу проблему:

Иногда это становится требованием переводить модели. Джанго поддерживает интернационализация статического текста в шаблоны и код с помощью Gettext. Для перевода моделей - динамические данные - easymode предлагает простой декораторы для интернационализации модельные поля и локализованный админ классы.

...