MsgBox in englisch
Moderator: Moderatoren
-
- 1000 working lines a day
- Beiträge: 525
- Registriert: Mi, 01. Feb 2006 16:22
- Wohnort: 06618 Naumburg
MsgBox in englisch
Hallo,
ich möchte in einer MsgBox das Ja/Nein auf englisch umstellen (1.90.355) .
Müsste doch irgenwie mit SetLocale zu machen sein, ich finde allerdings nicht wie/wo.
ich möchte in einer MsgBox das Ja/Nein auf englisch umstellen (1.90.355) .
Müsste doch irgenwie mit SetLocale zu machen sein, ich finde allerdings nicht wie/wo.
-
- 1000 working lines a day
- Beiträge: 525
- Registriert: Mi, 01. Feb 2006 16:22
- Wohnort: 06618 Naumburg
Re: MsgBox in englisch
eigentlich alle Systemmeldungen, speziell aber die Msgbox (was sonst noch?).brandelh hat geschrieben:nur ein EINER MSGBOX, oder alle Systemmeldungen ?
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 69 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: MsgBox in englisch
Ich bin mir nicht sicher, aber standardmäßig werden für Systemmeldungen (MsgBox Text etc.) die PC Einstellungen verwendet.
Wenn es für alle gelten soll, müsste man dort vorgaukeln, dass es ein englisches Programm ist.
Ich habe die deutsche Version installiert, wie verhält sich die internationale Version ?
Ich fürchte "nutze Sprache des PC" ist Standard, und ich meine zwei Sprachen geht nur bei teureren Versionen, kann mich aber täuschen.
Wenn man aber nur ein Fenster ändern will, dann geht das nicht über Systemeinstellungen sondern man muss das eine Fenster selbst machen, daher die Frage.
Wenn es für alle gelten soll, müsste man dort vorgaukeln, dass es ein englisches Programm ist.
Ich habe die deutsche Version installiert, wie verhält sich die internationale Version ?
Ich fürchte "nutze Sprache des PC" ist Standard, und ich meine zwei Sprachen geht nur bei teureren Versionen, kann mich aber täuschen.
Wenn man aber nur ein Fenster ändern will, dann geht das nicht über Systemeinstellungen sondern man muss das eine Fenster selbst machen, daher die Frage.
Gruß
Hubert
Hubert
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9387
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 362 Mal
- Kontaktdaten:
Re: MsgBox in englisch
Die MsgBox() ist ein Windows-API-Element. Sie reagiert auf die Spracheinstellungen des Betriebssystems; wenn das OS auf Englisch umgestellt wird, sagt die MsgBox "Yes" und "No". Der einfachste Weg, um also englischsprachige MsgBoxen zu erreichen, wäre die Windows-Sprachumstellung. Eine ähnlich einfache besteht darin, MsgBoxen selbst zu programmieren, was zusätzlich erlauben würde, sie funktionell aufzuwerten, etwa um eigene Icons ergänzt, mit differenzierteren Antworten, Speichermöglichkeiten, Animationen oder ähnlicher Grafik. Wenn man aber wirklich die native MsgBox will, die unter einem deutschen OS mit englischen Antworten hantiert, müsste man m.E. API-Funktionen wie SetWindowsHookEx und anderen arbeiten, um die Nachrichten an die Box abzufangen und zu übersetzen. In irgendeinem VB-Archiv habe ich ein Beispiel gefunden, aber mir ist leider der Link abhandengekommen.
Herzlich,
Tom
Tom
-
- 1000 working lines a day
- Beiträge: 525
- Registriert: Mi, 01. Feb 2006 16:22
- Wohnort: 06618 Naumburg
Re: MsgBox in englisch
Gut, das genügt mir dann eigentlich.
Ich muss dann bei der wahlweisen Umstellungen meines Programme auf Englisch dafür nichts tun da anzunehmen ist, dass wenn jemand die Sprache im Programm auf Englisch umstellt, er dies auch im Betriebssystem getan hat...
Ich muss dann bei der wahlweisen Umstellungen meines Programme auf Englisch dafür nichts tun da anzunehmen ist, dass wenn jemand die Sprache im Programm auf Englisch umstellt, er dies auch im Betriebssystem getan hat...
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: MsgBox in englisch
wieso redet ihr alle über die Xbase++ (?) MsgBox() ... die hat keine Ja/Nein Buttonspeternmb hat geschrieben:ich möchte in einer MsgBox das Ja/Nein auf englisch umstellen (1.90.355) .
eine ConfirmBox() ist wohl gemeint und die XBPMB_* Konstanten welche den Text für die Button vorgeben.
hm ... mitpeternmb hat geschrieben:Müsste doch irgenwie mit SetLocale zu machen sein, ich finde allerdings nicht wie/wo.
Code: Alles auswählen
cCode := SetLocale(NLS_ICOUNTRY)
klar die wären ja System weit ...Allgemeine landesspezifische Einstellungen (Read only)
wenn ich System-weit auf "CN" umstelle wäre auch das Ja/Nein auf chinesisch
p.s. der User kann, für jedes Fenster, eine andere Keyboard Einstellung (DE,CN,EN) haben !
gruss by OHR
Jimmy
Jimmy
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 69 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: MsgBox in englisch
Jimmy hat Recht ...
XBPMB_YESNO Ja Nein
als nButton angibt. Wenn dein Quellcode MsgBox() so aufruft und du Ja/Nein siehst, wird wohl irgendwo eine Übersetzung definiert sein von MsgBox() auf ConfirmBox().
Eine Funktion im eigenen code ersetzt eine gleichnamige in einer DLL (oder natürlich #command | #translate etc.) :
wenn das z.B. im Quellcode eingebunden wird, wird immer die ConfirmBox gestartet, eine Möglichkeit um das zugehörige Fenster zu definieren.
Mehr Sinn macht es mit Abfrage des Rückgabewertes, hier meine einfache JaNeinBox()
Ja/Nein wird bei einer ConfirmBox() angezeigt, wenn man ...Die Funktion MsgBox() dient der Anzeige eines Textes in einem einfachen, grafischen Dialogfenster.
Unter dem Text wird ein Pushbutton "Ok" angezeigt, mit dem das Fenster wieder geschlossen wird.
XBPMB_YESNO Ja Nein
als nButton angibt. Wenn dein Quellcode MsgBox() so aufruft und du Ja/Nein siehst, wird wohl irgendwo eine Übersetzung definiert sein von MsgBox() auf ConfirmBox().
Eine Funktion im eigenen code ersetzt eine gleichnamige in einer DLL (oder natürlich #command | #translate etc.) :
Code: Alles auswählen
#include "Xbp.ch"
FUNCTION msgbox(cMessage, cTitle, oOwner )
DEFAULT cTitle TO "MyMsgBox"
confirmbox(oOwner,cMessage,cTitle,XBPMB_YESNO,,XBPMB_DEFBUTTON2)
RETURN NIL
Mehr Sinn macht es mit Abfrage des Rückgabewertes, hier meine einfache JaNeinBox()
Code: Alles auswählen
*-------------------------------------------------------
function JaNeinBox(cFrage, cTitel) // Einfache Frage
DEFAULT cFrage TO "Bitte wählen"
DEFAULT cTitel TO "JaNeinBox()"
if XBPMB_RET_YES = ConfirmBox( SetAppWindow(), cFrage, cTitel, XBPMB_YESNO, XBPMB_QUESTION+XBPMB_APPMODAL+XBPMB_MOVEABLE )
Return .t.
endif
Return .f.
Gruß
Hubert
Hubert
-
- 1000 working lines a day
- Beiträge: 525
- Registriert: Mi, 01. Feb 2006 16:22
- Wohnort: 06618 Naumburg
Re: MsgBox/ConfirmBox in englisch
Ja, es geht natürlich nicht um die MsgBox sondern um die ConfirmBox. Bei der MsgBox reicht mir das eher sprachunabhängige "OK".Die Funktion MsgBox() dient der Anzeige eines Textes in einem einfachen, grafischen Dialogfenster.
Unter dem Text wird ein Pushbutton "Ok" angezeigt, mit dem das Fenster wieder geschlossen wird.
Code: Alles auswählen
nConfirm:= ;
ConfirmBox(,"Soll die Datei wirklich gelöscht werden?", ;
"bitte bestätigen",;;
XBPMB_YESNO , XBPMB_QUESTION+XBPMB_APPMODAL+XBPMB_MOVEABLE,XBPMB_DEFBUTTON1 )
IF nConfirm == XBPMB_RET_NO
return
ENDIF
- 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: MsgBox in englisch
Am Geschicktesten macht ihr das wie Tom anregt: Baut eine eigene Funktion für die Darstellung von Informationen/Fehlern usw. So habt ihr alle Sprachprobleme weg und die Texte (Titel, Textlinien) werden als Argument mitgeliefert. Die Antwort ist dann einfach aus dem Funktionsaufruf entsprechend dem Klick des Users.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...