![]() |
Probleme mit Zeichensatz
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:
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.
<Text>
<Native>Hallo Welt!</Native> <Translated>Hello World!</Translated> </Text> 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 |
AW: Probleme mit Zeichensatz
Warum Zeichensatz, nimm doch die originären ([hexa]dezimal) Werte.
Dann ist es vollkommen egal welche Darstellung aktiv ist. Gruß K-H |
AW: Probleme mit Zeichensatz
Kurzfristig wird da vermutlich nix werden. Schon beim laden einer DFM werden die "ü" bei verwendung von Nicht-Unicode-Controls "verhunzt" da Ansi/Codepage-technisch nicht dargestellt werden können.
Der "einfachste" weg für D7 wird vermutlich der Austausch der control durch die TNTWare-Controls sein sowie ersetzen in den für die Übersetzung relevanten Funktionionen String->Widestring. Und vor allem: Setzt dir eine VM mit Russisch auf. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz