Hallo zusammen,
ich habe mich bei den Möglichkeiten der Lokalisierung in PHP umgesehen und bin auf gettext gestoßen. Das gefällt mir soweit auch ganz gut, da es mit diversen po-Editoren leicht zu handhaben ist und auch nativ Plurale unterstützt.
Es gab ja auch schonmal eine Diskussion zu dem Thema (http://www.galaxy-news.de/groups/2_entwickler/forums/1419_internationalisierung.html) aber da wurde ein Problem nicht geklärt, das mir in den Sinn kam:
Ein Teil der Texte steht in der Datenbank. Das lässt sich nicht vermeiden, wenn man eine gewisse Modularität und Erweiterbarkeit per Game-Editor erreichen will ( Neue Monster, Schiffe, Meerschweinchen hinzufügen, Namen ändern, .... ). Das heißt, in der .php sieht das dann so aus: _($row['pigattribute'])
Nun suchen sich die .po-Editoren ja aber die Übersetzungstexte selbst heraus, d.h. sie scannen die Dateistruktur nach _() und gettext() und zeigen mir, was sie gefunden haben. Statt mir aber "groß", "klein", "dick", "dünn" zurückzugeben, bekomme ich in diesem Fall "$row['pigattribute']". Die erste Idee wäre, eine nirgendwo aufgerufene PHP-Datei zu erstellen, in der alle Texte eingetragen werden, die nur in der DB vorkommen. Widerspricht aber dem Grundprinzip, da ich Änderungen in der Datenbank sofort auch in der "Dirty-Help-File" übertragen muss, sonst funktioniert's nicht mehr.
Wie macht ihr das?