Pessoal, eu tenho que fazer uma aplicação Swing Multilíngue. Eu gostaria de umas dicas para saber por onde começar!!
O que seria Multilíngue?
Queria ter varias línguas, inglês, português, Espanhol, etc.
Foi o que imaginei, bem isso é bemm simples mesmo.
Defina, qual idioma o usuario vai usar na hora de abrir a aplicação. Entendeu?
Edite:
Pessa para o usuario escolher, antes de abrir a aplicação completa.
Sim, isto eu vi, parece que tem algo como locale.
Porém gostaria de saber de que forma posso guardar os textos a serem mostrados ao usuaio, eu terei que fazer um arquivo texto e trabalhar com ele ou tem algo mais correto e otimizado em java para isto?
Cara eu tenho uma aki simples e não precisa de ser algo massante.
Essa janela faz algo simples, mas que rege toda a aplicação, esses botões guardam o idioma desejado e abrem a aplicação nele.
Simples. Toda String e texto na aplicação é definida como null e então quando a aplicação é inicializada um bloco if/else e então sai preenchendo as Strings com o idioma.
veja um exemplo.
http://img211.imageshack.us/img211/8669/bc0f71558819496fa423550.png
Legal a idéia. Mas para uma aplicação grande isto pode se tornar um problema. Pois terá muitas telas e tals… mais como a minha aplicação é pequena vou fazer assim.
Muito obrigado!!
O exemplo não apareceu… vamos ver se aparece.
Se for varios idiomas, use um JComboBox
Caso a aplicação precise de um novo idioma a unica coisa que vai precisar fazer é mais uma clausula elseif e pronto vai rodar normal com mais um idioma.
[quote=Ziru]O exemplo não apareceu… vamos ver se aparece.
[/quote]
Nesse caso seria interessante usar a classe Properties.
Properties props = new Properties();
try {
props.load( new FileInputStream("\idiomas\" + Idiomas.getIdiomas + ".properties") );
this.raca = props.getProperty("RACA"));
this.nod = props.getProperty("NOMAD"));
...
} catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
Sem precisar de usar um IF para cada idioma
eu prefiro usar um arquivo de idioma. txt…xml…
e um arquivo config que vai definir qual é o idioma padrão. (você ja deve estar usando algo)
a aplicação irá solicitar o idioma somente na 1º abertura e gravar na config, deve ter uma opção para alterar em algum local da aplicação,
fazendo dessa forma eu poderia Carregar o Arquivo de idioma passando o idioma que esta no arquivo config…no construtor de um jframe e não precisaria alterar nada…
a unica alteração seria que todas as jlabels, mensagens, avisos, exceções pegariam o texto do xml do idioma
PRÓS:
- você pode enviar o arquivo xml de idioma para alguem e pedir para qualquer pessoa traduzir…
- Idiomas ilimitados
- separação de responsabilidades.
- muitos.
- você pode ter um formulário para gerar esses arquivos de idiomas.
CONTRAS:
- não consigo ver, mas deve ter.
Google: java swing i18n
Primeiro resultado: http://www.java2s.com/Tutorial/Java/0220__I18N/AnInternationalizedSwingApplication.htm