Hallo,
ich betreue eine mehrsprachige Anwendung. Unterstützt werden deutsch und englisch. Die Anwendung ist zur Design-Zeit komplett auf Deutsch, wenn jemand die Sprache englisch auswählt, läd das Programm eine
XML-Datei die folgendermaßen aufgebaut ist:
Code:
<Text>
<Native>Hallo Welt!</Native>
<Translated>Hello World!</Translated>
</Text>
Eine Funktion iteriert dann durch alle Controls die es auf der Form gibt und prüft zu übersetzende Eigenschaften wie z.B. "Caption" und "Text", d.h. die
XML-Datei wird nach dem deutschen Texte durchsucht und ersetzt die Eigenschaften des Controls durch die englische Übersetzung. Das man hier besser String-IDs genommen hätte ist mir klar, allerdings ist die Anwendung "gewachsen" und an dieser Stelle suboptimal.
Ein Benutzer aus Russland meldete nun das Problem, dass die Software bei ihm grundsätzlich in englisch dargestellt werde, einige Texte aber trotzdem auf deutsch sind. Nach einiger Recherche fand ich heraus, dass die Texte welche Umlaute enthalten von der Übersetzungskomponente nicht ersetzt werden. Anscheinend ersetzt Windows bei der Programmausführung alle Umlaute durch ähnliche Buchstaben (Ü => U, Ä => A, ...) und deshalb findet die Übersetzungskomponente den deutschen String nicht mehr in der
XML-Datei.
Die richtige Lösung um dieses Problem zu beseitigen wäre die Verwendung von String-IDs und langfristig auch der Umstieg auf
Unicode. Da dies leider nicht kurzfristig geschehen kann, wollte ich euch fragen, ob ihr eine Lösung kennt, die kurzfristig dieses Problem lösen kann? Kann eine Anwendung den für sie verwendeten Zeichensatz bestimmen?
Grüße
Zend