Hallo!
Ich arbeite zur Zeit an einer Applikation, die an diverse internationale Kunden ausgeliefert werden soll. Die Oberfläche ist mittels Resourcse Bundles komplett übersetzbar. Die Idee ist gut, aber ich bin mit der Umsetzung noch nicht ganz zufrieden.
Wir haben ein "standard" Projekt, von dem wir mit Overlaying kundenspezifische Projekte "ableiten" können. Im Std-Projekt sind zur Zeit vier Sprachen vorhanden - Deutsch, Englisch, Französisch und Italienisch. Hinzu kommen demnächst wahrscheinlich Dänisch und Schwedisch, eventuell in naher Zukunft auch noch Spanisch. Das macht dann in Summe schon 7 Properties Dateien, die gepflegt werden müssen.
Außerdem kommen bei kundenspezifischen Wording-Änderungswünschen die entsprechenden Dateien noch mal ins Kunden-Projekt, um die aus dem std-Projekt "geerbten" Übersetzungen zu überschreiben. Man denke z.B. an Kunden aus der Schweiz, die teilweise 4 Oberflächensprachen fordern - damit erhöht sich die Anzahl der zu pflegenden Dateien dann schneller, als uns lieb ist...
Nun sind die ersten Kunden mit ihren Applikationen in Produktion gegangen, sind sehr zufrieden und haben gleich reihenweise Ideen für Erweiterungen. Die meisten dieser Ideen verkaufen wir natürlich gerne auch den anderen Kunden - und einmal im Std-Projekt implementiert und mit einem "Schalter" versehen, lässt sich das auch sehr einfach realisieren.
Hinderlich sind nur die Übersetzungen, die jetzt ständig manuell "gemerged" werden müssen.
Zur Zeit habe ich ein Skript geschrieben, das 2 Property Dateien vergleicht: Kommentare, Leerzeilen und die Bezeichner werden aus der ersten Datei übernommen, die Übersetzungen werden jedoch aus der zweiten Datei gezogen, wenn sie dort vorhanden sind.
Damit ist zunächst nur noch die Pflege einer "Referenzdatei" notwendig. Einmal mit jeder anderen Datei verglichen, sind auch in diesen alle neuen Properties vorhanden - in der Referenzsprache. Aus der Referenzdatei entfernte, weil nicht mehr benötigte Properties werden auch entfernt. Als Erweiterung könnte ich jetzt noch eine automatisierte Ausgabe einbauen, die die neu gefundenen Properties ausgibt, um sie dann den Übersetzern zu nennen.
Aber geht das nicht auch einfacher? Wie löst ihr das? Gibt es vielleicht die Möglicheit, das Resource Bundle hierarchisch zu durchsuchen? Also, Wenn in dieser Sprache nicht vorhanden, dann gucke doch mal bei Englisch?
Und wie macht ihr das mit den kundenspezifischen Änderungen? Auch da schwebt mir irgendwas hierarchisches vor: Am liebsten möchte ich einfach ein Property Datei für kundenspezifisches Wording, und was dort nicht gefunden wird, wird im std Property File gesucht. Dazu habe ich aber noch nichts gefunden :-(
Für Anregungen bin ich dankbar
Gruß,
RoCMe
Ich arbeite zur Zeit an einer Applikation, die an diverse internationale Kunden ausgeliefert werden soll. Die Oberfläche ist mittels Resourcse Bundles komplett übersetzbar. Die Idee ist gut, aber ich bin mit der Umsetzung noch nicht ganz zufrieden.
Wir haben ein "standard" Projekt, von dem wir mit Overlaying kundenspezifische Projekte "ableiten" können. Im Std-Projekt sind zur Zeit vier Sprachen vorhanden - Deutsch, Englisch, Französisch und Italienisch. Hinzu kommen demnächst wahrscheinlich Dänisch und Schwedisch, eventuell in naher Zukunft auch noch Spanisch. Das macht dann in Summe schon 7 Properties Dateien, die gepflegt werden müssen.
Außerdem kommen bei kundenspezifischen Wording-Änderungswünschen die entsprechenden Dateien noch mal ins Kunden-Projekt, um die aus dem std-Projekt "geerbten" Übersetzungen zu überschreiben. Man denke z.B. an Kunden aus der Schweiz, die teilweise 4 Oberflächensprachen fordern - damit erhöht sich die Anzahl der zu pflegenden Dateien dann schneller, als uns lieb ist...
Nun sind die ersten Kunden mit ihren Applikationen in Produktion gegangen, sind sehr zufrieden und haben gleich reihenweise Ideen für Erweiterungen. Die meisten dieser Ideen verkaufen wir natürlich gerne auch den anderen Kunden - und einmal im Std-Projekt implementiert und mit einem "Schalter" versehen, lässt sich das auch sehr einfach realisieren.
Hinderlich sind nur die Übersetzungen, die jetzt ständig manuell "gemerged" werden müssen.
Zur Zeit habe ich ein Skript geschrieben, das 2 Property Dateien vergleicht: Kommentare, Leerzeilen und die Bezeichner werden aus der ersten Datei übernommen, die Übersetzungen werden jedoch aus der zweiten Datei gezogen, wenn sie dort vorhanden sind.
Damit ist zunächst nur noch die Pflege einer "Referenzdatei" notwendig. Einmal mit jeder anderen Datei verglichen, sind auch in diesen alle neuen Properties vorhanden - in der Referenzsprache. Aus der Referenzdatei entfernte, weil nicht mehr benötigte Properties werden auch entfernt. Als Erweiterung könnte ich jetzt noch eine automatisierte Ausgabe einbauen, die die neu gefundenen Properties ausgibt, um sie dann den Übersetzern zu nennen.
Aber geht das nicht auch einfacher? Wie löst ihr das? Gibt es vielleicht die Möglicheit, das Resource Bundle hierarchisch zu durchsuchen? Also, Wenn in dieser Sprache nicht vorhanden, dann gucke doch mal bei Englisch?
Und wie macht ihr das mit den kundenspezifischen Änderungen? Auch da schwebt mir irgendwas hierarchisches vor: Am liebsten möchte ich einfach ein Property Datei für kundenspezifisches Wording, und was dort nicht gefunden wird, wird im std Property File gesucht. Dazu habe ich aber noch nichts gefunden :-(
Für Anregungen bin ich dankbar
Gruß,
RoCMe