FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour To Antonio and all ..Change a language with fwstring
Posts: 7317
Joined: Thu Oct 18, 2012 07:17 PM
To Antonio and all ..Change a language with fwstring
Posted: Sun Nov 09, 2014 06:45 PM
I have a button on a dialog and also a menu pulldown


Menuitem oItem[1] prompt fwstring("test bla bla")

-....

@ n+ nlinea5,ncol1 BUTTON oBIvap PROMPT fwstring("+ Iva") OF oDlg ;
SIZE 63,25 ;
ACTION


when I change the language on another function I made :


oDlg:SetMenu( BuildMenu() )
aEval(oDlg:aControls,{|oC|iif(oC:ClassName()="TBUTTON",oC:SetText( oC:cCaption ),)})
aEval(oDlg:aControls,{|oC|iif(oC:ClassName()="TBUTTON",oC:refresh(),)})


it change only the menu pulldown while the buttons caption are not changed... WHY ?

I add astrings with { "+ Tax", "+ Tax", "+ Tax", "+ Tax", "+ Tax", "+ Iva" } sure...



here a test sample to try :
Code (fw): Select all Collapse
 
#include "FiveWin.ch"
#include "constant.ch"
#include "xbrowse.ch"

static nLanguage,cIniCalc

static oDlgTest

Function test()


 //Dialog
   Local nBottom   := 16.5
   Local nRight    := 32
   Local nWidth :=  Max( nRight * DLG_CHARPIX_W, 180 )
   Local nHeight := nBottom * DLG_CHARPIX_H
   Local oDlg

    cIniCalc    := cFilePath( GetModuleFileName( GetInstance() ) ) + "Calc.ini"



       FWAddString( { "+Tax","+Tax", "+Tax", "+Tax", "+Tax", "+Iva" })
       FWAddString( { "-Tax","-Tax", "-Tax", "-Tax", "-Tax", "-Iva" })
       FWAddString( { "Show","", "", "", "", "Visualizza" })
       FWAddString( { "Help","", "", "", "", "Aiuto" })
       FWAddString( { "Ribbon","", "", "", "", "Nastro Operazioni" })
       FWAddString( { "Options","", "", "", "", "Opzioni" })
       FWAddString( { "Preferences","", "", "", "", "Preferenze" })
       FWAddString( { "Authors","", "", "", "", "Autori" })


       //FWEditStrings()   trace to see there are the strings



       FWSetLanguage( 6 ) // Italian language

        SavePreferences()   / save on ini file 


       LoadPreferences()  // read fron ini file 



 DEFINE DIALOG oDlgTest  SIZE nWidth, nHeight   PIXEL

 ACTIVATE DIALOG oDlgTest CENTER;
     on INIt (Load_Buttons(oDlgTest), oDlgTest:SetMenu(BuildMenu() ) )

return nil 



Function Load_Buttons(oDlgTest)
Local  nlinea5:=10
Local ncol1:= 8.5
Local ncol5:= 30.5
Local n:= 0
Local oBIvap,oBRes



  @ n+nlinea5,ncol5 BUTTON oBRes PROMPT ("Change") OF oDlgTest ;
       SIZE 63,25 ;
       ACTION Preferences()

    @ n+ nlinea5,ncol1 BUTTON oBIvap PROMPT FWString( "+Iva" ) OF oDlgtest SIZE 45, 13 ACTION oDlgTest:End()


return nil


function LoadPreferences()


           GetIni( cIniCalc, "Lang", "Language",  )

   return nil




 function SavePreferences()



   DEFAULT nLanguage := FWSetLanguage()


      SetIni( cIniCalc, "Lang", "Language", nLanguage  )

return nil

//fron fwdbu source
function Preferences()

   local oDlgPref

   DEFINE DIALOG oDlgPref TITLE FWString( "Preferences" ) SIZE 400, 300



   @ 4.6, 1.5 SAY FWString( "Language" ) OF oDlgPref

   DEFAULT nLanguage := FWSetLanguage()

   @ 6, 1.2 COMBOBOX nLanguage ;
      ITEMS { FWString( "English" ), FWString( "Spanish" ), FWString( "French" ),;
              FWString( "Portuguese" ), FWString( "German" ) , FWString( "Italian" ) } ;
      OF oDlgPref SIZE 180, 150 ;
      ON CHANGE ( FWSetLanguage( nLanguage ), oDlgtest:SetMenu( BuildMenu() )  )

   @ 7, 7 BUTTON FWString( "&Ok" ) OF oDlgPref SIZE 45, 13 ;
      ACTION ( SavePreferences(), oDlgPref:End() )

   @ 7, 18 BUTTON FWString( "&Cancel" ) OF oDlgPref SIZE 45, 13 ACTION oDlgPref:End()

   ACTIVATE DIALOG oDlgPref CENTERED

return nil










 Function BuildMenu()
            Local oMenu


       

MENU oMenu


   MENUITEM  fwstring("Visualizza")
         MENU
           MENUITEM fwstring("Nastro Operazioni")  ACTION NIL
         ENDMENU



   MENUITEM "&?"
       MENU
        MENUITEM  fwstring("Aiuto") ACTION HelpIndex()
        SEPARATOR
        MENUITEM fwstring("Opzioni")  ACTION  NIL

         MENUITEM fwstring("Preferenze")  Action NIL

         SEPARATOR
        MENUITEM fwstring("Autori")  ACTION  NIL
        ENDMENU

  ENDMENU
  RETURN (oMenu)




 STATIC FUNCTION SetIni( cIni, cSection, cEntry, xVar )

   LOCAL oIni

  // DEFAULT cIni := oApp:cIniFile

   INI oIni FILE cIni
      SET SECTION cSection ;
         ENTRY cEntry      ;
         TO xVar           ;
         OF oIni
   ENDINI

RETURN nil

//------------------------------------------------------------------//

STATIC FUNCTION GetIni( cIni, cSection, cEntry, xDefault )

   LOCAL oIni
   LOCAL xVar := xDefault

   //DEFAULT cIni := oApp:cIniFile

   INI oIni FILE cIni
      GET xVar            ;
         SECTION cSection ;
         ENTRY cEntry     ;
         DEFAULT xDefault ;
         OF oIni
   ENDINI

   RETURN xVar
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: To Antonio and all ..Change a language with fwstring
Posted: Mon Nov 10, 2014 05:52 AM

Silvio,

If you mean how to change the language of the pulldown menu, you have to :End() it and rebuild it.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 7317
Joined: Thu Oct 18, 2012 07:17 PM
Re: To Antonio and all ..Change a language with fwstring
Posted: Mon Nov 10, 2014 07:34 AM

I must close the dialog odlgTest and rebuild it ?
I not understood

Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: To Antonio and all ..Change a language with fwstring
Posted: Mon Nov 10, 2014 02:42 PM

To change the language of a menu, you have to destroy it (:End()) and then rebuild it again.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 7317
Joined: Thu Oct 18, 2012 07:17 PM
Re: To Antonio and all ..Change a language with fwstring
Posted: Mon Nov 10, 2014 06:34 PM

and all buttons ?

Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com

Continue the discussion