Überall auf SO, wenn es darum geht, eine mehrsprachige App in PHP zu machen, sagen alle, dass gettext ist der beste Weg, es zu tun. Ich will nur wissen warum?
Was macht diese Methode weniger effizient als gettext?
%Vor%Eine gute Sache mit gettext ist, dass es eine Art De-facto-Standard ist: Es wird von vielen Anwendungen in vielen Sprachen verwendet - was bedeutet, dass viele Leute damit arbeiten.
Eine andere gute Sache (vielleicht eine Konsequenz, oder eine Ursache oder beides, tatsächlich) ist, dass mehrere Werkzeuge, wie Poedit zum Beispiel existieren, um gettext-Dateien zu bearbeiten: Sie müssen nicht durch irgendeinen PHP (oder was auch immer) Quellcode gehen. Und das ist sehr wichtig:
Es gibt ein paar Nachteile in Ihrer "Implementierung".
gettext
ist es in php
implementiert. ; -) Grundsätzlich ist Ihre Implementierung in vielen Projekten weit verbreitet, die ihre Internationalisierungsunterstützung und hochinnovative Erfindung des Rades beanspruchen wollen, sich aber nicht um das Ergebnis kümmern und das Gute nicht vom Schlechten kennen.
Es ist die gleiche Antwort wie für alle anderen Fragen:
Was ist besser mit [heightly bewiesen und weit verbreitete Lösung] als mit [mein hacky cocky noob Implementierung]?
Ich kritisiere nicht, wir haben das alle getan und versucht, uns davon zu überzeugen, dass wir Smarties sind und andere Overkill-Programmierer sind. Das ist Teil der Art zu lernen. Ich tue das eigentlich ständig, erfinde das Rad neu oder präsentiere mich mit meinen Freunden / Kollegen über einen KISS-Code, den ich gehackt habe. Mit der Zeit machst du es am Ende immer weniger, und ich nehme an, du hörst damit auf, es an dem Tag zu tun, an dem du es tatsächlich verdienen würdest: -)
Der Vorteil von gettext im Vergleich zu anderen Lösungen wie Ihrer, Java-String-Tabellen oder Windows-Ressourcen ist, dass der Quellcode lesbarer wird.
Vergleiche das:
%Vor%mit diesem:
%Vor%Im ersten Fall können Sie die Nachricht direkt im Code sehen und Sie wissen genau, was sie tut. Im letzteren Fall sehen Sie nur eine symbolische Konstante und müssen die genauen Text- und Formatangaben nachschlagen.