2010-08-20 13 views
7

Ich entwickle ein neues Projekt von Grund auf mit Django. Ich sehe, dass es viele Apps für die Übersetzung von dynamischen Inhalten gibt.Welches dynamische Internationalisierungssystem wird in Django-Projekten verwendet?

  • Django-mehrsprachiger
  • Django-Pluggable-model-i18n
  • Django-modeltranslation
  • Transdb
  • Django-mehrsprachiger-Profis-
  • Django-transmeta

um nur einige zu nennen.

Transdb, Transmeta und mehrsprachig klang fair, aber ich möchte einige persönliche Erfahrungen lesen.

Welche von denen sollte ich wählen?

+1

Ohne tatsächliche Anforderungen, die Antwort „würfeln.“ Es gibt sechs Möglichkeiten. Sechs Gesichter auf einem Würfel. Rollen und los. Wenn Sie die Würfelantwort nicht mögen, dann müssen Sie entweder über Anforderungen nachdenken oder über Gründe nachdenken, warum Sie eine der Entscheidungen nicht mögen würden, wenn sie von einem Außenseiter für Sie ausgewählt würde. –

+0

Ohne tatsächliche Anforderungen bleibt die Antwort "roll a die". –

Antwort

5

Ich stimme mit S.Lott darin überein, dass Sie darüber nachdenken sollten, was Sie von der Internationalisierung brauchen. Dies ist jedoch eine sehr gute heruntergekommenen von allen genannten Pakete:

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

Meine persönliche Wahl so weit ist „keine der oben genannten“. Ich bin Prototyping derzeit mit Datatrans:

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

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

Aber ich kann noch eine andere Lösung wählen.

0

Ich benutze die django i18n für ein zweisprachiges Projekt: Ich bin wirklich sehr zufrieden mit diesem und ich würde es definitiv empfehlen, aber ich muss sagen, dass ich noch nie einen der anderen ausprobiert habe .. .

+0

Es ist keine elegante Methode, um dynamische Inhalte zu verwenden. – yigit

+0

Uh, interessant ... Warum nicht? – dolma33

+3

Zuallererst benötigen Sie eine Art von Hack, um den übersetzbaren Inhalt in der Datenbank zu .po-Dateien hinzuzufügen. Dann müssen Sie eine Schnittstelle für die Inhaltsgeneratoren bereitstellen, um diese Dateien zu bearbeiten und zu kompilieren. Schließlich müssen Sie die Anwendung neu starten, damit die Änderungen wirksam werden. Dies kann jedoch zu Fehlern führen, wenn Ihre Benutzer über diese Berechtigung verfügen. Djangos integrierte i18n-Unterstützung eignet sich nur für statischen Text. – yigit

3

Es gibt 2 Arten von Modell Übersetzung:

  1. Hinzufügen von zusätzlichen Spalten/Felder zum Modell für Übersetzungen
  2. Mit Hilfe eine zweite Tabelle zu übersetzen

Der erste Ansatz ist effizienter, da Sie keine zusätzlichen Joins verwenden. Und der zweite ist weniger aufdringlich, da er die ursprüngliche Modelltabelle nicht verändert. Ich persönlich mag die erste Option besser und das ist einer der Hauptgründe, warum ich django-modeltranslation verwende.

Sie können sich auch diese comparison grid ansehen.

2

Django-nani ist eine brandneue Anwendung, die schnell und gut geschrieben ist, mit dem wahrscheinlich besten Design-Ansatz.

Es ist noch in der Entwicklung, aber funktioniert gut und hat eine sehr vollständige documentation.

Dies ist ein Ausschnitt zu sehen, wie die mehrsprachigen Modelle definiert sind:

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 
Verwandte Themen