Dark Bit Factory & Gravity

PROGRAMMING => Purebasic => Topic started by: inc. on November 23, 2013

Title: [SOLVED] Just need Help for creating Multi Language String. my Source inside
Post 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.

Title: Re: Just need Help for Creating Multi Language String
Post by: Pot Noodle on November 24, 2013
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.
 
Title: Re: Just need Help for Creating Multi Language String
Post by: inc. on December 05, 2013
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

Code: [Select]
;**************************************************************************
;*                                                                        *
;*                                                                        *
;*   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
Title: Re: [SOLVED] Just need Help for creating Multi Language String. my Source inside
Post by: nikin on December 06, 2013
I like the image, sadly pressing the about button crashes it under wine.
Title: Re: [SOLVED] Just need Help for creating Multi Language String. my Source inside
Post by: inc. on December 06, 2013
sorry for that. Windows OS only. You need the latest DirectX 9c Drivers installed.