Dark Bit Factory & Gravity
PROGRAMMING => Purebasic => Topic started by: inc. on November 23, 2013
-
Hi Folks and Brains,
i finished a Tool for some "File usage in one Instance". so far so good.
Now i have a Question about select and change Language in my Programm.
I need "a Sample Code or a kindly helping Hand for my Problem", because i have no idea how to handle this Language Change .
It's written for : ~ GERMAN, ~ SPANISH, ~ ENGLISH
all 3 Languages i want include into the Tool : Button Text should be change and Window Text too.
When pressed the button: [Advanced >>] --> [Language] --> [German] i want the tool change into German Language and so on.
At the moment you only get a View of my language.ini no more...
Can some One help me please?
Feel free to test my tool (inluded a tiny nice NFo Cracktro behind the [About] Button :)
Thanks for fast Reply.
Done in PureBasic v 4.61 32Bit on Windows 7
so long
inc.
-
I think if it was me I would look up the language def's for your app and store them in an Array, Then just call the appropriate Array index number for that language.
Hope this helps.
-
thanks.
i solved the Problem in a other way. i don't load the ini later into the Program. it's included into the EXE File via MAP Algo .
some one need the source? feel free to use.
Pic about the NFO Demo
(http://abload.de/img/nfo_troshezj.jpg)
The final Tool:
Attached
;**************************************************************************
;* *
;* *
;* on the fly, die Sprache in einem Programm per "Butten Klick ändern *
;* *
;* Beispiel Code: made by inc. 28/11/2013 *
;* *
;* mit: Map Translate.s() *
;* AddMapElement(Language() *
;* FindMapElement(Language() *
;* *
;* erstellt mit PureBasic: Version 4.61 *
;* *
;* *
;**************************************************************************
;übersetzen
Structure Language
Map Translate.s()
EndStructure
Global NewMap Language.Language()
Enumeration
#Window_0 ; Fenstertitel: how to set another Language
#ListIcon_0
#Frame3D_0 ; Big 3D Frame Items
#Button_0 ; Add Button
#Button_1 ; Delete Button
#Frame3D_1 ; Haupt Frame3dD Bezeichnung: Manage
#String_3
#Text_4 ; Frame3dD Bezeichnung Name:
#String_4
#Text_5 ; Frame3dD Bezeichnung Filename:
#String_6
#Text_7; ; TextGadget "Kommandozeile"
#Button_6 ; FileRequest Button [...]
#Button_7 ; ABOUT BUTTON
#Button_8 ; Advanced >> Button (Pulldown Menu)
#Button_9 ; Exit Button
#English ; map Language
#Deutsch ; map Language
#Spanish ; map Language
EndEnumeration
Define.l Event, EventWindow, EventGadget, EventType, EventMenu, ExamineScreenModes, SetGadgetText
;///////////////////////////////////////////////////////////////////////////////////////////////
;///////////////////////// hier Sprachübersetzung Globals ////////////////////////////////
;///////////////////////////////////////////////////////////////////////////////////////////////
;- Deutsch
; Definieren
;{// Änder Sprache zu DEUTSCH wenn im pulldown menu auf DEUTSCH geklickt wird
AddMapElement(Language(), "Deutsch")
With Language()
\Translate("Open with application...") = "Mit Programm öffnen..." ;Line 01
\Translate("Title") = "Bezeichnung" ;Line 02 ; Column Spalte 1 links
\Translate("Items") = "Dateien" ;Line 03
\Translate("Add") = "Hinzufügen" ;Line 04
\Translate("Delete") = "Löschen" ;Line 05
\Translate("Manage") = "Bearbeiten" ;Line 06
\Translate("Filename") = "Dateiname" ;Line 07 ; ändert "Filename" in "Dateiname" mit Anführungsszeich
\Translate("Title:") = "Bezeichnung:" ;Line 08
\Translate("Filename:") = "Datei:" ;Line 09
\Translate("Command line:") = "Kommandozeile:" ;Line 10
\Translate("About") = "Über" ;Line 11
\Translate("Advanced >>") = "Erweitert >>" ;Line 12
\Translate("Exit") = "Beenden" ;Line 13
\Translate("Register/unregister shell extension") = "Kontextmenü-Eintrag registrieren/löschen";Line 14
\Translate("Language") = "Sprache" ;Line 15
\Translate("Filename") = "Dateipfad" ;Line 16 ; Column Spalte 2 mitte
\Translate("Command line") = "Kommandozeile" ;Line 17
\Translate("Open File") = "Datei auswählen" ;Line 18
\Translate("ExE Files") = "ExE Dateien" ;Line 19
\Translate("All Files") = "Alle Dateien" ;Line 20
\Translate("Open File") = "Öffne Datei" ;Line 21 ; Tool Tip Tag
EndWith
;}
;- Spanisch
; Definieren
;{// Änder Sprache zu SPANISCH wenn im pulldown menu auf SPANISCH geklickt wird
AddMapElement(Language(), "Spanish")
With Language()
\Translate("Open with application...") = "Abrir con la aplicación...";Line 01
\Translate("Title") = "Nombre" ;Line 02 ; Column Spalte 1 links
\Translate("Items") = "Elementos" ;Line 03
\Translate("Add") = "Añadir" ;Line 04
\Translate("Delete") = "Borrar" ;Line 05
\Translate("Manage") = "Administrar" ;Line 06
\Translate("Filename") = "Nombre de Archivo" ;Line 07 ; ändert "Filename" in "Dateiname" mit Anführungsszeich
\Translate("Title:") = "Nombre:" ;Line 08
\Translate("Filename:") = "Nombre de Archivo:" ;Line 09
\Translate("Command line:") = "Línea de Comandos:" ;Line 10
\Translate("About") = "Acerca de" ;Line 11
\Translate("Advanced >>") = "Avanzado >>" ;Line 12
\Translate("Exit") = "Salir" ;Line 13
\Translate("Register/unregister shell extension") = "Registrar/cancelar extensión shell";Line 14
\Translate("Language") = "Idioma" ;Line 15
\Translate("Filename") = "Nombre de archivo" ;Line 16 ; Column Spalte 2 mitte
\Translate("Command line") = "Línea de comandos" ;Line 17
\Translate("Open File") = "Abrir Archivo" ;Line 18
\Translate("ExE Files") = "Archivos ExE" ;Line 19
\Translate("All Files") = "Todos los archivos" ;Line 20
\Translate("Open File") = "Abrir Archivo" ;Line 21 ; Tool Tip Tag
EndWith
;}
;- Englisch
; Definieren
;{// HAUPTSPRACHE ENGLISCH
AddMapElement(Language(), "English") ;Hauptsprache
With Language()
\Translate("Open with application...") = "Open with application..." ;Line 01
\Translate("Title") = "Title" ;Line 02 ; Column Spalte 1 links
\Translate("Items") = "Items" ;Line 03
\Translate("Add") = "Add" ;Line 04
\Translate("Delete") = "Delete" ;Line 05
\Translate("Manage") = "Manage" ;Line 06
\Translate("Filename") = "Filename" ;Line 07 ; ändert "Filename" in "Dateiname" mit Anführungsszeich
\Translate("Title:") = "Title:" ;Line 08
\Translate("Filename:") = "Filename:" ;Line 09
\Translate("Command line:") = "Command line:" ;Line 10
\Translate("About") = "About" ;Line 11
\Translate("Advanced >>") = "Advanced >>" ;Line 12
\Translate("Exit") = "Exit" ;Line 13
\Translate("Register/unregister shell extension") = "Register/unregister shell extension";Line 14
\Translate("Language") = "Language" ;Line 15
\Translate("Filename") = "Filename" ;Line 16 ; Column Spalte 2 mitte
\Translate("Command line") = "Command line" ;Line 17
\Translate("Open File") = "Open File" ;Line 18
\Translate("ExE Files") = "ExE Files" ;Line 19
\Translate("All Files") = "All Files" ;Line 20
\Translate("Open File") = "Open File" ;Line 21 ; Tool Tip Tag
EndWith
;}
;///////////////////////////////////////////////////////////////////////////////////////////////
;///////////////////////// ende Sprachübersetzung Globals ///////////////////////////////////
;///////////////////////////////////////////////////////////////////////////////////////////////
; Hauptsprache ENGLISCH
;- ButtonGadgets
OpenWindow(0, 359, 116, 366, 507, "how to set another Language", #PB_Window_SystemMenu | #PB_Window_ScreenCentered )
ListIconGadget(#ListIcon_0, 20, 29, 328, 199, "Title", 84, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
Frame3DGadget(#Frame3D_0, 11, 11, 346, 255, "Items")
ButtonGadget(#Button_0, 98, 235, 66, 22, "Add")
ButtonGadget(#Button_1, 197, 235, 66, 22, "Delete")
Frame3DGadget(#Frame3D_1, 12, 272, 345, 199, "Manage")
StringGadget(#String_3, 21, 426, 326, 23, Chr(34) + "Filename" + Chr(34)) ; Chr(34) + "bezeichnung" + Chr(34) setzt einen Namen in Anführungsszeichen
TextGadget(#Text_4, 23, 301, 65, 18, "Title:")
StringGadget(#String_4, 21, 319, 326, 23, "") ; erstes EingabeFeld
TextGadget(#Text_5, 23, 354, 100, 14, "Filename:")
StringGadget(#String_6, 21, 371, 288, 23, "") ; zweites Eingabefeld wo die datei ausgewählt wird
TextGadget(#Text_7, 23, 405, 100, 18, "Command line:")
ButtonGadget(#Button_6, 314, 371, 33, 22, "...")
ButtonGadget(#Button_7, 45, 479, 74, 22, "About")
ButtonGadget(#Button_8, 147, 479, 78, 22, "Advanced >>")
ButtonGadget(#Button_9, 250, 479, 74, 22, "Exit")
;///////////
; ADVANCED BUTTON MENU
If CreatePopupMenu(0) ; Hier pop-up menu beginnen
MenuItem(1, "Register\ unregister Shell Extension") ; Alle möglichen Kommandos für Menu kreation
MenuBar()
MenuItem(#Deutsch,"Deutsch")
MenuItem(#Spanish,"Español")
MenuItem(#English,"English")
EndIf
;SetGadgetAttribute(#ListIcon_0, #PB_ListIcon_List, #True)
AddGadgetColumn(#ListIcon_0, 1, "Filename", 120) ; übersetzen in deutsch und spanisch
AddGadgetColumn(#ListIcon_0, 2, "Command line", 120) ; übersetzen in deutsch und spanisch
GadgetToolTip(#Button_6, ("Open File")) ; Tool Tip Tag über dem Button [...]
Repeat
Event = WaitWindowEvent()
;///////////
; Button_6 zum Öffnen einer Datei um sie in das Tool einzubinden
Select Event
Case #PB_Event_Gadget
EventGadget = EventGadget()
If EventGadget = #Button_6 ; <---- Datei öffnen, Fenster Arbeitsplatz anzeigen öffnen
OpenFileRequester(Language()\Translate("Open File"), "", Language()\Translate("ExE Files") + " (*.exe)|*.exe|" + Language()\Translate("All Files") + " (*.*)|*.*", 0) ; Dialoge ebenfalls übersetzt
EndIf
EndSelect
;///////////
;// MENU BEFEHLE FÜR DAS POPUP MENU
Select EventMenu()
Case #Button_8
DisplayPopupMenu(0, WindowID(0))
EndSelect
;- übersetzung Deutsch
;///////////
;{ TRANSLATION hier freischalten für DEUTSCH
;// weiter im PopUp Menu auf Button Deutsch soll hier Funktion Translate freigeschalten werden
Select Event
Case #PB_Event_Menu
Select EventMenu()
Case #Deutsch
FindMapElement(Language(), "Deutsch")
SetGadgetItemText(#ListIcon_0, -1, Language()\Translate("Title"),0) ;Line 01 ; ändert im Column die Bezeichnung der Spalte "Name" in"Dateiname"
SetGadgetText(#Frame3D_0, Language()\Translate("Items")) ;Line 02 ; Frame3dD Bezeichnung Item
SetGadgetText(#Button_0, Language()\Translate("Add")) ;Line 03
SetGadgetText(#Button_1, Language()\Translate("Delete")) ;Line 04
SetGadgetText(#Frame3D_1, Language()\Translate("Manage")) ;Line 05
SetGadgetText(#Text_4, Language()\Translate("Title:")) ;Line 06 ; Frame3dD Bezeichnung Name:
SetGadgetText(#Text_5, Language()\Translate("Filename:")) ;Line 07 ; Frame3dD Bezeichnung Filename:
SetGadgetText(#Text_7, Language()\Translate("Command line:")) ;Line 08 ; Frame3dD Bezeichnung Command line:
SetGadgetText(#Button_7, Language()\Translate("About")) ;Line 09
SetGadgetText(#Button_8, Language()\Translate("Advanced >>")) ;Line 10
SetGadgetText(#Button_9, Language()\Translate("Exit")) ;Line 11
SetMenuItemText(MenuItem,1, Language()\Translate("Register/unregister shell extension"));Line 12
SetGadgetItemText(#ListIcon_0, -1, Language()\Translate("Filename"),1) ;Line 13
SetGadgetItemText(#ListIcon_0, -1, Language()\Translate("Command line"),2) ;Line 14
GadgetToolTip(#Button_6, Language()\Translate("Open File")) ;Line 15 ; Tool Tip Tag
EndSelect
EndSelect
;}
;- übersetzung Spanisch
;///////////
;{ TRANSLATION hier freischalten für SPANISCH
;// weiter im PopUp Menu auf Button ESPANOL soll hier Funktion Translate freigeschalten werden
Select Event
Case #PB_Event_Menu
Select EventMenu()
Case #Spanish
FindMapElement(Language(), "Spanish")
SetGadgetItemText(#ListIcon_0, -1, Language()\Translate("Title"),0) ;Line 01 ; ändert im Column die Bezeichnung der Spalte "Name" in"Dateiname"
SetGadgetText(#Frame3D_0, Language()\Translate("Items")) ;Line 02 ; Frame3dD Bezeichnung Item
SetGadgetText(#Button_0, Language()\Translate("Add")) ;Line 03
SetGadgetText(#Button_1, Language()\Translate("Delete")) ;Line 04
SetGadgetText(#Frame3D_1, Language()\Translate("Manage")) ;Line 05
SetGadgetText(#Text_4, Language()\Translate("Title:")) ;Line 06 ; Frame3dD Bezeichnung Name:
SetGadgetText(#Text_5, Language()\Translate("Filename:")) ;Line 07 ; Frame3dD Bezeichnung Filename:
SetGadgetText(#Text_7, Language()\Translate("Command line:")) ;Line 08 ; Frame3dD Bezeichnung Command line:
SetGadgetText(#Button_7, Language()\Translate("About")) ;Line 09
SetGadgetText(#Button_8, Language()\Translate("Advanced >>")) ;Line 10
SetGadgetText(#Button_9, Language()\Translate("Exit")) ;Line 11
SetMenuItemText(MenuItem,1, Language()\Translate("Register/unregister shell extension"));Line 12
SetGadgetItemText(#ListIcon_0, -1, Language()\Translate("Filename"),1) ;Line 13
SetGadgetItemText(#ListIcon_0, -1, Language()\Translate("Command line"),2) ;Line 14
GadgetToolTip(#Button_6, Language()\Translate("Open File")) ;Line 15 ; Tool Tip Tag
EndSelect
EndSelect
;}
;- übersetzung Englisch
;///////////
;{ TRANSLATION hier freischalten für ENGLISCH
;// weiter im PopUp Menu auf Button ESPANOL soll hier Funktion Translate freigeschalten werden
Select Event
Case #PB_Event_Menu
Select EventMenu()
Case #English
FindMapElement(Language(), "English")
SetGadgetItemText(#ListIcon_0, -1, Language()\Translate("Title"),0) ;Line 01 ; ändert im Column die Bezeichnung der Spalte "Name" in"Dateiname"
SetGadgetText(#Frame3D_0, Language()\Translate("Items")) ;Line 02 ; Frame3dD Bezeichnung Item
SetGadgetText(#Button_0, Language()\Translate("Add")) ;Line 03
SetGadgetText(#Button_1, Language()\Translate("Delete")) ;Line 04
SetGadgetText(#Frame3D_1, Language()\Translate("Manage")) ;Line 05
SetGadgetText(#Text_4, Language()\Translate("Title:")) ;Line 06 ; Frame3dD Bezeichnung Name:
SetGadgetText(#Text_5, Language()\Translate("Filename:")) ;Line 07 ; Frame3dD Bezeichnung Filename:
SetGadgetText(#Text_7, Language()\Translate("Command line:")) ;Line 08 ; Frame3dD Bezeichnung Command line:
SetGadgetText(#Button_7, Language()\Translate("About")) ;Line 09
SetGadgetText(#Button_8, Language()\Translate("Advanced >>")) ;Line 10
SetGadgetText(#Button_9, Language()\Translate("Exit")) ;Line 11
SetMenuItemText(MenuItem,1, Language()\Translate("Register/unregister shell extension"));Line 12
SetGadgetItemText(#ListIcon_0, -1, Language()\Translate("Filename"),1) ;Line 13
SetGadgetItemText(#ListIcon_0, -1, Language()\Translate("Command line"),2) ;Line 14
GadgetToolTip(#Button_6, Language()\Translate("Open File")) ;Line 15 ; Tool Tip Tag
EndSelect
EndSelect
;}
;//////////////////////
;-EXIT BUTTON
Select Event
Case #PB_Event_Gadget
EventGadget = EventGadget()
If EventGadget = #Button_9 ; <---- "Exit" ---> Programm Terminieren und schließen
CloseWindow(Window_0) ; <--- Funktion: "Schließe Fenster
Break
EndIf
EndSelect
;//////////////////////
;-Hauptfenster Exit
Select Event
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = Window_0
CloseWindow(Window_0)
Break
EndIf
EndSelect
ForEver
-
I like the image, sadly pressing the about button crashes it under wine.
-
sorry for that. Windows OS only. You need the latest DirectX 9c Drivers installed.