MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido] Aplicação em vários idiomas

    Gabriel Brunichaki
    Gabriel Brunichaki
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 138
    Registrado : 11/12/2015

    [Resolvido] Aplicação em vários idiomas Empty [Resolvido] Aplicação em vários idiomas

    Mensagem  Gabriel Brunichaki 25/1/2016, 13:58

    Bom dia, amigos.

    Minha aplicação precisa ter a opção de no mínimo 4 idiomas disponíveis (português, inglês, alemão e espanhol).
    Pois bem, a tradução do programa eu consegui fazer setando um número para cada idioma, conforme abaixo:

    1 - Alemão
    2 - Inglês
    3 - Espanhol
    4 - Português

    O usuário escolhe o idioma desejado através de uma combobox e o número armazenado. Criei um módulo chamado MDL_TRANSLATE onde há uma função que retorna o número do idioma e um procedimento sub que faz a tradução com o select case. Vejam o módulo abaixo:

    Option Compare Database
    Option Explicit

    Public strBemVindo As String
    Public strUsuario As String
    Public strSenha As String
    Public strBtnLogin As String
    Public strBtnSair As String

    Function RetornarIdioma() As Integer

       'Cria uma conexão
       Dim conexao As New Connection
       'Estabelece uma conexão com este bd
       Set conexao = CurrentProject.Connection
       
       'Instrução SQL para pegar o idioma atual
       Dim sqlSelect As String
       sqlSelect = "SELECT SPRACH_NR FROM AUSWAHL_SPRACHE"

       'Cria um RecordSet
       Dim rs As New Recordset
       'Abre o Recordset utilizando a conexão ativa e insere o resultado SQL
       rs.Open sqlSelect, conexao
       
       'Retorna o número do idioma configurado
       RetornarIdioma = rs!SPRACH_NR
       
       'Fecha a conexão e limpa a memória
       rs.Close
       Set rs = Nothing
       
       conexao.Close
       Set conexao = Nothing

    End Function

    Sub Traduzir()
       
       Select Case RetornarIdioma
           Case 1
               'Alemão
           Case 2
               'Inglês
               strBemVindo = "Welcome to Program"
               strUsuario = "User"
               strSenha = "Password"
               strBtnLogin = "Login"
               strBtnSair = "Exit"
           Case 3
               'Espanhol
           Case 4
               strBemVindo = "Bem-vindo(a) ao Programa"
               strUsuario = "Usuário"
               strSenha = "Senha"
               strBtnLogin = "Entrar"
               strBtnSair = "Sair"
       End Select
       
    End Sub

    ---------------------------------

    Feito isso, chamo o procedimento em todos os formulários. Um exemplo com o formulário de login:

    Private Sub Form_Open(Cancel As Integer)
       
       'Seta o foco para um campo invisível
       Me.txtFoco.SetFocus
       
       Call Traduzir
       
       Me.rtlBemVindo.Caption = strBemVindo
       Me.rtlUsuario.Caption = strUsuario
       Me.rtlSenha.Caption = strSenha
       Me.btnLogin.Caption = strBtnLogin
       Me.btnSair.Caption = strBtnSair
       
    End Sub


    -----------------------------

    Ok. Funciona perfeitamente. A questão é que após a tradução completa para os 4 idiomas, o select case vai ficar enorme, pois seria uma tradução universal, ou seja, de todos os formulários e relatórios. Gostaria de saber: é mais eficiente deste modo mesmo que estou fazendo, ou devo fazer o select case separado em cada formulário? Optei pelo módulo pois há muitos termos que se repetem em formulários diferentes...

    Conto com a experiência de vocês!!
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido] Aplicação em vários idiomas Empty Re: [Resolvido] Aplicação em vários idiomas

    Mensagem  Alvaro Teixeira 25/1/2016, 14:02

    Olá Gabriel Brunichaki,
    Veja este excelente artigo do Mestre Avelino.
    Tem exemplo para download, acho que resolve o pretendido.
    Abraço
    Gabriel Brunichaki
    Gabriel Brunichaki
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 138
    Registrado : 11/12/2015

    [Resolvido] Aplicação em vários idiomas Empty Re: [Resolvido] Aplicação em vários idiomas

    Mensagem  Gabriel Brunichaki 25/1/2016, 15:57

    Opa! Este artigo me orientou bastante, valeu!
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido] Aplicação em vários idiomas Empty Re: [Resolvido] Aplicação em vários idiomas

    Mensagem  Alvaro Teixeira 25/1/2016, 16:22

    Olá Gabriel, que bom que ajudou a dica!
    Obrigado pelo retorno, os utilizadores do fórum agradecem.
    Já sabe com o MaximoAccess é sempre aprender Wink
    Abraço

    Conteúdo patrocinado


    [Resolvido] Aplicação em vários idiomas Empty Re: [Resolvido] Aplicação em vários idiomas

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 08:15