phpbar.de logo

Mailinglisten-Archive

[php] Mehrsprachigkeit

[php] Mehrsprachigkeit

Yannik Hampe yannik at cipher-code.de
Die Dez 2 15:01:19 CET 2008



Ringo Großer wrote:
> Hallo
> 
> Florian Grell wrote:
>> Ich nutze zur Zeit folgendes System (abgeschaut bei Wordpress):
>> - alle Texte als Array in eine Datei pro Sprache
>> - Arrayschlüssel ist der ursprüngliche Text ("Klicken Sie hier, um...")
>> - Übersetzung als Arraywert ("Click here to...")
>> - Übersetzungsfunktion:
>> function __($key) {
>>   global $lang;
>>   return isset($lang[$key]) ? $lang[$key] : $key;
>> }

Laut php-Bediene soll man Funktionsnamen etc. nicht mit __ beginnen
lassen, da diese (in zukünftigen Versionen) als magische Funktionen
verwendet werden könnten.
>> - Template:
>> <?php echo __("Klicken Sie hier, um..."); ?>
>>
>> Hat den Vorteil, das auch bei nichtvorhandensein der Übersetzung "echter"
>> Text angezeigt wird.
>> Die Strings könnten natürlich auch in einer DB abgelegt werden.
> 
> Das erscheint mir ähnlich wie Funktionsweise der gettext Erweiterung, 
> die wiederum noch zusätzliche Möglichkeiten hat wie z.B. die 
> Verarbeitung von Platzhaltern und deren unterschiedliche Reihenfolge in 
> unterschiedlichen Sprachen.
> 
> Allerdings passt gettext nicht auf die ursprüngliche Anforderung, da 
> sich die PO-Dateien nur mit zusätzlichem Aufwand pflegen lassen und 
> kompiliert werden müssen.
> 
> Ich möchte nochmal die Frage nach vergleichenden Erfahrungen in die 
> Runde werfen. Gibt es signifikante Geschwindigkeitsvorteile der gettext 
> Komponente gegenüber den hier vorgeschlagenen Lösungen (Language-Datei, 
> Language-Table)? Oder in welcher Situation würde man sich für gettext 
> entscheiden?

Man würde sich für gettext entscheiden, wenn man einen Standard haben will.
"Früher" war es so, dass jeder Programmierer seine eigene Lösung
verwendet hat. Am besten auch noch in jeder Programmiersprache eine
andere. Der Programmieraufwand von einem gettext-Ersatz ist eigentlich
nicht das Problem. Aber für gettext gibt es ein libs für (fast) jede
Sprache, so dass du auch bei einem Umstieg (oder Paralellentwicklung
oder sonstwas) das gleiche Schema behalten kannst und es gibt jede Menge
Programme, die mit dem Standard umgehen können. Zum Beispiel bequeme
Editoren für die Sprachdateien. Das ist besonders dann praktisch, wenn
du deine Sprachdateien an andere Leute zum Übersetzen verschickst...

> 
> regards, Ringo

Yannik

php::bar PHP Wiki   -   Listenarchive