Swing multilíngue

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