Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Probleme mit Zeichensatz (https://www.delphipraxis.net/158384-probleme-mit-zeichensatz.html)

Zend 15. Feb 2011 16:01

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:
<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

p80286 15. Feb 2011 16:14

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

Bernhard Geyer 15. Feb 2011 16:27

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 03:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz