Author Topic: [SOLVED] Just need Help for creating Multi Language String. my Source inside  (Read 1679 times)

0 Members and 1 Guest are viewing this topic.

Offline inc.

  • Contact me @ skype: a5recordings
  • Amiga 1200
  • ****
  • Posts: 261
  • Karma: 19
  • I SPEAK ENGLISH & GERMAN as good as i can :D
    • View Profile
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.

« Last Edit: December 05, 2013 by inc. »
currently coding in PureBasic: GLSL Shader Maker & Editor Tool for further Demo coding usage

Offline Pot Noodle

  • Sponsor
  • Amiga 1200
  • *******
  • Posts: 271
  • Karma: 15
  • Computers have lots of memory but no imagination
    • View Profile
Re: Just need Help for Creating Multi Language String
« Reply #1 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.
 

Offline inc.

  • Contact me @ skype: a5recordings
  • Amiga 1200
  • ****
  • Posts: 261
  • Karma: 19
  • I SPEAK ENGLISH & GERMAN as good as i can :D
    • View Profile
Re: Just need Help for Creating Multi Language String
« Reply #2 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



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
« Last Edit: December 05, 2013 by inc. »
currently coding in PureBasic: GLSL Shader Maker & Editor Tool for further Demo coding usage

Offline nikin

  • C= 64
  • **
  • Posts: 57
  • Karma: 15
    • View Profile
I like the image, sadly pressing the about button crashes it under wine.

Offline inc.

  • Contact me @ skype: a5recordings
  • Amiga 1200
  • ****
  • Posts: 261
  • Karma: 19
  • I SPEAK ENGLISH & GERMAN as good as i can :D
    • View Profile
sorry for that. Windows OS only. You need the latest DirectX 9c Drivers installed.
currently coding in PureBasic: GLSL Shader Maker & Editor Tool for further Demo coding usage