Naja, ich hab mich jetzt nich soo damit befasst, aber was hälst du von ner Wrapper-
Unit? Also praktisch eine Datei, in der aus den einzelnen Dateien die jeweilige Sprache eingelesen und in ein Array geschrieben wird, dass du dann verwendest. Also praktisch so:
Code:
<?php
// Ort der Überetzungstabellen angeben
bindtextdomain("allgemein", "./locale");
bindtextdomain("umfrage", "./locale");
bindtextdomain("admin", "./locale");
textdomain("test");
$sprachen["allgemein"]["ja"] = gettext("ja");
$sprachen["allgemein"]["nein"] = gettext("nein");
$sprachen["allgemein"]["form"]["senden"] = gettext("senden");
$sprachen["allgemein"]["form"]["vorschau"] = gettext("vorschau");
// ...
textdomain("umfragen");
$sprachen["umfragen"]["abstimmen"] = gettext("abstimmen");
$sprachen["umfragen"]["ergzeig"] = gettext("ergzeig");
?>
Ich hoffe du verstehst, was ich meine. Das du also schon gettext verwendest. Dann lagerst du jede "Gruppe" in ne Datei aus (oder auch nich, aber is sicher übersichtlicher) und am Ende kannste dir das Array selber zusammenfriemeln. So ergibt sich zwar ein etwas erhöhter Aufwand (weil ja jeweils noch die Wrapper-
Unit angepasst werden muss) aber das wird dann ja durch eine wesentlich bessere Übersicht wieder wett gemacht.
Ansonsten wäre ne andere Möglichkeit auch das Ganze in ne
XML-Datei zu hauen. Brauchst dann nur noch ein Parser, der da durch rennt und mitdessenhilfe du dann das Ganze in ein Array schmeist. Dann haste auch deine Subarrays gleich so drin und das Ganze komplett ohne weiteren Wartungsaufwand für die Wrapperklasse.
Wobei man hier dann auch einfach nur ne Funktion schreiben könnte, die dann einen XPath übergeben bekommt. Das wäre sicherlich weniger schreibaufwand, als das mit Arrays der Fall wäre. Wobei dann hier jedesmal bei nem String die komplette Datei geparst werden würde, was zu Performanceverlusten führen kann.
Hat halt alles Vor- und Nachteile. Suchs dir raus, was du machst.
mfg, mh166