3 Stimmen

Was für die Lokalisierung zu verwenden (PHP/Smarty/PEAR-Anwendung)?

Ich habe eine PHP/Smarty/Pear-App, die ihre eigene Lokalisierungsimplementierung hat, die die Verwendung von IDs für Zeichenfolgen beinhaltet, und die Zeichenfolgen werden in einer Datenbank gespeichert. Derzeit ist die App nur in Englisch, aber ich werde anfangen, andere Sprachen hinzuzufügen. Die aktuelle Implementierung ist sehr schlecht und im Grunde bin ich kein großer Fan davon, das Rad neu zu erfinden.

Kann jemand empfehlen, was man für die Lokalisierung verwenden soll? Ich hatte vor Jahren gettext verwendet, wird das immer noch verwendet oder gibt es etwas Neueres und Besseres?

Vielen Dank im Voraus.

2voto

cweiske Punkte 28626

Ich würde gettext verwenden, da es ein ausgereiftes System ist und Funktionen wie Einzahl/Mehrzahl-Versionen von Übersetzungen bereitstellt. Um nicht von der Verfügbarkeit der php-Erweiterung abhängig zu sein, sollte man auf http://launchpad.net/php-gettext zurückgreifen, das eine reine PHP-Implementierung von gettext bietet.

gettext hat auch den großen Vorteil, dass dutzende von Werkzeugen existieren, die es einfach machen, diese Dateien zu übersetzen.

0voto

jsnfwlr Punkte 3399

Mein bester Rat ist, sich anzusehen, wie andere Apps (Drupal, Joomla, Wordpress) die Lokalisierung handhaben, und etwas Ähnliches zu implementieren.

Ein paar der Apps, in die ich eingetaucht bin, haben eine einzelne ini-Datei für jede Sprache, die STRING-ID="String-Wert"-Definitionen enthält, wobei die STRING-ID einem PHP-CONSTANT-Namen ähnelt. Diese Dateien werden dann von einer Lokalisierungsklasse geladen, die Funktionen hat, die das Setzen der zu verwendenden Sprache (basierend auf einem Konfigurationswert oder einer Benutzereinstellung), das Laden der Datei und die Behandlung der Übersetzung der STRING-ID in den String-Wert handhaben. Du würdest es dann so verwenden:

translate("HELLOWORLD");
?>

Dies sollte etwas Ähnliches wie Hallo Welt produzieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X