Caso eu tivesse colocado Ingles seria traduzido automaticamente esta palavra “Testando” por outra no banco de dados, cada palavra terá uma traducao para uma lingua no BD, a minha questão é:
Eu tenho que carregar isso todas as paginas todas as vezes!!!Isso pode ser muito custoso ao BD, tem como eu armazenar isso a primeira vez que o sistema abre com um Singleton e depois pesquisar neste objeto? se sim, como faço?
dê uma olhada nas internacionalizações do JSF por exemplo…as mensagens ficam em vários arquivos .properties…e dependendo da versão(pt-BR,us-EN) do seu browser é carregado um tipo de arquivo diferente.
Thiago_Ananias
Blz… mas deste jeito posso aplicar regras de texto…e trocar coisas textos especificos por outros…vou dar uma olhada neste lance de internacionalizacao
B
brunofos
Thiago,
Eu tive um problema no qual eu precisava pegar mensagens do banco de dados para eu usar no programa diversas vezes.
Para resolver o problema de performance eu optei por criar uma classe que comunica com o banco e armazena as mensagens numa hashtable, feito isso depois eu pego as mensagens direto da hashtable e nessa classe tem um metodo reload caso vc queira atualizar essa Hash(no seu caso com um novo idioma).
Espero ter ajudado!
Abraço,
Bruno
Giulliano
sim…existe por exemplo o arquivo messages.properties (contem várias mensagens em inglês) e existe o arquivo messages.properties_br (contem várias mensagens em português)
Para usar as mensagens vc usa Keys. ficaria assim:
Muito obrigado pelas respostas, fizeram eu pensar bastante!!!
OK! Eu entendi como funciona o Resource Bundle! massssss imaginem isso em um sistema Graaannde, todos os textos tem que ter uma referencia certo?
messages_pt_BR.properties
welcome=Bem vindo no Brasil
messages_de_DE.properties
welcome=Hallo in Deutschland
messages.properties
welcome=Welcome in default
logout=Leaving default
Agora imaginem 200 paginas, quantas referencias não irão existir!! Quem é que vai entender um código cheio de referencias (neste caso "welcome", "Logout")!!
Do jeito que eu estou propondo será mais claro o entendimento:
objeto.tx("Mensagem que será traduzida");
Além de ser possível aplicar regras de texto em cima, por exemplo, posso trocar em todos os textos na lingua portuguesa a palavra "Thiago" por "Ananias" tranquilamente.
o que vcs acham?
[]s
Thiago_Ananias
Ninguem
Então pessoal…só para frisar, não importa que eu vou reinventar a roda, eu quero fazer algo BOM! o melhor possível!! Eu quero que deem suas opnioes, falem que minha ideia é ruim, motivos, queria saber quais são os pós e contras destas duas soluções abordadas aki, se alguem tiver outra solução será muito bem vinda!!
Outra vantagem da minha porposta é que os cadastros, podem ter as linguas tb, eu posso habilitar mais de um INPUT para digitar a versao portugues e ingles por exemplo!!
Obrigado!
[]s.
xandroalmeida
Traduzir um texto de forma automática é algo beeeem mais complexa.
Subsitituir as palavras de uma frase pela sua tradução não vai dar certo.
Thiago_Ananias
Mas aqui na empresa isso esta feito em .NET!!! o que vai ser traduzido não são as palavras mas sim as frases!!!
Thiago_Ananias
OK pessoal, depois de tanta questionação sobre como fazer a internacionalização (Que achei super válido!!!), eu vou fazer do jeito que foi porposto por mim no início pelo código ser de mais fácil manutenção.
Volto a minha pergunta inicial, qual o melhor o objeto para eu armazenar um Array de Strings para poder pesquisar dentro dele? fazendo pelo BD seria facil, mas custoso para o Server, eu já sei a estratégia a ser utilizada, mas preciso de um objeto que armazene estes dados para mim, alguem tem uma sugestão ae?