olá. como faço para traduzir um aplicativo para o português? eu comecei mudando as coisas no códifgo mesmo, mas acho que essa forma tá errada. qual a melhor forma de fazer isso? usando arquivos tipo “.lng”? e como posso usar esses arquivos com o programa?
obrigado.
tb pode ser
ou intercionalizar
como faz pra internacionalizar?
li um artigo em que o cara “internacionalizava” um aplicativo feito em C. para isso ele marcava qualquer mensagem do programa que poderia ser traduzida com algo tipo um glag.
mas como fazer isso em java? imagino que seja algo parecido. que eu tenha que usar uma anotation, sei lah.
Olá!
A linguagem Java está “recheada” de recursos para internacionalização. Tem arquivo de mensagens, formatação de números e datas automaticamente de acordo com o local, etc etc.
Pesquise no google sobre:
java internacionalização
ou
java internationalization (vem um capítulo do JAVA TUTORIAL que é excelente)
Não sei se é o mais viavel mas voce pode criar um arquivo .properties e gravar todas as mensagens lá.
Tipo:
tela6.titulo=Titulo da Janela
tela6.campo1=Descricao
E na hora de construir no lugar que voce passa a String literalmente pegue desse arquivo a mensagem.
Mas voce que fara esse “mapeamento” de arquivo para tela então o que voce buscar para colocar no campo tem que estar no arquivo.
Um exemplo:
MensagensProps p = new MensagensProps(arquivoComOMapeamento);
janela.setTitle(p.getMensagem("tela6.titulo"));
campoDescricao.setText(p.getMensagem("tela6.campo1");
Assim para mudar a lingua voce apenas precisaria de outro arquivo properties como esse:
tela6.titulo=Window Title
tela6.campo1=Description
tou tentando ler sobre internacionalização no the java tutorisl.
obrigado pelas respostas pessoal, qualquer dúvida eu posso contar com vocês.
olá. infelizmente nao tou conseguindo nada. coloquei as seguintes linhas no código:
Locale locale = new Locale("pt", "BR");
ResourceBundle messages = ResourceBundle.getBundle("Language", locale);
e criei os arquivos “Language_pt_BR.properties” e “Language.properties” no diretorio raiz do programa.
mas deu a seguinte excessao:
Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name Language, locale pt_BR
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1521)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1260)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:787)
...
o que devo fazer? o pior é que fiz isso em em uma classe sem ser do programa, só pra testar. e deu certo. mas no programa nao dá certo. o que vocês acham que pode ser?
Que eu saiba a única exigência é que o arquivo esteja em algum lugar do Classpath, dê uma conferida nisso.
Veja se não está no diretório de algum pacote ou se não está apenas no diretório “src” (precisa estar no local onde são gerados os .class).
olá gomesrod. agora deu certo. mas vi no eclipse um recurso chamado “externalizar estrings”.
ele é confiável? pois seria muito mais fácil eu usá-lo.
obrigado.
bom acho que a melhor pergunta é o seguinte: se eu externalizar todas as strings com o eclipse, com certeza muitas delas eu nao vou precisar traduzir.
tem algum problema em externalizar todas as strings? o programa terá problema de performance? porque é muito código e eu prefiro fazer tudo automático.
obrigado.