Gadgettext Updaten

Anfängerfragen zum Programmieren mit PureBasic.
Tompazi
Beiträge: 211
Registriert: 22.09.2007 15:38

Gadgettext Updaten

Beitrag von Tompazi »

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
Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

n Liste machen wo alle GadgetIDs rein kommen die geändert werden sollten. und deren mögliche Inhalte:

zB:

Code: Alles auswählen

Structure MyGadget
 ID.l
 Deutsch$
 Englisch$
Endstructure
Global NewList MyGadget.MyGadget()
Diese Liste füllst du dann und rufst bei einer Sprachänderung dann auf :

Code: Alles auswählen

ForEach MyGadget()
 SetGadgetText(MyGadget()\ID, MyGadget()\Deutsch$)
Next
oder halt englsich ...
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
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Gadgettext Updaten

Beitrag von Kiffi »

Tompazi 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?
kommt darauf an, wie komfortabel Du das dem Anwender anbieten willst. Es
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²
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 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.

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.
Bild
Tompazi
Beiträge: 211
Registriert: 22.09.2007 15:38

Beitrag von Tompazi »

Danke werd ich machen

so komfortabel wie möglich Klick und und alles anders :wink:

MfG Tompazi
Bild
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Tompazi hat geschrieben:so komfortabel wie möglich Klick und und alles anders :wink:
klar, Deine Entscheidung.

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²
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 »

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
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
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

ts-soft hat geschrieben: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.
+1
Win11 x64 | PB 6.20
Antworten