Diverse Sprachen darstellen
Moderator: Moderatoren
-
- Rekursionen-Architekt
- Beiträge: 159
- Registriert: So, 16. Apr 2006 11:12
- Wohnort: Öhringen
Diverse Sprachen darstellen
Hallo.
Wir sollen eine kleine Menueführung für LKW-Fahrer machen. Da hier aber türkisch, russisch, tschechisch usw. gefordert ist, habe ich von meinem Kunden eine Übersetzung erhalten.
Eine Excel - Liste mit den übersetzungen.
Nur wie kann ich russisch darstellen. Ansi oder OEM Zeichensätze helfen mir hier nicht weiter.
Geht das ohne das ich das alles in Bilder packen muss und dann die Bilder anzeigen?
Abbruch
Отмена
Gibt es hierzu eine Lösung mit Bordmitteln Xbase++?
Gruß
Bernd
Wir sollen eine kleine Menueführung für LKW-Fahrer machen. Da hier aber türkisch, russisch, tschechisch usw. gefordert ist, habe ich von meinem Kunden eine Übersetzung erhalten.
Eine Excel - Liste mit den übersetzungen.
Nur wie kann ich russisch darstellen. Ansi oder OEM Zeichensätze helfen mir hier nicht weiter.
Geht das ohne das ich das alles in Bilder packen muss und dann die Bilder anzeigen?
Abbruch
Отмена
Gibt es hierzu eine Lösung mit Bordmitteln Xbase++?
Gruß
Bernd
Bernd Reinhardt
fa.reinhardt@gmx.de
fa.reinhardt@gmx.de
-
- Rekursionen-Architekt
- Beiträge: 159
- Registriert: So, 16. Apr 2006 11:12
- Wohnort: Öhringen
Re: Diverse Sprachen darstellen
Hallo
Ich habe mit der Schriftart versucht. Also über Fontdialog einen Unicode Font ausgewäht. Bei mir Arial Unicode MS.
Eine Datei test1.txt mit Unicode erstellt. Damit ich mit nicht vertippe hole ich mir den Font über Fontdialog uns übergebe den ausgewählten Font dann an mein xbpstatic und xbpSle.
Zeichen in der Ansi Codepage werden dargestellt, aber alles was als Unicode (also 2stellig) wird falsch dargestellt.
Ich kann die Codepage aber nur zwischen OEM und ANSI (habe ich gewählt) wechseln.
Gruß
Bernd
Ich habe mit der Schriftart versucht. Also über Fontdialog einen Unicode Font ausgewäht. Bei mir Arial Unicode MS.
Eine Datei test1.txt mit Unicode erstellt. Damit ich mit nicht vertippe hole ich mir den Font über Fontdialog uns übergebe den ausgewählten Font dann an mein xbpstatic und xbpSle.
Zeichen in der Ansi Codepage werden dargestellt, aber alles was als Unicode (also 2stellig) wird falsch dargestellt.
Ich kann die Codepage aber nur zwischen OEM und ANSI (habe ich gewählt) wechseln.
Code: Alles auswählen
drawingArea := oHauptDlg:drawingArea
drawingArea:setFontCompoundName( "@Arial Unicode MS" )
oDlg:show()
oFontDlg := XbpFontDialog():New(drawingArea)
oFontDlg:familyName := "Times New Roman"
oFontDlg:create()
oFont := oFontDlg:display( XBP_DISP_APPMODAL )
cFont := Alltrim(oFont:compoundName)
oFontDlg:familyName := oFont:familyName // as default
oFontDlg:destroy() // Destroy font dialog
cTest := memoread("test1.txt") // file with unicode
oXbp_t := XbpStatic():new(drawingArea,,;
{400, 600}, ;
{400,60},;
{ { XBP_PP_BGCLR, GRA_CLR_RED }, ;
{ XBP_PP_FGCLR, GRA_CLR_BLACK },;
{ XBP_PP_FONT, oFont } } ) // Set Font
oXbp_t:type := XBPSTATIC_TYPE_TEXT
oXbp_t:options := XBPSTATIC_TEXT_CENTER + XBPSTATIC_TEXT_VCENTER
oXbp_t:caption := cTest + " Ende "
oXbp_t:clipSiblings := .T.
oXbp_t:create()
oXbp4 := XbpSLE():new(drawingArea)
oXbp4:autoTab := .T.
oXbp4:bufferLength := 40
oXbp4:dataLink := {|x| IIf( x==NIL, cVarA, cVarA := x ) }
oXbp4:setFont(oFont)
oXbp4:create( , , {50,300}, {400,50} )
oXbp4:setData()
oXbp4:killInputFocus := ;
{ |x,y,oSLE| oSLE:getData() }
Bernd
Bernd Reinhardt
fa.reinhardt@gmx.de
fa.reinhardt@gmx.de
Re: Diverse Sprachen darstellen
@Bernd
eine sprachuniverselle Applikation für Loginstikunternehmen ist derzeit (fast) ine Lizenz zum Gelddrucken...
Wenn einer so eine Lösung hat - meinst Du wirklich dass das hier im Forum jemand offenlegt?
eine sprachuniverselle Applikation für Loginstikunternehmen ist derzeit (fast) ine Lizenz zum Gelddrucken...
Wenn einer so eine Lösung hat - meinst Du wirklich dass das hier im Forum jemand offenlegt?
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Diverse Sprachen darstellen
ich kann mit MS Arial UniCode chinesische Zeichen darstellen ... alles nur eine Frage der "richtigen" Codepage.Bernd Reinhardt hat geschrieben: ↑Mi, 07. Feb 2018 22:48 Ich kann die Codepage aber nur zwischen OEM und ANSI (habe ich gewählt) wechseln.
die andere Frage ist aber wie bekommt man chinesische Zeichen "erfasst" und in die Datenbank ?
zu XP Zeiten musste ich ein chinesische XP OS() nehmen da ich es auf einem "Deutschen" PC nicht geschafft hab.
mein Tip : mache eine kleine App und gibt die deinem Kunden damit ER die "füllt. die DBF sollte dann OEM sein !
gruss by OHR
Jimmy
Jimmy
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Diverse Sprachen darstellen
Die Uebersetzungen sind gemäss Bernd ja vorhanden. Da muss man keine Logik herausgeben. Es geht um das wie abfüllen und darstellen.AUGE_OHR hat geschrieben: ↑Do, 08. Feb 2018 2:49 ich kann mit MS Arial UniCode chinesische Zeichen darstellen ... alles nur eine Frage der "richtigen" Codepage.
die andere Frage ist aber wie bekommt man chinesische Zeichen "erfasst" und in die Datenbank ?
zu XP Zeiten musste ich ein chinesische XP OS() nehmen da ich es auf einem "Deutschen" PC nicht geschafft hab.
mein Tip : mache eine kleine App und gibt die deinem Kunden damit ER die "füllt. die DBF sollte dann OEM sein !
Die Codepage, ja, aber wie setzen?
...sonst Windev mit Unicode.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- Klaus Schuster
- Foren-Administrator
- Beiträge: 369
- Registriert: Do, 24. Jan 2008 10:01
- Wohnort: 90762 Fürth
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 9 Mal
Re: Diverse Sprachen darstellen
Guten Morgen Bernd,
hast Du Dir schon mal den XbpHTMLViewer angesehen? Keine Ahnung, nur eine Idee.
hast Du Dir schon mal den XbpHTMLViewer angesehen? Keine Ahnung, nur eine Idee.
Gruß Klaus
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Diverse Sprachen darstellen
Wenn wir UNICODE Controls hätten, wäre das alles kein Problem. Haben wir aktuell aber nicht in Xbase++
Das HTML Window könnte eine Lösung sein, wenn man dort einen UTF8 oder UNICODE Zeichensatz wählen kann, am Besten Alaska fragen, dann bemerken die auch den Bedarf
Das HTML Window könnte eine Lösung sein, wenn man dort einen UTF8 oder UNICODE Zeichensatz wählen kann, am Besten Alaska fragen, dann bemerken die auch den Bedarf
Gruß
Hubert
Hubert
- Klaus Schuster
- Foren-Administrator
- Beiträge: 369
- Registriert: Do, 24. Jan 2008 10:01
- Wohnort: 90762 Fürth
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 9 Mal
Re: Diverse Sprachen darstellen
Laut Hilfe geht UTF8:
"In addition to ANSI character strings, XbpHTMLWindow also supports displaying Unicode content encoded in UTF-8"
"In addition to ANSI character strings, XbpHTMLWindow also supports displaying Unicode content encoded in UTF-8"
Gruß Klaus
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Diverse Sprachen darstellen
Wenn man die Daten aus allen Ländern speichern muss, ist auch die DBF aus meiner Sicht keine Lösung.
Hier müsste man ja die codepage je Datei oder Satz oder Feld vorhalten ... nicht wirklich sinnvoll.
Besser ein SQL Server oder SQLite mit UTF8 nutzen ...
Aus meiner Sicht (ich habe nicht wirklich viel Erfahrung damit, da ich bisher nur Französisch, Deutsch, Italienisch und Englisch speichern musste ... in eigenen Programmen )
war die alte ANSI (OEM) + codepage Speicherung noch OK solange man ausschließlich die Daten seines Codepage Bereiches speichern musste.
Mit Word habe ich jetzt erlebt, wie einfach es sein kann Russisch und Türkisch in einem Dokument mit Deutsch zu verwalten.
Mit PowerBasic und WinDev Unicode Controls auch kein Problem, diese Einfachheit muss Alaska noch liefern.
Hier müsste man ja die codepage je Datei oder Satz oder Feld vorhalten ... nicht wirklich sinnvoll.
Besser ein SQL Server oder SQLite mit UTF8 nutzen ...
Aus meiner Sicht (ich habe nicht wirklich viel Erfahrung damit, da ich bisher nur Französisch, Deutsch, Italienisch und Englisch speichern musste ... in eigenen Programmen )
war die alte ANSI (OEM) + codepage Speicherung noch OK solange man ausschließlich die Daten seines Codepage Bereiches speichern musste.
Mit Word habe ich jetzt erlebt, wie einfach es sein kann Russisch und Türkisch in einem Dokument mit Deutsch zu verwalten.
Mit PowerBasic und WinDev Unicode Controls auch kein Problem, diese Einfachheit muss Alaska noch liefern.
Gruß
Hubert
Hubert
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Diverse Sprachen darstellen
Alaska hat mir auf Anfrage klipp und klar mitgeteilt, das die entgegen früheren Aussagen von Steffen kein Unicode/UTF-8/UTF-16 für dbf umsetzen werden.
Und ich denke mal für die XbParts wird das ebenfalls gelten. Denn Alaska möchte ja ganz offensichtlich hin zu HTML-Oberflächen, mit denen man dann unabhängig ist von der Client-Umgebung (egal ob Windows-Desktop oder Browser per cxp oder WAA). Und für HTML bietet Alaska das ja an. Und hat mit den letzten Updates auch ein paar UTF-8 und Uniocode-Funktionen geliefert.
Schade eigentlich, das die alten Technologien so auf das Abstellgleis geschobenw erden. Und frühere Zusagen nicht eingehalten werden. Wobei ich natürlich Alaska verstehen kann. Die alten Sachen (XbParts, dbf) auf Unicode umzuschreben dürfte vermutlich etwas aufwändig werden. Das ist was anderes als die XbParts für HTML/CSS zu öffnen, wie die das gemacht haben. Blöd ist das aber trotzdem.
Ich bin mal gespannt wie und wann die den Umstieg auf 64Bit machen werden ...
Jan
Und ich denke mal für die XbParts wird das ebenfalls gelten. Denn Alaska möchte ja ganz offensichtlich hin zu HTML-Oberflächen, mit denen man dann unabhängig ist von der Client-Umgebung (egal ob Windows-Desktop oder Browser per cxp oder WAA). Und für HTML bietet Alaska das ja an. Und hat mit den letzten Updates auch ein paar UTF-8 und Uniocode-Funktionen geliefert.
Schade eigentlich, das die alten Technologien so auf das Abstellgleis geschobenw erden. Und frühere Zusagen nicht eingehalten werden. Wobei ich natürlich Alaska verstehen kann. Die alten Sachen (XbParts, dbf) auf Unicode umzuschreben dürfte vermutlich etwas aufwändig werden. Das ist was anderes als die XbParts für HTML/CSS zu öffnen, wie die das gemacht haben. Blöd ist das aber trotzdem.
Ich bin mal gespannt wie und wann die den Umstieg auf 64Bit machen werden ...
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Diverse Sprachen darstellen
Eure Geduld ist beneidenswert...
Was mich erstaunt, ist die Unicode-Sache, welche ja seit langem bekannt ist. HTML ist eben nicht für alles das Richtige...
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
-
- Rekursionen-Architekt
- Beiträge: 159
- Registriert: So, 16. Apr 2006 11:12
- Wohnort: Öhringen
Re: Diverse Sprachen darstellen
Hallo
Danke für die Beiträge. Von meinem Kunden habe ich eine Exceldatei mit Übersetzungen.
Deutsch - Russisch - Türkisch usw.
Diese Zeichen werden in Excel (auch in Word) richtig dargestellt.
Ich kann die Excel-Datei auch als HTM speichern. Dann habe ich die Übersetzung als HTML.
Die HTML-Datei kann ich mit einem Editor öffnen, bzw. die Texte in einzelne HTML-Dateien speichern.
Z. B. eine Datei je Text. Dann umgehe ich alle Datenbanken.
Beispiel: Text Abbrechen.
d-abbrechen.html mit deutschem Text ABBRECHEN
rus-abbrechen.html mit dem Text Отмена
tuerk-abbrechen.html
Wenn sich nun ein Russe anmeldet, dann lade ich die Datei rus-abbrechen.html und zeige den Inhalt der Datei an.
Da muss dann Отмена stehen.
Statt einer xbpstatic wäre dann ein html-Feld.
Allerdings habe ich in diesem Zusammenhang noch keine Erfahrung. Gibt es sowas wie ein htmlStatic das ich einfach in der Maske anzeige.
Am besten wäre das als Pushbutton, ansonsten müsste ich einen Button machen und darunter dann den Text Abbrechen.
Die Anzahl der Texte ist übersichtlich, WEITER, START, ABBRECHEN, OK, Bestätigen, Menge Eingeben
Ich möchte halt nicht von jedem Text eine Bitmap machen, (snippingtool) und dann die entsprechende Bitmap laden. Das wäre letztendlich die einzige Lösung die mir so einfällt.
@Roland. Deinen Einwand mit der Lizenz zum Geld drucken verstehe ich nicht. Wenn ich an einen Bankautomat gehe kann ich doch auch die Sprache wählen und erhalte dann die Menüführung in meiner Sprache. Vom meinem Kunden erhalte ich eine Excelliste mit allen Übersetzungen in den richtigen Zeichen. Nur mit xBase++ kann ich nicht anzeigen, was die ganze Welt um mich herum benutzt. Da muss das eher umdrehen und sagen xBase++ ist die Lizenz um Geld und Zeit zu investieren um Lösungen zu suchen, die andere schon haben.
Gruß
Bernd
Danke für die Beiträge. Von meinem Kunden habe ich eine Exceldatei mit Übersetzungen.
Deutsch - Russisch - Türkisch usw.
Diese Zeichen werden in Excel (auch in Word) richtig dargestellt.
Ich kann die Excel-Datei auch als HTM speichern. Dann habe ich die Übersetzung als HTML.
Die HTML-Datei kann ich mit einem Editor öffnen, bzw. die Texte in einzelne HTML-Dateien speichern.
Z. B. eine Datei je Text. Dann umgehe ich alle Datenbanken.
Beispiel: Text Abbrechen.
d-abbrechen.html mit deutschem Text ABBRECHEN
rus-abbrechen.html mit dem Text Отмена
tuerk-abbrechen.html
Wenn sich nun ein Russe anmeldet, dann lade ich die Datei rus-abbrechen.html und zeige den Inhalt der Datei an.
Da muss dann Отмена stehen.
Statt einer xbpstatic wäre dann ein html-Feld.
Allerdings habe ich in diesem Zusammenhang noch keine Erfahrung. Gibt es sowas wie ein htmlStatic das ich einfach in der Maske anzeige.
Am besten wäre das als Pushbutton, ansonsten müsste ich einen Button machen und darunter dann den Text Abbrechen.
Die Anzahl der Texte ist übersichtlich, WEITER, START, ABBRECHEN, OK, Bestätigen, Menge Eingeben
Ich möchte halt nicht von jedem Text eine Bitmap machen, (snippingtool) und dann die entsprechende Bitmap laden. Das wäre letztendlich die einzige Lösung die mir so einfällt.
@Roland. Deinen Einwand mit der Lizenz zum Geld drucken verstehe ich nicht. Wenn ich an einen Bankautomat gehe kann ich doch auch die Sprache wählen und erhalte dann die Menüführung in meiner Sprache. Vom meinem Kunden erhalte ich eine Excelliste mit allen Übersetzungen in den richtigen Zeichen. Nur mit xBase++ kann ich nicht anzeigen, was die ganze Welt um mich herum benutzt. Da muss das eher umdrehen und sagen xBase++ ist die Lizenz um Geld und Zeit zu investieren um Lösungen zu suchen, die andere schon haben.
Gruß
Bernd
Bernd Reinhardt
fa.reinhardt@gmx.de
fa.reinhardt@gmx.de
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Diverse Sprachen darstellen
Bernd,
Dein Freund ist das Asset "Static content with HTML/CSS" oder das Asset "Command Button Control" bzw. das Asset "Toggle Button Control". Nur in Xbase++ 2.0 vorhanden. Du warst doch vergangenes Jahr beim Forentreffen dabei. Schau DIr die Unterlagen zu meinem Vortrag an, da sind die drin beschrieben.
Jan
Dein Freund ist das Asset "Static content with HTML/CSS" oder das Asset "Command Button Control" bzw. das Asset "Toggle Button Control". Nur in Xbase++ 2.0 vorhanden. Du warst doch vergangenes Jahr beim Forentreffen dabei. Schau DIr die Unterlagen zu meinem Vortrag an, da sind die drin beschrieben.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Diverse Sprachen darstellen
wenn die Office Apps mit M$ Arial UniCode richtig anzeigen kann das Xbase++ v1.x genau soBernd Reinhardt hat geschrieben: ↑Do, 08. Feb 2018 16:18 Diese Zeichen werden in Excel (auch in Word) richtig dargestellt.
das geht auch "gleichzeitig" in einem Browse wenn die Info in einer OEM DBF sind für HTML/CSS müsste man den gesamten Code ändern und ob eine "deprecated" Lösung sinnvoll ist muss jeder für sich beantworten
gruss by OHR
Jimmy
Jimmy
-
- Rekursionen-Architekt
- Beiträge: 159
- Registriert: So, 16. Apr 2006 11:12
- Wohnort: Öhringen
Re: Diverse Sprachen darstellen
Hallo
Leider war ich bisher nicht auf einem Forentreffen. Hab auch keine Unterlagen.
Aber ich hab mal mit Version 2.0 ein kleines Testprogramm gemacht.
Fontdialog aufrufen
Dabei kyrilisch und Arial Unicode MS
Wenn ich mir im Debugger den oFont dann anschaue ist der Fontname
@Arial Unicode MS
Und die Codepage ist 204 statt wie erwartet 855 für kyrilisch.
Wenn ich nun Zeichen eingebe (geht ja gut mit der ALT-Taste und code auf nummernblock) so bekomme ich bei z. B. ALT168 kein kyrilisches Zeichen angezeigt. Codepage 204 finde ich nicht im google.
Wenn ich Thai auswähle ist die codepage 222
So ganz passt das alles noch nicht zusammen.
Gruß
Bernd
Leider war ich bisher nicht auf einem Forentreffen. Hab auch keine Unterlagen.
Aber ich hab mal mit Version 2.0 ein kleines Testprogramm gemacht.
Fontdialog aufrufen
Dabei kyrilisch und Arial Unicode MS
Wenn ich mir im Debugger den oFont dann anschaue ist der Fontname
@Arial Unicode MS
Und die Codepage ist 204 statt wie erwartet 855 für kyrilisch.
Wenn ich nun Zeichen eingebe (geht ja gut mit der ALT-Taste und code auf nummernblock) so bekomme ich bei z. B. ALT168 kein kyrilisches Zeichen angezeigt. Codepage 204 finde ich nicht im google.
Wenn ich Thai auswähle ist die codepage 222
So ganz passt das alles noch nicht zusammen.
Gruß
Bernd
Bernd Reinhardt
fa.reinhardt@gmx.de
fa.reinhardt@gmx.de
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Diverse Sprachen darstellen
Jede DBF ist für UTF8 vorbereitet, da UTF8 ja genau dafür gedacht ist, UNICODE in einem alten String abzuspeichern.
Allerdings wird natürlich nicht die bisherige automatische Indizierung unterstütz, denn diese setzt ja genau 1 Zeichen für 1 Byte voraus.
Echtes UNICODE würde eine DBF sprengen, da dieses Dateiformat ja erfunden wurde als Mehrbyte Strings nicht denkbar waren.
Allerdings wird natürlich nicht die bisherige automatische Indizierung unterstütz, denn diese setzt ja genau 1 Zeichen für 1 Byte voraus.
Echtes UNICODE würde eine DBF sprengen, da dieses Dateiformat ja erfunden wurde als Mehrbyte Strings nicht denkbar waren.
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Diverse Sprachen darstellen
der Font zum "Anzeigen" in einer Xbase++ Apps muss NICHT der selbe wie der System Font des eingestellten Keyboard ( OSK.EXE ) womit ein SLE gefüttert wirdBernd Reinhardt hat geschrieben: ↑Do, 08. Feb 2018 21:36 So ganz passt das alles noch nicht zusammen.
wenn du die Font Codepage änderst musst beim Keyboard das selbe Layout wählen sonst kommt es falsch raus
unter XP musste ich die "Pe-jing" Eingabe noch extra installieren.
seit Windows 7 gibt es einen eingebauten "Pe-jing" Eingabe WENN man das CN Keyboard Layout aktiviert.
gruss by OHR
Jimmy
Jimmy
-
- Rekursionen-Architekt
- Beiträge: 159
- Registriert: So, 16. Apr 2006 11:12
- Wohnort: Öhringen
Re: Diverse Sprachen darstellen
Hallo Jimmy.
Ich glaube da gibt es Missverständnis.
In Windows ist es so, das mit mit ALT (gedrückt halten) und auf dem Nummernblock eine Zahl zwischen 0 - 255 eingeben, dann wird genau der ASCII-Character interpretiert. Das ist erst mal komplett unabhängig von der Codepage und dem Zeichensatz.
Z. B. ALT 160 ist in der ASCII Tabelle das Zeichen an der Position A0(hex)
Alt 48 ist eine 0 da HEX 30 eine 0 dargestellt wird.
Ich kann nun über Fontdialog einen Font auswählen. Diesen weise ich dem SLE zu.
Wenn ich mir nun eine ASCII-Tabelle mit der richtigen Codepage anschaue, und ALT160 eingebe, das sehe ich genau das Zeichen welches an Position A0 der Tabelle steht.
Und das funktioniert auch mit unterschiedlichen Codepages ganz gut.
Allerdings habe ich, wenn ich eine Codepage auswähle, nicht die Codepage die ich erwartet habe, sondern eine andere.
Und das ist mein Problem. Ich wähle kyrilisch als Codepage, aber im ausgewählten Font steht unter Codepage nicht die erwartete Zahl.
855 für z. B. Kyrilisch. Gibt es da eine Konvertierung xBase++ Codepagenummer zum Standard?
Um Text einzugeben ist die Methode mit der ALT-Taste (links von SPACE) und der Zahl auf dem Nummernblock (!!) nicht geeignet. Aber für ein einzelnes Zeichen klappt das ganz gut. Das geht immer auch in Word. Einfach ALT49 eingeben und eine 1 wird dargestellt.
Wenn ich mal die Codepage habe, die ich auch erwarte dann kann ich mir über die Konvertierung Unicode Gedanken machen. Ich hoffe das geht dann auch so das ich nur CHR(192) entfernen muss und von der nachfolgenden Zahl dann passt. (128-255)
Ich hoffe ich konnte mich einigermaßen verständlich ausdrücken.
Gruß
Bernd
Ich glaube da gibt es Missverständnis.
In Windows ist es so, das mit mit ALT (gedrückt halten) und auf dem Nummernblock eine Zahl zwischen 0 - 255 eingeben, dann wird genau der ASCII-Character interpretiert. Das ist erst mal komplett unabhängig von der Codepage und dem Zeichensatz.
Z. B. ALT 160 ist in der ASCII Tabelle das Zeichen an der Position A0(hex)
Alt 48 ist eine 0 da HEX 30 eine 0 dargestellt wird.
Ich kann nun über Fontdialog einen Font auswählen. Diesen weise ich dem SLE zu.
Wenn ich mir nun eine ASCII-Tabelle mit der richtigen Codepage anschaue, und ALT160 eingebe, das sehe ich genau das Zeichen welches an Position A0 der Tabelle steht.
Und das funktioniert auch mit unterschiedlichen Codepages ganz gut.
Allerdings habe ich, wenn ich eine Codepage auswähle, nicht die Codepage die ich erwartet habe, sondern eine andere.
Und das ist mein Problem. Ich wähle kyrilisch als Codepage, aber im ausgewählten Font steht unter Codepage nicht die erwartete Zahl.
855 für z. B. Kyrilisch. Gibt es da eine Konvertierung xBase++ Codepagenummer zum Standard?
Um Text einzugeben ist die Methode mit der ALT-Taste (links von SPACE) und der Zahl auf dem Nummernblock (!!) nicht geeignet. Aber für ein einzelnes Zeichen klappt das ganz gut. Das geht immer auch in Word. Einfach ALT49 eingeben und eine 1 wird dargestellt.
Wenn ich mal die Codepage habe, die ich auch erwarte dann kann ich mir über die Konvertierung Unicode Gedanken machen. Ich hoffe das geht dann auch so das ich nur CHR(192) entfernen muss und von der nachfolgenden Zahl dann passt. (128-255)
Ich hoffe ich konnte mich einigermaßen verständlich ausdrücken.
Gruß
Bernd
Bernd Reinhardt
fa.reinhardt@gmx.de
fa.reinhardt@gmx.de
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Diverse Sprachen darstellen
Das Programm "Zeichentabelle" kann mehrere Buchstaben auswählen und in die Zwischenablage einstellen.
Mit Arial Unicode MS geht das dann in jedes Programm, das Unicode Controls nutzt rein ... z.B. hier "ʜʢʤʒʔʊˏ̎̽̿ɳʌʤ"
eine spezielle "Nummer" ist nur von 32 bis 127 sicher, denn danach macht jede Codepage was sie will - und wer könnte sich schon die Kürzel merken, die unten links in "Zeichentabelle" für jedes Zeichen angezeigt werden.
Mit Unicode wird es möglich nicht nur verschiedene Zeichensätze auf einer Seite (Tabelle) zu mischen, sondern alle in den gleichen Text einzugeben, der dann immer stimmt.
Bei Codepages kann man nicht wirklich wissen, welches Zeichen ein chr(245) anzeigt, solange man nicht die Codepage weiß, die richtig ist.
Mit Arial Unicode MS geht das dann in jedes Programm, das Unicode Controls nutzt rein ... z.B. hier "ʜʢʤʒʔʊˏ̎̽̿ɳʌʤ"
eine spezielle "Nummer" ist nur von 32 bis 127 sicher, denn danach macht jede Codepage was sie will - und wer könnte sich schon die Kürzel merken, die unten links in "Zeichentabelle" für jedes Zeichen angezeigt werden.
Mit Unicode wird es möglich nicht nur verschiedene Zeichensätze auf einer Seite (Tabelle) zu mischen, sondern alle in den gleichen Text einzugeben, der dann immer stimmt.
Bei Codepages kann man nicht wirklich wissen, welches Zeichen ein chr(245) anzeigt, solange man nicht die Codepage weiß, die richtig ist.
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Diverse Sprachen darstellen
JA
NEINBernd Reinhardt hat geschrieben: In Windows ist es so, das mit mit ALT (gedrückt halten) und auf dem Nummernblock eine Zahl zwischen 0 - 255 eingeben, dann wird genau der ASCII-Character interpretiert. Das ist erst mal komplett unabhängig von der Codepage und dem Zeichensatz.
es ist der gleiche Scan-Code (VK_* Konstanten) aber je nach System Keyboard Einstellung gibt er dir unterschiedliche "ASCII-Character"
wie ich schon sagte muss man nicht nur einen Font/Codepage für die Anzeige auswählen sondern auch das passenden Keyboard Layout.
Code: Alles auswählen
öffne mal M$ Word und tippe : qwertz
jetzt schalte von DE auf US : qwerty
nun wird es aber so sein das wenn ein Russe damit arbeitet er auch eine Kyrillische Keyboard Einstellung hat.
wenn du mit ~Hotkey arbeiten willst musst du das dann auch mit einer Kyrillischen Keyboard Einstellung testen.
gerne wird auch das "Punkt"/"Koma" Thema dabei übersehen wenn es um Keyboard Einstellungen geht.
---
zugegeben ich arbeite (immer noch) mit der "alten" OEM / Codepage Methode aber bei einer neu Entwicklung wäre das zu überdenken.
das wäre nun der ANSI / UTF-8 Weg.Guenter Beyes <gbeyes at gmx.de>
Freitag, 10. März 2006 12:10
public.xbase++.generic
Re: UTF-8 conversion
Anmerkung : es gibt ja Str2Unicode() / Unicode2Str() in \XPPW32\Source\SYS\activex.prg
das ist aber nur "ANSI to UCS-2" Unicode und noch kein UTF-8 !
p.s. das mit Bilder wäre vermutlich einfacher.
gruss by OHR
Jimmy
Jimmy
-
- Rekursionen-Architekt
- Beiträge: 159
- Registriert: So, 16. Apr 2006 11:12
- Wohnort: Öhringen
Re: Diverse Sprachen darstellen
Hallo Zusammen.
Ich danke für die vielen Rückmeldungen. Allerdings verstehe ich immer noch nicht ganz wo denn das Problem tatsächlich ist.
Ich hab das ganze mal mit Visual Studio versucht. Einfach eine neue Form und eine Textbox.
(Das entspricht so ungefähr einem XbpDlg und XbpSle, aber wirklich nur ganz ungefähr).
Jetzt habe ich die Übersetzung von dem Excelfile direkt in die Textbox von meinem VB.net Programm kopiert.
Und siehe da, es zeigt mir kyrlische Zeichen richtig an, ohne irgendwelche Umstellungen.
Selbst wenn ich den Totalcommander öffne kann ich dort z. B. im Suchfeld die kyrilischen Zeichen hinenkopieren.
Witzigerweise kann ich in der Xbase++ Workbench wenn ich ein neues Project anlege und den Dateinamen eingebe, auch meine kyrilischen Zeichen mit STRG C kopieren und auch dort wird alles richtig dargestellt.
Wie so muss den unter Xbase++ alles so mega kompliziert sein.
Gruß
Bernd
Ich danke für die vielen Rückmeldungen. Allerdings verstehe ich immer noch nicht ganz wo denn das Problem tatsächlich ist.
Ich hab das ganze mal mit Visual Studio versucht. Einfach eine neue Form und eine Textbox.
(Das entspricht so ungefähr einem XbpDlg und XbpSle, aber wirklich nur ganz ungefähr).
Jetzt habe ich die Übersetzung von dem Excelfile direkt in die Textbox von meinem VB.net Programm kopiert.
Und siehe da, es zeigt mir kyrlische Zeichen richtig an, ohne irgendwelche Umstellungen.
Selbst wenn ich den Totalcommander öffne kann ich dort z. B. im Suchfeld die kyrilischen Zeichen hinenkopieren.
Witzigerweise kann ich in der Xbase++ Workbench wenn ich ein neues Project anlege und den Dateinamen eingebe, auch meine kyrilischen Zeichen mit STRG C kopieren und auch dort wird alles richtig dargestellt.
Wie so muss den unter Xbase++ alles so mega kompliziert sein.
Gruß
Bernd
Bernd Reinhardt
fa.reinhardt@gmx.de
fa.reinhardt@gmx.de
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Diverse Sprachen darstellen
weil Xbase++ Stand Windows NT ist also "A" GenerationBernd Reinhardt hat geschrieben: ↑Sa, 10. Feb 2018 14:41Wie so muss den unter Xbase++ alles so mega kompliziert sein.
deshalb muss man vieles so machen wie damals unter NT -> Font / Codepage / Keyboard etc.
gruss by OHR
Jimmy
Jimmy
-
- Rekursionen-Architekt
- Beiträge: 159
- Registriert: So, 16. Apr 2006 11:12
- Wohnort: Öhringen
Re: Diverse Sprachen darstellen
Noch eine Frage:
Wenn ich für das xbpSle (oder static) eine Codepage und eine Schrift wähle und folgenden String ausgebe:
for nI = 128 to 255 // wichtig ist ja nur alles über 128
cString := cString + chr(nI)
next
dann erhalte ich unterschiedliche Anzeigen, je nachdem welches Tastaturlayout eingestellt ist.
Das war wohl mein Denkfehler. Ich bin davon ausgegeangen, das die Anzeige alleine von der Codepage abhängt und die Zuordnung Tastatur - Code über das Tastaturlayout gesteuert wurde.
Wenn ich Buchstaben über die Tastatur eingebe, dann muss Tastaturlayout und Codepage übereinstimmen, sonst geht es schief.
Wenn ich aber die Tastatur gar nicht benötige, weil ich die Daten per ASCII-Code eingebe (wie z. B. bei cString oben) hatte ich gedacht das hier die Codepage reicht. Das Tastaturlayout kann ich aber nicht ständig vom Programm umstellen, also kann ich keine kyrilischen Zeichen darstellen. Für mein Problem gibt es in xBase++ schlichtweg keine Lösung.
Gruß
Bernd
Wenn ich für das xbpSle (oder static) eine Codepage und eine Schrift wähle und folgenden String ausgebe:
for nI = 128 to 255 // wichtig ist ja nur alles über 128
cString := cString + chr(nI)
next
dann erhalte ich unterschiedliche Anzeigen, je nachdem welches Tastaturlayout eingestellt ist.
Das war wohl mein Denkfehler. Ich bin davon ausgegeangen, das die Anzeige alleine von der Codepage abhängt und die Zuordnung Tastatur - Code über das Tastaturlayout gesteuert wurde.
Wenn ich Buchstaben über die Tastatur eingebe, dann muss Tastaturlayout und Codepage übereinstimmen, sonst geht es schief.
Wenn ich aber die Tastatur gar nicht benötige, weil ich die Daten per ASCII-Code eingebe (wie z. B. bei cString oben) hatte ich gedacht das hier die Codepage reicht. Das Tastaturlayout kann ich aber nicht ständig vom Programm umstellen, also kann ich keine kyrilischen Zeichen darstellen. Für mein Problem gibt es in xBase++ schlichtweg keine Lösung.
Gruß
Bernd
Bernd Reinhardt
fa.reinhardt@gmx.de
fa.reinhardt@gmx.de
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Diverse Sprachen darstellen
genau das ist das was ich sagteBernd Reinhardt hat geschrieben: ↑So, 11. Feb 2018 10:57 Das war wohl mein Denkfehler. Ich bin davon ausgegeangen, das die Anzeige alleine von der Codepage abhängt und die Zuordnung Tastatur - Code über das Tastaturlayout gesteuert wurde.
Wenn ich Buchstaben über die Tastatur eingebe, dann muss Tastaturlayout und Codepage übereinstimmen, sonst geht es schief.
wieso nichtBernd Reinhardt hat geschrieben:Das Tastaturlayout kann ich aber nicht ständig vom Programm umstellen
schau mal nach
Code: Alles auswählen
GetKeyboardLayoutList()
ActivateKeyboardLayout()
GetKeyboardLayout()
SetKeyboardLayout()
wenn ein Russe die Xbase++ App bedienen will ist es doch nicht verkehrt wenn das OS() ein Kyrillisches Keyboard benutzt.
gruss by OHR
Jimmy
Jimmy
-
- Rekursionen-Architekt
- Beiträge: 475
- Registriert: Sa, 08. Apr 2006 14:07
- Wohnort: Datteln
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Diverse Sprachen darstellen
Hallo Bernd,
ich habe an dem russisch Problem Jahre lang immer wieder geknobelt, da ich aus meinen Programmen Belege in diversen Sprachen ausgeben muss. Auch Ersatzteillisten, Lagerlisten etc. müssen in russisch gedruckt werden. Es gibt hier einige Beiträge dazu von mir im Forum. Nach unendlich vielen gescheiterten Versuchen habe ich meine Lösung gefunden. Ich speichere die russischen Begriffe in kyrillisch jetzt auch in normalen DBFs.
Wenn russisch ins Spiel kommt baue ich mir eine Schrift mit der Codepage 204
Wenn ich z.B. "a" drücke soll ja nicht chr(097) sondern chr(147) kommen.
Die notwendigen Daten habe ich mir von einer normalen deutsch/russischen Cherry geholt, mit der die Begriffe jetzt auch eingegeben werden. Den erzeugten String speichere ich ganz normal in einer DBF in der auch die Übersetzungen in anderen Sprachen stehen.
Die so gewonnenen Daten lassen sich dann normal anzeigen, drucken und in DBF's - und auch MySql speichern wenn im XBASE Programm die Schrift mit Codepage 204 gewählt wird.
Einen einfachen Weg über die Zwischenablage gibt es dabei leider nicht. Die Daten aus Exceltabellen oder Word lassen sich so leider auch nicht
einfügen.
War mir dann aber auch irgendwann egal da ein praktikables Ergebnisse her musste
Gruß
Ewald
ich habe an dem russisch Problem Jahre lang immer wieder geknobelt, da ich aus meinen Programmen Belege in diversen Sprachen ausgeben muss. Auch Ersatzteillisten, Lagerlisten etc. müssen in russisch gedruckt werden. Es gibt hier einige Beiträge dazu von mir im Forum. Nach unendlich vielen gescheiterten Versuchen habe ich meine Lösung gefunden. Ich speichere die russischen Begriffe in kyrillisch jetzt auch in normalen DBFs.
Wenn russisch ins Spiel kommt baue ich mir eine Schrift mit der Codepage 204
dann fange ich Tastatureingaben für die kyrillischen Begriffe ab und setze die Eingaben life um.wenn russisch ----
case upper(vs) = "RU"
ofont:= xbpfont():new()
ofont:familyname:="Arial"
ofont:height:=15
ofont:codepage:=204
ofont:create()
vruss=.t.
otherwise
ofont:= xbpfont():new()
ofont:familyname:="Arial
.
.
.
Wenn ich z.B. "a" drücke soll ja nicht chr(097) sondern chr(147) kommen.
Die notwendigen Daten habe ich mir von einer normalen deutsch/russischen Cherry geholt, mit der die Begriffe jetzt auch eingegeben werden. Den erzeugten String speichere ich ganz normal in einer DBF in der auch die Übersetzungen in anderen Sprachen stehen.
function ffremd(yx,xlist)
if !vruss
return yx
endif
do case
case yx = "a"
yx = chr(147)
case yx = "b"
yx = chr(138)
case yx = "c"
yx = chr(164)
case yx = "d"
yx = chr(131)
.
.
return xy
.
Die so gewonnenen Daten lassen sich dann normal anzeigen, drucken und in DBF's - und auch MySql speichern wenn im XBASE Programm die Schrift mit Codepage 204 gewählt wird.
Einen einfachen Weg über die Zwischenablage gibt es dabei leider nicht. Die Daten aus Exceltabellen oder Word lassen sich so leider auch nicht
einfügen.
War mir dann aber auch irgendwann egal da ein praktikables Ergebnisse her musste
Gruß
Ewald