3

Meine Anwendung wird in zwei Sprachen verfügbar sein: Englisch und Deutsch. Die Anwendung wird einige XType-Objekte mit einem Beschreibungsfeld haben. Wie kann ich das Beschreibungsfeld von XType übersetzen? Bietet Django Unterstützung dafür oder muss ich eine andere Django-Anwendung verwenden?Internationalisierung von Modellen in Django-Anwendungen

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

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

Antwort

1

Django bietet keine direkte Unterstützung von Übersetzungen Modellfeld.

Sie müssen einen Weg finden, um es entweder innerhalb Django oder über Plug-in-Anwendungen zu behandeln (wie bereits django-easymode oder überprüfen Sie http://blog.muhuk.com/2010/01/06/dynamic-translation-apps-for-django.html).

Wenn Sie mit ihm in Ihrer App beschäftigen möchten Sie vielleicht etwas wie das Speichern eine Instanz pro Sprache ausprobieren wollen und dann entsprechend filtern, wenn das Abrufen von Daten:

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

hängt natürlich viel an Ihrem Projekt Bedürfnisse .

+0

Ich habe die Übersetzung mit Modeltranslation versucht. Gefolgt von den Schritten und es funktioniert. Das zu übersetzende Feld kann von admin geändert werden. – Seitaridis

0

django-easymode umfasst die @i18n decorator, die Ihren Fall lösen kann:

Manchmal es eine Anforderung an übersetzen Modelle wird. Django unterstützt Internationalisierung von statischem Text in Vorlagen und Code mittels gettext. Für die Übersetzung von Modellen - dynamische Daten - easymode bietet einfache Dekoratoren zu internationalisieren Modellfelder und lokalisierte Admin Klassen zu ermöglichen.