Gadgettext Updaten
Gadgettext Updaten
Hallo,
meine Gadgettexte sind Variablen (strings natürlich), ich will dass ich die Sprache umschalten kann (die Wortlisten hab ich schon geschrieben).
Muss ich jetzt für jedes Gadget sagen SetGadgetText()? gibt es da nicht eine nicht so umständliche Methode sodass die Gadgets einfach ihre Variablen neu laden?
MfG Tompazi
meine Gadgettexte sind Variablen (strings natürlich), ich will dass ich die Sprache umschalten kann (die Wortlisten hab ich schon geschrieben).
Muss ich jetzt für jedes Gadget sagen SetGadgetText()? gibt es da nicht eine nicht so umständliche Methode sodass die Gadgets einfach ihre Variablen neu laden?
MfG Tompazi

n Liste machen wo alle GadgetIDs rein kommen die geändert werden sollten. und deren mögliche Inhalte:
zB:
Diese Liste füllst du dann und rufst bei einer Sprachänderung dann auf :
oder halt englsich ...
zB:
Code: Alles auswählen
Structure MyGadget
ID.l
Deutsch$
Englisch$
Endstructure
Global NewList MyGadget.MyGadget()
Code: Alles auswählen
ForEach MyGadget()
SetGadgetText(MyGadget()\ID, MyGadget()\Deutsch$)
Next
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Gadgettext Updaten
kommt darauf an, wie komfortabel Du das dem Anwender anbieten willst. EsTompazi hat geschrieben:Muss ich jetzt für jedes Gadget sagen SetGadgetText()? gibt es da nicht eine nicht so umständliche Methode sodass die Gadgets einfach ihre Variablen neu laden?
gibt beispielsweise auch Applikationen, die nach einer Umschaltung die neue
Sprache erst anzeigen, wenn man sie (die App) neu startet. In diesem Fall
musst Du natürlich bis auf die Anzeige des MessageRequesters('Sprache
wird erst nach App-Neustart aktiv') gar nichts machen (vorausgesetzt
natürlich, dass Du Dir beim Erstellen der Gadgets die Texte sprachspezifisch
holst.)
Grüße ... Kiffi
a²+b²=mc²
- 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
Ich nutze dafür sowas: http://www.purebasic.fr/english/viewtop ... 073#191073
In einer Extra-Procedure werden dann Menü, Toolbar, Tooltips usw.
neu erstellt bzw. geupdated, sowie Buttons beschriftet.
In einer Extra-Procedure werden dann Menü, Toolbar, Tooltips usw.
neu erstellt bzw. geupdated, sowie Buttons beschriftet.
Code: Alles auswählen
; Menü erstellen / updaten
If IsMenu(#frmMain)
FreeMenu(#frmMain)
EndIf
If CreateImageMenu(#frmMain, WindowID(#frmMain), #PB_Menu_ModernLook)
MenuTitle(Language("MenuTitle", "File"))
MenuItem(#mnuNew, Language("MenuItem", "New"), ImageID(#mnuNew_ico))
MenuItem(#mnuOpen, Language("MenuItem", "Open"), ImageID(#mnuOpen_ico))
MenuBar()
MenuItem(#mnuSave, Language("MenuItem", "Save"), ImageID(#mnuSave_ico))
MenuItem(#mnuSaveAs, Language("MenuItem", "SaveAs"), ImageID(#mnuSaveAs_ico))
MenuBar()
MenuItem(#mnuQuit, Language("MenuItem", "Quit"), ImageID(#mnuQuit_ico))
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

klar, Deine Entscheidung.Tompazi hat geschrieben:so komfortabel wie möglich Klick und und alles anders
Allerdings gebe ich folgendes noch zu bedenken: Wie oft schaltet ein
Anwender gewöhnlich die Sprache seiner Applikation um? Ich schätze, dass
99.8% aller Anwender das genau einmal tun.
Ich als Pragmatiker (andere sagen: 'Fauler Sack') würde mir deswegen nicht
die Mühe machen und nun alle Gadgets zur Laufzeit in der neuen Sprache
anzeigen, sondern halte es vertretbar, dem Anwender zuzumuten, die
Applikation neu zu starten. Die dadurch gewonnene Zeit kann ich nutzen,
um sinnvollere Features in mein Programm einzubauen

Grüße ... Kiffi
a²+b²=mc²
- 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
Abgesehen von buttons, davon hat man eh meist nicht so viele, kann man
die Erstellung in eine Procedure auslagern, siehe oben, weil erstellt werden
muß es sowieso, ist also kaum mehr Code.
Die paar SetGadgetText fallen doch kaum ins Gewicht, gibt also keinen
Grund nicht OnTheFly wechsel zu ermöglichen, bedeutet bei richtiger
Organisation so gut wie keinen Mehraufwand.
yust my 2 cents
die Erstellung in eine Procedure auslagern, siehe oben, weil erstellt werden
muß es sowieso, ist also kaum mehr Code.
Die paar SetGadgetText fallen doch kaum ins Gewicht, gibt also keinen
Grund nicht OnTheFly wechsel zu ermöglichen, bedeutet bei richtiger
Organisation so gut wie keinen Mehraufwand.
yust my 2 cents
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
