2010-01-07 2 views
19

Ich versuche herauszufinden, wie man die Datenbankwerte (Textzeichenfolgen, keine Datumsformate oder etwas Kompliziertes) am besten übersetzt, wenn ich meine Django-Anwendung internationalisiere. Die logischste Möglichkeiten, die ich tun konnte, waren entweder:Die beste/empfohlene Methode, um Django-Datenbankwerte zu übersetzen

  • halten eine Datenbank Spalte für jede Sprache (zB description_en, description_de, description_fr, ...) oder
  • haben eine andere Datenbank für jede Sprache (zB schema_en, schema_fr, schema_de, ...).

Sind das die besten Optionen, oder gibt es noch etwas, das mir fehlt? Vielen Dank.

+0

auch, das ist eine wirklich kleine und einfache App mit vielleicht 5 oder weniger winzigen Tabellen. – sa125

+0

Soll jede Installation eine einzige Sprache haben, im Gegensatz zu einer Spracheinstellung pro Benutzer? – extraneon

+0

Die App unterstützt die Sprachauswahl pro Benutzer, so dass sie alle implementierten Übersetzungen in einer einzigen Instanz unterstützen muss. – sa125

Antwort

16

ich auf meine django Erweiterungen Lesen auf und fand das django-modeltranslation Plugin. Es scheint genau das zu tun, was Sie wollen. Wenn nicht, hinterlasse einen Kommentar und ich werde diese Antwort löschen :)

+0

sieht gut aus auf den ersten Blick muss ich ein bisschen damit spielen - danke! – sa125

+4

Ich komme zu spät, um eine neue Lösung für db-Übersetzungen, Gier-Übersetzungen, vorzuschlagen - github.com/yawd/yawd-translations. Es ermöglicht die Verwaltung von Sprachen über die Admin-Oberfläche (zur Laufzeit) und implementiert einen Admin inline zur einfachen Verwaltung von Übersetzungen. Da ich für yawd entwickle, benutze ich einen Kommentar statt einer neuen Antwort, um nicht für Eigenwerbung angeklagt zu werden :) – ppetrid

+1

[Auf github verschoben] (https://github.com/deschler/django-modeltranslation) –

2

Sie könnten sich die folgende thread ansehen, die die gleiche Frage zu sein scheint, die Sie hier stellen.

ich nicht die Lösung dagegen hätte hören Sie schließlich als irgendwann in der Zukunft verwenden könnte ich die gleiche Frage haben :)

3

Ich fand auch diese small project, die Zweck ist, lokalisierte Strings in Standard-Nachrichtendateien für Felder von registrierten Modellen zu synchronisieren.

Beispiel:

import vinaigrette 
vinaigrette.register(YourModel, ['name', 'description']) 

Der Standardbefehl

$ manage.py makemessages 

halten würde Nachrichten für jede einzelne Namens- Feldern gefundenen Werte.

Ich hatte noch nicht die Gelegenheit, es zu versuchen.
Aber das scheint für mich der einfachste Weg zu sein, Daten aus db zu übersetzen.

+1

Das bedeutet Jedes Mal, wenn Sie einen neuen Datensatz in der Datenbank hinzufügen, müssen Sie möglicherweise Makemessages erneut ausführen und po-Dateien einchecken, wenn ein neuer Eintrag vorhanden ist ... nur eine Warnung. Aber wie auch immer, das ist, was ich gesucht habe, es ist leichter als Django-Modeltranslation, die eine Spalte in den Tabellen hinzufügt, die für jede Sprache übersetzt werden müssen ... –