AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Chinesisch/Russisch in Delphi nur mit Bordmitteln?

Ein Thema von clancy38 · begonnen am 16. Feb 2006 · letzter Beitrag vom 7. Jun 2007
Antwort Antwort
Seite 1 von 2  1 2      
clancy38

Registriert seit: 15. Feb 2006
2 Beiträge
 
Delphi 5 Professional
 
#1

Chinesisch/Russisch in Delphi nur mit Bordmitteln?

  Alt 16. Feb 2006, 11:08
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.

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!
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#2

Re: Chinesisch/Russisch in Delphi nur mit Bordmitteln?

  Alt 14. Mai 2006, 15:17
Bei Russisch sollte es klappen, wenn du einfach die Codeseite aller Komponenten auf die entsprechende Kyrillisch-Codeseite setzt. Damit sollte die "Übersetzung" aus den von dir genannten kryptischen Zeichen in kyrillische Zeichen gelingen.

Bei Chinesisch fällt mir allerdings nichts ein - zumal ja die ganze VCL ANSI-basiert ist. Da ich mich entsinne, daß es mehr chinesische Schriftzeichen gibt, als 2^8, ist es wohl auch kaum möglich durch Änderung der Codeseite etwas zu bewirken. Aber versuchen kannst du es ja ... ich kenne mich da bei Chinesisch nur nicht mit aus.

Bsp: wenn du eine kyrillische Codeseite benutzt, werden in der Darstellung aus ä, ö, ü kyrillische Buchstaben.
  Mit Zitat antworten Zitat
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
Olli
(Gast)

n/a Beiträge
 
#4

Re: Chinesisch/Russisch in Delphi nur mit Bordmitteln?

  Alt 14. Mai 2006, 18:25
Zitat von jus:
als an sauberer Lösung in einem vom Haus aus unicodefähigen Betriebssystem wie Win2000 und WinXP.
Ob das mal jemand Borland verklickern kann? Windows NT 4.0 kam vor 10 Jahren raus und beherrschte auch bereits Unicode

Übrigens: "?????" kann auch ein Hinweis dafür sein, daß der aktuelle Font das Zeichen nicht kennt. Je nach Font kann das auch als kleines Quadrat dargestellt sein.
  Mit Zitat antworten Zitat
jus

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

Re: Chinesisch/Russisch in Delphi nur mit Bordmitteln?

  Alt 14. Mai 2006, 22:49
Zitat von Olli:
Zitat von jus:
als an sauberer Lösung in einem vom Haus aus unicodefähigen Betriebssystem wie Win2000 und WinXP.
Ob das mal jemand Borland verklickern kann? Windows NT 4.0 kam vor 10 Jahren raus und beherrschte auch bereits Unicode
Ja, ich würde mir auch ein unicodefähiges VCL für Win32 von Haus aus wünschen.

Zitat von Olli:
Übrigens: "?????" kann auch ein Hinweis dafür sein, daß der aktuelle Font das Zeichen nicht kennt. Je nach Font kann das auch als kleines Quadrat dargestellt sein.
Wenn bei mir eine Komponente Kästchen ausgibt, dann ist es für mich ein Zeichen, dass die Schrift das Zeichen nicht unterstützt. Das mit den Fragezeichen war für mich bisher immer ein Zeichen dafür, dass das Programm nicht mit Unicode umgehen kann. Aber man lernt ja nie aus.

@clancy38
Vielleicht können wir uns auch leichter tun, wenn du einen kurzen Ausschnitt deiner Textdatei hier posten kannst.

Grüsse,
jus
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Chinesisch/Russisch in Delphi nur mit Bordmitteln?

  Alt 14. Mai 2006, 23:05
ich tippe das die Textdatei nicht unicode ist. So weit ich weiß ist Delphi doch seit BDS2005 oder BDS2006 Unicodefähig (zumindest der Quelltexteditor wenn ich mich recht entsinne)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#7

Re: Chinesisch/Russisch in Delphi nur mit Bordmitteln?

  Alt 15. Mai 2006, 00:31
Zitat von jus:
Wenn bei mir eine Komponente Kästchen ausgibt, dann ist es für mich ein Zeichen, dass die Schrift das Zeichen nicht unterstützt. Das mit den Fragezeichen war für mich bisher immer ein Zeichen dafür, dass das Programm nicht mit Unicode umgehen kann. Aber man lernt ja nie aus.
Hab's nachgeprüft. Du hast vollkommen recht. Asche auf mein Haupt
  Mit Zitat antworten Zitat
15. Mai 2006, 11:21
Dieses Thema wurde von "sakura" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.069 Beiträge
 
Delphi 12 Athens
 
#9

Re: Chinesisch/Russisch in Delphi nur mit Bordmitteln?

  Alt 15. Mai 2006, 12:24
der Typ TextFile ist definitiv nicht Unicodetauglich ... man kann da zwar beim Read/ReadLn/Write/WriteLn einen WideString verwenden, aber dieser wird intern in einen AnsiString umgewandelt ... also aus/in eine(r) Datei wird da immer nur als AnsiString gelesen/geschrieben.

Mit DelphiBoardmitteln kann man das nicht umgehen ... also entweder 'nen Stream, per File / File of irgendwas, oder per WinAPI das direkt in 'nen WideString einlesen. (allerdings muß man da natülich selber das String/Zeilenende suchen)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
merlin17

Registriert seit: 15. Dez 2002
Ort: Mittelfranken
980 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

Re: Chinesisch/Russisch in Delphi nur mit Bordmitteln?

  Alt 15. Mai 2006, 12:34
hier ist auch etwas interessantes zum Thema unicode und "unsere" VCL:
DThorpe: UniCode und VCL

thomas
- TeamNevrona cannot respond to questions received via email -
http://rave-notes.blogspot.com
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:55 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