Was ist die beste Methode um "mehrsprachige" Skripte in PHP zu erstellen?

8

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?

  • Einfach für mich
  • Einfach für die Übersetzer

Was denkst du auch, sollte ich es in DB, XML oder in PHP speichern?

    
Sulaiman 19.01.2009, 13:31
quelle

7 Antworten

11

Es gibt viele Möglichkeiten, Übersetzungen zu speichern:

  • TMX : Ein relativ neues XML-Format für Übersetzungen. Scheint an Popularität zu gewinnen.
  • Gettext ist ein weiteres offenes Format für Übersetzungen. War schon lange der De-facto-Standard.
  • ini-Dateien - einfach zu bearbeiten, sehr einfaches Format
  • PHP-Dateien (Arrays) - einfach für PHP-Programmierer zu bearbeiten, gute Leistung
  • CSV-Format - relativ einfach zu verwenden.

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.

    
Eran Galperin 19.01.2009 13:42
quelle
6

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.

  • Das in PHP eingestellte Gebietsschema hat Einfluss auf Funktionen wie printf oder sogar strtotime . Wenn Sie mit gettext / setlocale
  • arbeiten, werden Sie sicherlich durch "seltsame" Zahlenformate, die in Ihrem Backend-Code ankommen, ein bisschen bekommen

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.

    
pilif 19.01.2009 13:48
quelle
4

Ich würde Gettext vorschlagen.

Es ist plattformübergreifend, open-source, weit verbreitet und verfügbar für PHP: PHP Gettext

    
daddz 19.01.2009 13:36
quelle
1

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.

    
BrynJ 19.01.2009 18:54
quelle
1

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 .

    
jerebear 19.01.2009 14:00
quelle
0

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.

    
John Michaels 27.12.2011 15:56
quelle
0

Sieh dir dieses Forum an. Ich denke, Sie würden wahrscheinlich einen anderen Ansatz benötigen, wenn Sie jemand mit der Übersetzung unterstützt.

Der effizienteste Ansatz für die mehrsprachige PHP-Website

    
Santosh Achari 30.11.2013 05:36
quelle

Tags und Links