Pessoal, estou tendo que internacionalizar o meu software, no caso disponibilizá-lo em vários idiomas… Até aí tudo bem, o único problema seria em fazer uma opção que alterasse os textos de todos os componentes quando o usuário selecionar um diferente do padrão de uma JComboBox, por exemplo? Como eu poderia fazê-lo? Estou usando arquivos .properties pra armazenar as traduções…
Atualizar textos de componentes Swing
4 Respostas
Eu sei disso, aliás, estou utilizando ResourceBundle pra facilitar… A minha dúvida é, ao iniciar a aplicação ele vai escolher os textos padrões conforme o idioma atual do usuário, mas eu ainda disponibilizarei uma combo pra poder trocar o idioma, no caso um usuário brasileiro nos estados unidos… o q eu quero fazer é ao clicar por ex, no OK da dialog, o texto de todos os componentes serem atualizados pro novo idioma
Sim, o problema nao eh definir o inicial e sim atualizar toda as telas
vc faz um esquema de identificar um Locale a partir do selecionado no Combo…
Dai vc varre o arquivo .properties que termine com o locale que vc escolheu…
Por exemplo: application_en_US.properties
Procura a chave que você quer e captura a string que vem depois do IGUAL…
Daí é soh vc fazer componente.setText(newString);
Não sei se deu pra entender direito… Mas o esquema é identificar o idioma por um Locale
kra… eu não sei como vc implementou suas telas…
Mas o que eu costumo fazer é:
no meu método de cada tela, eu chamo um método setLanguageText(Locale)
que irá atrubuir todos os rótulos de todos os componentes daquela tela conforme o locale e o .properties que eu coloco…