System-Dialogtext in Englisch
-
- Beiträge: 16
- Registriert: 15.12.2019 16:59
- Computerausstattung: MacOS Sonoma (M1), PureBasic 6.03 LTS (MacOS X - x64)
System-Dialogtext in Englisch
Hallo zusammen,
ich habe mit SaveFileRequester() einen Dialog erzeugt. Leider sind die Buttons und der System-Dialogtext (beispielsweise, wenn eine Datei schon existiert) in Englisch. Die Systemsprache ist aber Deutsch. Soweit ich verstanden habe, sollte die System-Dialoge in der User-Sprache sein, die im OS eingestellt sind. Das ist zumindest beim SaveFileRequester() nicht der Fall. Habe ich etwas übersehen oder kann man die Sprache der Systemdialoge irgendwo anpassen?
Beim Betriebsystem handelt es sich um Mac OSX (Catalina). Wenn ich versuche, die Systemsprache für PB in den Systemeinstellungen von OSX anzupassen wird mir angezeigt, dass PB nur die Systemsprache Englisch unterstütz. Sieht so aus, als ob es ein Problem zwischen dem OS und PB ist. Das würde bedeuten, dass der Systemdialog bei einer "deutschen" Anwendung dennoch in Englisch ist. Das wäre dann nicht besonders benutzerfreundlich.
Hat jemand noch ein Idee?
Existiert das Problem auch bei Windows oder Linux?
Grüße
Istvan42
ich habe mit SaveFileRequester() einen Dialog erzeugt. Leider sind die Buttons und der System-Dialogtext (beispielsweise, wenn eine Datei schon existiert) in Englisch. Die Systemsprache ist aber Deutsch. Soweit ich verstanden habe, sollte die System-Dialoge in der User-Sprache sein, die im OS eingestellt sind. Das ist zumindest beim SaveFileRequester() nicht der Fall. Habe ich etwas übersehen oder kann man die Sprache der Systemdialoge irgendwo anpassen?
Beim Betriebsystem handelt es sich um Mac OSX (Catalina). Wenn ich versuche, die Systemsprache für PB in den Systemeinstellungen von OSX anzupassen wird mir angezeigt, dass PB nur die Systemsprache Englisch unterstütz. Sieht so aus, als ob es ein Problem zwischen dem OS und PB ist. Das würde bedeuten, dass der Systemdialog bei einer "deutschen" Anwendung dennoch in Englisch ist. Das wäre dann nicht besonders benutzerfreundlich.
Hat jemand noch ein Idee?
Existiert das Problem auch bei Windows oder Linux?
Grüße
Istvan42
Re: System-Dialogtext in Englisch
Hallo Istvan42,
wie das Ändern der Sprache beim Debuggen/ Ausführen mit der IDE geht weis ich nicht.
Aber du kannst die Sprache im Nachhinein ändern.
Anleitung:
1. Erstelle deine Anwendung (Compiler -> Executable erstellen)
2. Dein erstelltes Programm mit der rechten Maustaste anklicken
-> Ein Kontextmenü erscheint.
-> Dort wählst du: "Paketinhalt zeigen"
-> Danach öffnest du den Ordner "Contents"
-> Darin befindet sich die Datei: "Info.plist"
-> Diese Datei musst du jetzt editieren.
In diesem Feld: "Localization native development region" musst du jetzt "Germany" auswählen.
3. Alles Speichern
4. Dein Programm öffnen
5. Freuen das deine Dateidialoge jetzt in Deutsch angezeigt werden.
wie das Ändern der Sprache beim Debuggen/ Ausführen mit der IDE geht weis ich nicht.
Aber du kannst die Sprache im Nachhinein ändern.
Anleitung:
1. Erstelle deine Anwendung (Compiler -> Executable erstellen)
2. Dein erstelltes Programm mit der rechten Maustaste anklicken
-> Ein Kontextmenü erscheint.
-> Dort wählst du: "Paketinhalt zeigen"
-> Danach öffnest du den Ordner "Contents"
-> Darin befindet sich die Datei: "Info.plist"
-> Diese Datei musst du jetzt editieren.
In diesem Feld: "Localization native development region" musst du jetzt "Germany" auswählen.
3. Alles Speichern
4. Dein Programm öffnen
5. Freuen das deine Dateidialoge jetzt in Deutsch angezeigt werden.
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat
-
- Beiträge: 16
- Registriert: 15.12.2019 16:59
- Computerausstattung: MacOS Sonoma (M1), PureBasic 6.03 LTS (MacOS X - x64)
Re: System-Dialogtext in Englisch
Hallo ccode_new,
vielen Dank für die schnelle Antwort. Ich werde es morgen mal testen. Hört sich aber für mich nach einer guten Lösung an. Wenn es im Debugger bzw. in der IDE auf Englisch ist, dann kann ich damit leben.
Gruß
Istvan42
vielen Dank für die schnelle Antwort. Ich werde es morgen mal testen. Hört sich aber für mich nach einer guten Lösung an. Wenn es im Debugger bzw. in der IDE auf Englisch ist, dann kann ich damit leben.
Gruß
Istvan42
MacOS Sonoma (M1), PureBasic 6.03 LTS (MacOS X - x64)
-
- Beiträge: 16
- Registriert: 15.12.2019 16:59
- Computerausstattung: MacOS Sonoma (M1), PureBasic 6.03 LTS (MacOS X - x64)
Re: System-Dialogtext in Englisch
Hallo,
ich habe den empfohlenen Kniff ausprobiert. Bei den Datei-Dialogen funktioniert es. Bei einem MessageRequeseter leider nicht.
Die Buttons sind dann in Englisch (yes, no, Cancel).
Gibt es da noch einen Trick oder muss ich mir ein eigenes Dialog-Fenster bauen?
Grüße
Istvan42
ich habe den empfohlenen Kniff ausprobiert. Bei den Datei-Dialogen funktioniert es. Bei einem MessageRequeseter leider nicht.
Code: Alles auswählen
MessageRequester("Warnung", "Wollen Sie das Programm wirklich beenden?",
#PB_MessageRequester_Warning | #PB_MessageRequester_YesNoCancel)
Gibt es da noch einen Trick oder muss ich mir ein eigenes Dialog-Fenster bauen?
Grüße
Istvan42
MacOS Sonoma (M1), PureBasic 6.03 LTS (MacOS X - x64)
Re: System-Dialogtext in Englisch
Hier:
Viel Spaß beim Ausprobieren.
Code: Alles auswählen
EnableExplicit
ImportC ""
GetIconRef(vRefNum.w, creator.i, iconType.i, *theIconRef)
ReleaseIconRef(theIconRef.i) ;Deprecated
EndImport
Procedure.i German_MessageRequester(title.s, info.s, flags.i = #PB_MessageRequester_Ok)
Protected.i alert, nimage, icon, picon
Protected.i rtype
alert = CocoaMessage(0, CocoaMessage(0, 0, "NSAlert new"), "autorelease")
CocoaMessage(0, alert, "setMessageText:$", @title)
CocoaMessage(0, alert, "setInformativeText:$", @info)
Select flags
Case 0, 4, 8, 16
CocoaMessage(0, Alert, "addButtonWithTitle:$", @"Ok")
Case 1, 5, 9, 17
CocoaMessage(0, Alert, "addButtonWithTitle:$", @"Ja")
CocoaMessage(0, Alert, "addButtonWithTitle:$", @"Nein")
Case 2, 6, 10, 18
CocoaMessage(0, Alert, "addButtonWithTitle:$", @"Ja")
CocoaMessage(0, Alert, "addButtonWithTitle:$", @"Nein")
CocoaMessage(0, Alert, "addButtonWithTitle:$", @"Abbrechen")
EndSelect
Select flags
Case 4, 5, 6
icon = $6E6F7465
Case 8, 9, 10
icon = $73746F70
Case 16, 17, 18
icon = $63617574
Default
icon = $4150504C
EndSelect
If GetIconRef(-32768, $6D616373, icon, @picon) = 0
CocoaMessage(@nimage, 0, "NSImage alloc")
CocoaMessage(0, nimage, "initWithIconRef:", picon)
CocoaMessage(0, alert, "setIcon:@", @nimage)
rtype = CocoaMessage(0, alert, "runModal")
CocoaMessage(0, nimage, "release")
ReleaseIconRef(picon)
EndIf
If rtype = 1000 And (flags = 0 Or flags = 4 Or flags = 8 Or flags = 16)
ProcedureReturn 0
ElseIf rtype = 1000
ProcedureReturn #PB_MessageRequester_Yes
ElseIf rtype = 1001
ProcedureReturn #PB_MessageRequester_No
ElseIf rtype = 1002
ProcedureReturn #PB_MessageRequester_Cancel
ElseIf rtype = 0
ProcedureReturn -1
EndIf
EndProcedure
Debug German_MessageRequester("Meldung", "Dies ist ein Infotext", #PB_MessageRequester_Info|#PB_MessageRequester_YesNo)
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat
-
- Beiträge: 16
- Registriert: 15.12.2019 16:59
- Computerausstattung: MacOS Sonoma (M1), PureBasic 6.03 LTS (MacOS X - x64)
Re: System-Dialogtext in Englisch
Hallo ccode_new,
vielen Dank für Deinen Workaround. Funktioniert so weit. Da ich gerne plattformunabhängig programmieren möchte, wäre das nicht meine erste Option. Natürlich kann ich die Lösung mit entsprechenden Compiler-Anweisungen auch so verwenden. Leider habe ich vom OS X Framework keine Ahnung. Grundsätzlich verstehe ich, was Du da machst, aber im Detail tappe ich im Halbdunkeln.
Ich habe mit Hilfe von Google auch festgestellt, dass z. B. der Aufruf ReleaseIconRef() veraltet ist und nicht mehr supportet ist. Man soll stattdessen NSWorkspace und NSImage verwenden.
Bei Bedarf werde ich versuchen einen MessageRequester mit PureBasic ohne API-Aufrufe ans OS erstellen.
Gruß
Istvan42
vielen Dank für Deinen Workaround. Funktioniert so weit. Da ich gerne plattformunabhängig programmieren möchte, wäre das nicht meine erste Option. Natürlich kann ich die Lösung mit entsprechenden Compiler-Anweisungen auch so verwenden. Leider habe ich vom OS X Framework keine Ahnung. Grundsätzlich verstehe ich, was Du da machst, aber im Detail tappe ich im Halbdunkeln.
Ich habe mit Hilfe von Google auch festgestellt, dass z. B. der Aufruf ReleaseIconRef() veraltet ist und nicht mehr supportet ist. Man soll stattdessen NSWorkspace und NSImage verwenden.
Bei Bedarf werde ich versuchen einen MessageRequester mit PureBasic ohne API-Aufrufe ans OS erstellen.
Gruß
Istvan42
MacOS Sonoma (M1), PureBasic 6.03 LTS (MacOS X - x64)
Re: System-Dialogtext in Englisch
Dafür gibt es Compiler Direktiven...
Code: Alles auswählen
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Windows
CompilerCase #PB_OS_Linux
CompilerCase #PB_OS_MacOS
; Code her for macOS
ImportC ""
GetIconRef(vRefNum.w, creator.i, iconType.i, *theIconRef)
ReleaseIconRef(theIconRef.i) ;Deprecated
EndImport
Procedure.i German_MessageRequester(title.s, info.s, flags.i = #PB_MessageRequester_Ok)
...
Macro MessageRequester(Title, Text, Flags = #PB_MessageRequester_Ok)
German_MessageRequester(Title, Text, Flags)
EndMacro
CompilerEndSelect
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
-
- Beiträge: 16
- Registriert: 15.12.2019 16:59
- Computerausstattung: MacOS Sonoma (M1), PureBasic 6.03 LTS (MacOS X - x64)
Re: System-Dialogtext in Englisch
mk-soft hat geschrieben:Dafür gibt es Compiler Direktiven...
Sorry, ist mir bekannt. Habe ich mich wohl nicht ganz klar ausgedrückt.Natürlich kann ich die Lösung mit entsprechenden Compiler-Anweisungen auch so verwenden.
Bevor ich aber von einer "reinen" PureBasic Lösung abweiche, möchte ich gerne andere Möglichkeiten nutzen (sofern vorhanden), zumal ich mich nicht mit den OS APIs auskenne.
Gruß
Istvan42
MacOS Sonoma (M1), PureBasic 6.03 LTS (MacOS X - x64)
Re: System-Dialogtext in Englisch
Es macht aber durchaus Sinn sich mit den entsprechenden Betriebssystem-Anwendungs-Programmier-Schnittstellen zu befassen.Istvan42 hat geschrieben:Bevor ich aber von einer "reinen" PureBasic Lösung abweiche, möchte ich gerne andere Möglichkeiten nutzen (sofern vorhanden), zumal ich mich nicht mit den OS APIs auskenne.
PureBasic bietet natürlich schon ein schönes kleines Framework, aber selbst dieses hat Lücken und Ausnahmen auf den Drei unterstützen Plattformen.
Oftmals benötigt man eben dann doch Funktionen die das PureBasic-"Framework" nicht bieten kann.
Da ist man dann mit Programmiersprachen die auf das Java- oder .Net - Framework setzen zum Beispiel schon besser bedient.
Dort gibt es eine größere Vielfalt.
Umso mehr ist dann die Community um PureBasic gefragt, oder man bürdet alles wenigen Personen (Fred, Timo, etc.) auf.
Aber dafür ist PureBasic echt gut geworden.
Zu MacOS:
Die Dokumentation ist eigentlich sehr gut. (Alles so schöne tolle Frameworks und so Kompakt (weniger zerstreut))
Außerdem ist auch der PureBasic - Befehl "CocoaMessage" echt supi.
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat