Ich baue eine Website und muss in sieben Sprachen sein? Ich habe mich gefragt, ob es eine gute Übung gibt, die angewendet werden kann, um mehrsprachiges PHP-Skript zu bekommen?
Was denkst du auch, sollte ich es in DB, XML oder in PHP speichern?
Es gibt viele Möglichkeiten, Übersetzungen zu speichern:
Ich würde vorschlagen, dass Sie etwas wie Zend_Translate verwenden, das mehrere Adapter und bietet Ein grundlegender Ansatz zum Einbetten von Übersetzungen in Ihre Anwendung.
Im Gegensatz zu daddz würde ich empfehlen, gettext in PHP zu verwenden:
Die Gebietsschemaeinstellung ist pro-Prozess. Das heißt, wenn Sie mit einem Multithread-Apache oder einem anderen Multithread-Webserver arbeiten, der PHP während des Prozesses ausführt, wirkt sich der Aufruf von setlocale in einem Thread auf die anderen Threads aus.
Da Sie nicht wissen können, welcher Thread / Prozess welche Anfrage bearbeitet, werden Sie auf schreckliche Probleme stoßen, wenn Benutzer zeitweise das falsche Gebietsschema erhalten.
printf
oder sogar strtotime
. Wenn Sie mit gettext / setlocale Verwenden Sie eine der anderen Lösungen von Eran oder machen Sie schnell selbst etwas (PHP-Arrays funktionieren sehr gut). Verwenden Sie auch die intl-Erweiterung, die im Kern von PHP 5.3 für die Formatierung und Sortierung von Zahlen und Datums verwendet wird.
Die Verwendung von gettext auf einer webbasierten Lösung erwies sich immer wieder als das Öffnen der sprichwörtlichen Dose Würmer.
Ich würde Gettext vorschlagen.
Es ist plattformübergreifend, open-source, weit verbreitet und verfügbar für PHP: PHP Gettext
Ich habe mehrsprachige CMS aufgebaut. Der gesamte Inhalt wurde in einer Datenbank mit Haupttabellen für allgemeine (nicht sprachspezifische Werte) und separate Tabellen für den sprachspezifischen Inhalt gespeichert.
Stellen wir uns zum Beispiel vor, Produkte zu speichern - wir haben eine "Produkt" -Tabelle (enthält eindeutige_ID, Datum erstellt, Bild-URLs usw.) und eine 'product_local'-Tabelle (enthält alle sprachspezifischen Felder).
Mit dieser Methode ist es sehr einfach, Inhalte zu pflegen.
Ich habe keine Erfahrung in gettext
, also keinen Kommentar zu diesem Thema, aber ich habe ein paar mehrsprachige Seiten mit den folgenden Methoden erstellt:
METHODE 1
Ich würde nicht sagen, dass mein Format das Beste ist, nur dass es effektiv ist. Ich habe auch Array verwendet. Abhängig davon, wo der Inhalt gespeichert ist.
Zum Beispiel habe ich ein assoziatives Array von Text mit den Indizes, die den Text identifizieren:
%Vor%Und vielleicht setzen Sie Ihre Sprache mit einer Konstanten- oder Konfigurationsvariablen.
METHODE 2
Ich habe zwei Sites mit identischen Strukturen und Back-Ends erstellt, aber jede verwendete eine andere Datenbank und wurde separat verwaltet: data_french
, data_english
.
Vielleicht finden Sie diesen Artikel zu diesem Thema interessant:
Der Autor befürwortet eine "faule Programmierer" -Strategie - tun Sie es nur, wenn Sie mehrsprachige Dinge brauchen - und scheint den PHP-Array-Ansatz mit IANA-Sprachcodes zu empfehlen. Der Artikel ist jedoch irgendwie vage.
Sieh dir dieses Forum an. Ich denke, Sie würden wahrscheinlich einen anderen Ansatz benötigen, wenn Sie jemand mit der Übersetzung unterstützt.
Tags und Links sql php xml multilingual