MessageRequester von Deutsch auf Englisch umschalten?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

@MVXA:
Aber funzt irgendwie nicht:

Code: Alles auswählen

#LANG_ENGLISH	= $09
#SUBLANG_NEUTRAL = $00

Procedure MakeLong(low.w, high.w)
  ProcedureReturn low + (high<<16)
EndProcedure

Procedure MessageBox(Titel$, Message$, Flag, LanguageID)
  OwnMessage.MSGBOXPARAMS
  OwnMessage\cbSize=SizeOf(MSGBOXPARAMS)
  OwnMessage\hwndOwner=0
  OwnMessage\hInstance=GetModuleHandle_(0)
  OwnMessage\lpszText=@Message$
  OwnMessage\lpszCaption=@Titel$
  OwnMessage\dwStyle=Flag
  ;OwnMessage\lpszIcon
  ;Ownmessage\dwContextHelpId = 
  OwnMessage\dwLanguageId = LanguageID
  ProcedureReturn MessageBoxIndirect_(OwnMessage)
EndProcedure

LanguageID = MakeLong(#LANG_ENGLISH, #SUBLANG_NEUTRAL)
MessageBox("Test", "Hallo die Enten",#PB_MessageRequester_YesNoCancel, LanguageID)
Oder ist ein Fehler drinn :oops:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Das ist aber sonderbar... So wie ich das sehe müsste das eigentlich
funktionieren o_O...
Bild
Benutzeravatar
Tracker
Beiträge: 53
Registriert: 22.11.2005 21:46
Computerausstattung: Intel Core 2 Quad Q6600, 2,4 GHZ, 2 GB RAM, NVidia GeForce 8600 GT 512 MB, Windows XP Prof. SP3, PureBasic v4.51

Beitrag von Tracker »

Danke für eure Bemühungen!

Ich finde es toll, wie ts-soft die Struktur nach PureBasic konvertiert hat.
Leider hat es bei mir auch nicht geklappt die Buttons in Englisch darzustellen.

Ich habe die Funktion auch mal mit folgenden Werten ausprobiert:
#LANG_GERMAN=$07
#SUBLANG_DEFAULT=$01
; 1*2^10+7=1031 (Deutschland)
und
#LANG_ENGLISH=$09
#SUBLANG_DEFAULT = $01
; 1*2^10+9=1033 (England)

für LanguageID habe ich also 1031 (German) bzw. 1033 (English) eingesetzt und beides getestet.
Leider ohne Erfolg.
Die MessageBox-Buttons sind immer Deutsch (Ja, Nein, Abbrechen).

Ich hatte mir auch schon überlegt den Code MessageRequester_OwnTextButtons.pb aus dem PureArea-Codearchiv an mein Programm anzupassen.
Damit hätte ich aber nur ein Teilproblem gelöst.
Die Buttons der FileRequester wären immer noch in Deutsch.

Ich mache deswegen aber keine Klimmzüge mehr und verwende die PureBasic-StandardRequester, auch wenn die Buttons bei englischer Oberfläche in verschiedenen Sprachen erscheinen.

Mein 3dgsPurePacker funktioniert schon ganz gut, ist aber noch in der Beta-Phase.
Ich verwende zum Packen die tolle Packer_Ex-Include-Datei von Mischa.

Damit ihr mal einen Eindruck bekommt, wie die deutsche und die englische Oberfläche aussieht, zeige ich euch hier mal zwei Hardcopies von zwei kleinen 3DGameStudio-Leveln, die ich damit gepackt habe:

Bild

Bild
Zuletzt geändert von Tracker am 09.03.2006 22:59, insgesamt 1-mal geändert.
Ein fehlerfreies Programm ist der Traum jedes Programmierers
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> ich finde es toll, wie ts-soft die Struktur nach PureBasic konvertiert hat.
Brauchte ich nicht, die ist vordefiniert :wink: . Nur richtig füllen, sollte genügen.

Sag mal, verwendest Du Win98, ansonsten sind es die falschen Tempverzeichnisse in Deinem Proggi.

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Tracker
Beiträge: 53
Registriert: 22.11.2005 21:46
Computerausstattung: Intel Core 2 Quad Q6600, 2,4 GHZ, 2 GB RAM, NVidia GeForce 8600 GT 512 MB, Windows XP Prof. SP3, PureBasic v4.51

Beitrag von Tracker »

Ich verwende Windows XP, teste das Programm aber auch unter anderen Betriebssystemen, wie Windows 98, ME, 2000 und NT4.
Das Temp-Verzeichnis lege ich bewußt nach C:\Windows\Temp\ bzw. bei Windows NT und 2000 nach C:\Winnt\Temp\.
Ich ermittele das Windows-Verzeichnis und hänge einfach \TEMP an.
So weiß ich, bei jedem System, wo die Dateien entpackt werden.
Das funktioniert unter Windows XP auch, wenn der Anwender nur einfache Benutzerrechte hat.

Das benutzerabhängige Temp-Verzeichnis
C:\Dokumente und Einstellungen\<Username>\Lokale Einstellungen\Temp\
ist mir zu lang.
Da muss ich mich beim Testen durch zu viele Verzeichnisse wühlen, um ein Verzeichnis manuell zu löschen.
Ein normaler Anwender würde das Verzeichnis vielleicht gar nicht finden.
Ein fehlerfreies Programm ist der Traum jedes Programmierers
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> Da muss ich mich beim Testen durch zu viele Verzeichnisse wühlen, um ein Verzeichnis manuell zu löschen.
Schon mal was von Favoriten gehört, hat eigentlich jeder vernünftige
Dateimanager, beim Explorer weiß ich aber nicht, das ist ja nur ne Notlösung
:mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Tracker
Beiträge: 53
Registriert: 22.11.2005 21:46
Computerausstattung: Intel Core 2 Quad Q6600, 2,4 GHZ, 2 GB RAM, NVidia GeForce 8600 GT 512 MB, Windows XP Prof. SP3, PureBasic v4.51

Beitrag von Tracker »

Ich denke dass ich in 17 Jahren Berufserfahrung als DV-Sachbearbeiter und in den letzten 25 Jahren als Hobbyprogrammierer mal irgendwann etwas von Favoriten gehört habe. :?
Bei meinem System sind die benutzer- und systembezogenen Systemvariablen TEMP und TMP sowieso auf C:\TEMP eingestellt, so dass ich locker auf Favoriten verzichten kann.
C:\Windows\TEMP bzw. C:\WinNT\TEMP habe ich bewusst gewählt, weil ich sicher sein will, wo sich diese Verzeichnisse befinden und dass sie auch auf jeder Windows-Version existieren.
Ich versuche meine Programme so fehlerfrei und sicher wie möglich zu erstellen, damit künftige Anwender möglichst viel Nutzen und keine Probleme damit haben.
Ich habe zwar schon in einigen Sprachen programmiert, aber der 3dgsPurePacker ist mein erstes PureBasic-Programm und PureBasic mit seinen API-Zugriffsmöglichkeiten ist für mich noch Neuland.
Ich war schon hocherfreut, dass ich es irgendwann endlich fertiggebracht habe der EXE des Entpackers nachträglich ein eigenes Icon zuzuweisen.
Außerdem konnte ich durch Geschwindigkeitsoptimierung der Callback-Funktion ca. 30% Packzeit einsparen, wie man auch an obigen Hardcopies sieht (die deutsche Hardcopy stammt aus der Beta vom 20.02.06 und die englische Hardcopy aus der Beta vom 5.03.06).
Wenn es nach meinem Sohn ginge, müsste ich schon längst mit dem 3dgsPurePacker fertig sein und Spiele in 3D GameStudio erstellen.
Ich halte aber nichts von der Verteilung von Bananen-Software.
Ein fehlerfreies Programm ist der Traum jedes Programmierers
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ich halte auch nichts von Bananen-Software. Die Nutzung von
Temp-Ordnern, die nur zur Kompatibilität mit älterer Software da sind, halte
ich für keine gute Idee, da ich z.B. meinen Temp-Ordner verlegt habe, um
meine System-Partition so klein als möglich zu gestalten, was mir erhebliche
Zeit und Platzvorteile beim sichern bringt.

Da ich aber nicht zu den Nutzern dieser Software gehöre, ist es aber egal :wink:

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten