2009-07-20 3 views
0

Welches ist die beste Möglichkeit, eine Sprachübersetzung für mutli -lang site zu implementieren. ich zwei Methoden, das heißtWie kann ich ein Sprachübersetzungsmodul in PHP implementieren?

1) alle statischen Texte Einfach Inhalte in den Seiten Datenbank dh eine Datenbank programing Stil angetrieben

$translation('register_form'); 
<form > 
<input name="search" > 
</form> 

eine Art transltion.

2) ist wie WordPress .mo Dateien Methode.

mag ich mehr über diese Art von Übersetzung wissen, wie es mit .mo wie Dateien funktioniert ...

oder anderen besseren Weg zu einem Übersetzungsmodul zu machen.

Antwort

1

Für .mo Dateiunterstützung, überprüfen Sie die gettext Funktionen, und sehen Sie sich das Original GNU gettext documentation.

Auf den Punkt gebracht, wann immer Sie natürliche Sprache verwenden, können Sie in einem Aufruf wickeln _() (ein Alias ​​für gettext)

echo _("Hello world"); 

alle Ihre Quellen tun dies einmal ausführen, um die GNU xgettext Tool build a .pot file, die die "Vorlage" für Ihre Sprachübersetzungen bildet. Für jede gewünschte Sprache würden Sie merge this .pot file into an individual .po file for each language. Die Zusammenführungsoperation, die wiederum von xgettext bereitgestellt wird, stellt sicher, dass Sie die Datei mit neuen Zeichenfolgen aktualisieren, ohne dass vorhandene Übersetzungen verloren gehen.

Diese .po-Dateien werden an Ihre Übersetzer gesendet, die möglicherweise ein Tool wie poedit verwenden, um die Übersetzung bereitzustellen. Wenn die .po-Datei zurückkommt, können Sie die binäre .mo-Datei generieren, die von gettext verwendet wird.

Es gibt auch classes in the Zend Framework, die darüber hinaus mehr Einrichtungen bereitstellen, z. mehr Dateiformate und Erkennung und Auswahl der bevorzugten Sprache in HTTP-Headern.

0

Schauen Sie in gettext - es ist nicht die perfekte Lösung für jedermanns Problem, aber es könnte für Ihre sein.