Einzelnen Beitrag anzeigen

jus

Registriert seit: 22. Jan 2005
344 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Chinesisch/Russisch in Delphi nur mit Bordmitteln?

  Alt 14. Mai 2006, 17:26
@clancy38
Zitat von clancy38:
Ich hab da ein großes Problem mit einem Programm, was schon mehrsprachig ist, aber jetzt um die Sprachen Chinesisch (Simple-Pinyin) und Russisch erweitert werden soll.
Die bisherigen Übersetzungen sind in Text-Files eingetragen und werden auch als TextFiles eingelesen und den Komponenten-Captions zugewiesen. Das klappt soweit auch ganz gut. Es wurde jetzt eine Excel-Datei mit einer Spalte Deutsch zum Übersetzer gegeben und mit einer zweiten Spalte Chinesisch ist sie zurückgekommen. Ich hab diese SPalte als Text-Datei abgespeichert, allerdings, was dann im Programm aus dieser Textdatei gelesen wurde, das kann man vergessen, das hat mit den Zeichen in der Excel-Tabelle nix mehr zu tun.
Eigentlich gibt es nur 3 Möglichkeiten wie das Textfile abgespeichert ist:

-Das Programm kann überhaupt nicht die von Excel-übergebenen Unicodezeichen abspeichern. Dann sind die chinesischen Zeichen alle als "?????" abgespeichert

-Das Programm speichert es als Multibyte Zeichen. Dann benötigt man neben installierte chinesische Schriften auch die richtige Codepage/Spracheinstellung, damit die Zeichen richtig dargestellt werden.

-Das Programm speichert es als Unicode Zeichen, zu erkennen normalerweise an die ersten 2 Bytes ($FF$FE), dann benötigt man unter Win200/WinXP neben der chinesische Schrift nur eine Unicodekomponente, die das richtig darstellen kann, und zwar vollkommen unabhängig von der gewählten Spracheinstellung, das bedeutet, dass auch in einem russischen Windows chinesische Zeichen richtig angezeigt werden, solange chinesische Schriftzeichen installiert sind.

Zitat von clancy38:
Ich hab hier schon einiges über die TNTControls gelesen, alles schön und gut, aber ich muß das ganze mit den vorhandenen Delphi-Bordmitteln und mit den Standardkomponenten wie TLabel realisieren.

Verwendet wird Delphi2005, das Programm läuft dann sowohl auf Rechnern mit Win2000 als auch XP.

Erstell ich die Textdatei aus Excel vielleicht falsch? Oder geht das so gar nicht mit den Bordmitteln?
Jeder Tip ist willkommen!
Ich kenne zwar den Grund nicht warum du Tntkomponenten nicht benützen willst/darfst, aber meine Meinung ist, dass der Umweg über die Spracheinstellung/Codepages eher an Amateurbastellösung grenzt als an sauberer Lösung in einem vom Haus aus unicodefähigen Betriebssystem wie Win2000 und WinXP. Und das Tolle an TNTControls ist noch, dass der Autor Troy Wolbrink absichtlich die Komponentennamen und Befehle sehr ähnlich wie die Delphi VCL Komponenten gewählt hat. (z.B. statt TLabel.Caption -> TTntLabel.Caption, TMemo -> TTntMemo, usw.)

Grüsse,
jus

P.S.: Ja, ich gebe es zu. Es gibt noch mehr Möglichkeiten in Unicode zu speichern wie UTF8, Unicode Big-Endian,...
  Mit Zitat antworten Zitat