Um modelo para atuar em outros idiomas.
a principio, ele trabalho com as traduções das mensagens internas do sistema.
para os textos referente ao sistema, terei que criar uma base de dados com suas referencias.
Segue o exemplo:
* dá pra melhorar!
Código: Selecionar todos
#include "box.ch"
#include "hblang.ch"
#include "inkey.ch"
// -----------------------------------------------------------------------------
REQUEST HB_LANG_PT_BR // Portugues Brasil *
REQUEST HB_LANG_PT // Portugues
REQUEST HB_LANG_EN // Ingles
REQUEST HB_LANG_ES // Espanhol
// -----------------------------------------------------------------------------
REQUEST HB_CODEPAGE_PTISO // Portugues *
REQUEST HB_CODEPAGE_PT850 // Portugues
REQUEST HB_CODEPAGE_EN // Ingles
REQUEST HB_CODEPAGE_ES850 // Espanhol
// -----------------------------------------------------------------------------
FUNCTION Main()
Set( _SET_DATEFORMAT, "dd/mm/yyyy" )
// 1=Portugues Brasil / 2=Ingles / 3=Espanhol
SelecionaIdioma(1)
cCodigoPagina := hb_cdpSelect()
cDia := CDOW(DATE())
cMes := CMONTH(DATE())
@ 00, 00, 24, 79 box B_SINGLE + space(1)
@ 03, 50 SAY "Codigo de Pagina: " + cCodigoPagina
@ 04, 50 SAY "-- Data --"
@ 05, 50 SAY "Dia: " + cDia
@ 06, 50 SAY "Mes: " + cMes
INKEY(0)
@ 23, 0
RETURN Nil
FUNCTION SelecionaIdioma(nIdioma)
LOCAL aLista
// 1=Portugues Brasil / 2=Ingles / 3=Espanhol
IF (nIdioma == Nil)
nIdioma := 1
ENDIF
@ 00, 00, 24, 79 BOX SPACE(9)
@ 01, 02 SAY "Seleciona o Idioma para o Sistema:"
@ 23, 02 SAY "Pressione ESC para Sair"
aLista := {"Portugues","Ingles","Espanhol"}
nItemIdioma := nIdioma // Padrao para o primeiro item.
WHILE .T.
@ 02, 02, 06, 12 GET nItemIdioma LISTBOX aLista
READ
DO CASE
CASE nItemIdioma == 1
hb_langSelect("pt")
hb_cdpSelect("PT850")
CASE nItemIdioma == 2
hb_langSelect("en")
hb_cdpSelect("EN")
CASE nItemIdioma == 3
hb_langSelect("es")
hb_cdpSelect("ES850")
OTHERWISE
hb_langSelect("pt")
hb_cdpSelect("PT850")
ENDCASE
cDia := CDOW(DATE())
cMes := CMONTH(DATE())
@ 10, 10, 11, 40 BOX SPACE(9)
@ 10, 10 SAY "Dia: " + cDia
@ 11, 10 SAY "Mes: " + cMes
IF LASTKEY() == K_ESC
EXIT
ENDIF
ENDDO
RETURN Nil

