3

Мое приложение будет доступно на двух языках: английском и немецком. Приложение будет иметь несколько объектов XType с полем описания. Как я могу перевести поле описания XType? Поддерживает ли Django поддержку этого или мне придется использовать другое приложение 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) 

ответ

1

Джанго не обеспечивает прямую поддержку модель полевых переводов.

Вы должны найти способ справиться с ним либо в 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

Я пробовал перевод, используя modeltranslation. Затем выполните шаги, и это сработает. Поле, которое нужно перевести, можно изменить с администратора. – Seitaridis

0

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

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