| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/04/2007 05:59:48
|
qwerty
What is classpath?
Membro desde: 18/04/2007 05:55:54
Mensagens: 5
Offline
|
Existe algum padrão de projeto ou metodologia para poder, usando as facildiades de internacionalização do Java, mudar o idioma de uma aplicação em tempo real?
Por exemplo, eu quero colocar um item de menu onde o usuário poderia escolher os idiomas disponíveis e aí a aplicação seria toda traduzida na hora. É possível fazer isso? Alguém tem alguma dica?
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/04/2007 10:47:18
|
caiozanchetti
JavaBaby
![[Avatar]](/images/avatar/075b24b68eb3cb44b3fa4e331d86db89.jpg)
Membro desde: 27/10/2004 00:17:24
Mensagens: 90
Offline
|
Ola, seu sistema é web ou desktop? Se for web, usando struts por exemplo, isso é tranquilamente possível.
|
Claudiomir Zanchetti (Caio)
SCJP 5.0 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/04/2007 10:57:24
|
qwerty
What is classpath?
Membro desde: 18/04/2007 05:55:54
Mensagens: 5
Offline
|
É desktop mesmo, com Swing.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/04/2007 11:37:47
|
caiozanchetti
JavaBaby
![[Avatar]](/images/avatar/075b24b68eb3cb44b3fa4e331d86db89.jpg)
Membro desde: 27/10/2004 00:17:24
Mensagens: 90
Offline
|
Cara, da uma olhada no spring, pq houvi comentários que ele tem um mvc para apps desktop, swing. Ai vc obterá o que precisa.
|
Claudiomir Zanchetti (Caio)
SCJP 5.0 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/04/2007 12:18:29
|
carneiro
JavaEvangelist
![[Avatar]](/images/avatar/18b91b19f6a289e7708da7f778b2c609.jpg)
Membro desde: 07/04/2005 11:37:42
Mensagens: 328
Offline
|
qwerty,
Não sei se tem alguma coisa que facilite isso para Swing. De qualquer forma, o procedimento é simples. Basta você manter os textos em arquivos de propriedades e alterar o arquivo de acordo com um click do usuário.
|
Davi Luan Carneiro
Desenvolvedor JEE |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/04/2007 12:30:21
|
schmidt
JavaChild
![[Avatar]](/images/avatar/33235e3d066bad95b6eea457826f7507.png)
Membro desde: 21/04/2005 11:02:51
Mensagens: 149
Localização: Ctba/PR
Offline
|
carneiro wrote:qwerty,
Não sei se tem alguma coisa que facilite isso para Swing. De qualquer forma, o procedimento é simples. Basta você manter os textos em arquivos de propriedades e alterar o arquivo de acordo com um click do usuário.
Concordo, e mais, procure por i18n.
Flws!
Schmidt
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/04/2007 12:55:21
|
marcelo_mococa
Virtual Machine Man
![[Avatar]](/images/avatar/90248d0a98105fa534cf2b0696ddd12f.jpg)
Membro desde: 03/03/2005 10:03:32
Mensagens: 622
Localização: São Paulo
Offline
|
caiozanchetti wrote:Cara, da uma olhada no spring, pq houvi comentários que ele tem um mvc para apps desktop, swing. Ai vc obterá o que precisa.
o mvc dele é só para web.
|
Marcelo Madeira - TCS
SCJP 1.5
SCWCD 1.4
blog
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/04/2007 13:04:49
|
qwerty
What is classpath?
Membro desde: 18/04/2007 05:55:54
Mensagens: 5
Offline
|
schmidt wrote:
carneiro wrote:qwerty,
Não sei se tem alguma coisa que facilite isso para Swing. De qualquer forma, o procedimento é simples. Basta você manter os textos em arquivos de propriedades e alterar o arquivo de acordo com um click do usuário.
Concordo, e mais, procure por i18n.
Flws!
Schmidt
Eu já andei dando uma olhada no i18n e conheço o esquema de armazenamento em arquivos de propriedades. Mas o problema é que quero fazer a tradução da aplicação em tempo real, ou seja, assim que o usuário selecionar a nova linguagem toda a aplicação (janelas já construídas...) serão traduzidas. Usando o esquema dos properties com ResourceBundles apenas as novas janelas e mensagens seriam alteradas, não?
Eu estou interssado em algo que me facilite o trabalho de recarregar/alterar os textos do componentes que já estão sendo exibidos na tela.
Vou dar uma procurada por Spring.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/04/2007 14:21:00
|
schmidt
JavaChild
![[Avatar]](/images/avatar/33235e3d066bad95b6eea457826f7507.png)
Membro desde: 21/04/2005 11:02:51
Mensagens: 149
Localização: Ctba/PR
Offline
|
qwerty,
Yep, é isso mesmo.
Não posso falar por apps swing. = /
Em projetos web, eu uso isso com JSF, fica muito feroz. De acordo com o idioma do navegador (hj já pre-configurado de acordo com o idioma do local onde se está fazendo o acesso), o site já faz um load no arquivo .properties específico daquele idioma. Dá até pra ficar brincando, trocar o idioma do Firefox e dar F5!
Flws!
Schmidt
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/04/2007 15:08:23
|
carneiro
JavaEvangelist
![[Avatar]](/images/avatar/18b91b19f6a289e7708da7f778b2c609.jpg)
Membro desde: 07/04/2005 11:37:42
Mensagens: 328
Offline
|
qwerty,
Bem, basta você setar novamente os valores... a classe JLabel, por exemplo, tem o setText(String text).
Ou redesenhar a tela, talvez funcione.
|
Davi Luan Carneiro
Desenvolvedor JEE |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/04/2007 15:54:13
|
neohacker
Virtual Machine Man
![[Avatar]](/images/avatar/e5a419ed77a4e034849e1e1b68ba015e.jpg)
Membro desde: 30/10/2006 15:23:14
Mensagens: 576
Localização: Santo André
Offline
|
eu fiz ja isso numa aplicação pra facul...utilizei com arquivos properties e tive o ms problema, mas consegui contornalo, mas me diga vc esta trabalhando em cima do Eclipse?? mais uma pergunta vc utiliza métodos gets para criar os componentes??
|
http//www.tecnologiaims.blogspot.com
↑ Grab this Headline Animator http://www.imstechnology.blogspot.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/04/2007 16:15:53
|
qwerty
What is classpath?
Membro desde: 18/04/2007 05:55:54
Mensagens: 5
Offline
|
Estou trabalhando em cima do Eclipse sim. Como ainda não sei direito como organizar o projeto pra atender essa necessidade ainda não comecei a codificar, então não estou usando métodos gets para criar os componentes.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/04/2007 16:38:56
|
neohacker
Virtual Machine Man
![[Avatar]](/images/avatar/e5a419ed77a4e034849e1e1b68ba015e.jpg)
Membro desde: 30/10/2006 15:23:14
Mensagens: 576
Localização: Santo André
Offline
|
então não sei se vão considerar isso como POG mas...
eu uso dessa forma
este modo funciona mais ou menos assim
quando vc for adicionar este JLabel em algum lugar vc utiliza o método get, pois se vc estiver pela primeira vez chamando o label ele o criará,
se for no momento da troca de idioma ele simplesmente apenas executará o setText com o novo idioma.
bem basicamente seria isso, se isso te ajudar blz, se não continua postando que agente arruma outro jeito.
Obs: como citei não sei se isso é considerado POG, mas ta valendo
|
http//www.tecnologiaims.blogspot.com
↑ Grab this Headline Animator http://www.imstechnology.blogspot.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/04/2007 17:38:33
|
qwerty
What is classpath?
Membro desde: 18/04/2007 05:55:54
Mensagens: 5
Offline
|
Neohacker valeu, eu estava pensando em algo parecido com o que você postou.
Mas como são diversos componentes, (internal frames, com vários labels, buttons, etc...) a grande dificuldade seria como a partir de um um único ponto (um item de menu) sair disparanda/chamando novamente o getLabelText de cada um desses componentes.
Estou pensando então em dotar cada "componente principal" de inteligencia para reescrever os seus textos e de seus subcomponentes. Aí em uma especie de camada de gerencia do idioma eu iria armazenando esses componentes em um pool de componentes. Quando o usuario clicar no botao para trocar a linguagem os componentes do pool vao sendo recuperados um a um e solicitados a se reescreverem.
Acho que vou acabar fazendo assim.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/04/2007 17:51:29
|
neohacker
Virtual Machine Man
![[Avatar]](/images/avatar/e5a419ed77a4e034849e1e1b68ba015e.jpg)
Membro desde: 30/10/2006 15:23:14
Mensagens: 576
Localização: Santo André
Offline
|
então qwerty no meu caso acabou acontecendo um efeito cascata q deu td certo (tem alguns BUGs mas num eh problema ) assim
por exemplo o meu começa num JFrame com setTitle, depois ele começa a criar os menus então por exemplo getMnFile() então ele vai mudar de "File" para "Arquivo", depois ele vai chamar o getMniExit() logo ele mudará o setText para "Sair"... e assim por diante faiz certinho kra...
bem como minha explicação não foi muito boa...(eu msm percebi isso) vou tentar colocar alguns códigos aki de exemplos
espero q vc tenha entendido a lógica, pode ser q se vc precisar alterar isso fique complicado, mas se vc ja ir desenvolvendo assim vc vai ver q acaba ficando mtu fácil, bem eu achei né...
mas dai vc ver o q vai ficar melhor pra vc...
tamo ai se precisar
|
http//www.tecnologiaims.blogspot.com
↑ Grab this Headline Animator http://www.imstechnology.blogspot.com |
|
|
 |
|
|