Escolhendo idioma para aplicação

9 respostas
R

Olá amigos desenvolvo em php e estou migrando para o java e gostaria de uma ajuda de vcs… vamos lá

Tenho uma aplicação pequena que estou desenvolvendo apenas para aprender a linguagem, gostaria de saber como faço para quando uma pessoa selecionar o idioma ingles ele traduza a aplicação toda?

Em php faço uma classe para setar os valores dos textos… seria o mesmo em java, porém da erro quando chamo as variaveis dis que não existe.

me ajudem ai. valeuuu

9 Respostas

Foxlol

Procure sobre Internacionalização (i18n).

[]'s

R

Foxlol:
Procure sobre Internacionalização (i18n).

[]'s

import java.util.*;   
import java.text.*;   

    
public class ProcessaIdioma {   
  static public void main(String[] args) {   
    
     Locale currentLocale;   
     //ResourceBundle labels;
    
     String language;   
     String country;   
    
     if (args.length != 2) {   
       language = new String("en");   
       country = new String("US");   
     } else {   
       language = new String(args[0]);   
       country = new String(args[1]);   
     }   
    
     currentLocale = new Locale(language, country);   
    
     ResourceBundle labels =   
       ResourceBundle.getBundle("MessagesBundle", currentLocale);   
     Enumeration bundleKeys = labels.getKeys();   
    
     while (bundleKeys.hasMoreElements()) {   
       String key = (String) bundleKeys.nextElement();   
       String value = labels.getString(key);   
       System.out.println(key + " = " + value);   
     }   
   }   
 }   

da dando esse erro:

Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name MessagesBundle, locale en_US
        at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1521)
        at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1260)
        at java.util.ResourceBundle.getBundle(ResourceBundle.java:787)
        at javaapplication9.ProcessaIdioma.main(ProcessaIdioma.java:31)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)
Foxlol

O arquivo MessagesBundle.properties tem que estar disponível para a aplicação.

Coloque-o no src.

[]'s

R

o cara valeu funcionou aqui consegui e desculpa encomodar vc ai mas só mais uma duvida…

tipo tenho uma tela principal com um menu e tal ai seleciono o idioma na tela principal ele funciona belza mas quando clico no menu tela 2 por exemplo ele não muda o idioma altomatico da tela 2, quando eu chamar a tela la onde coloco tela2.setVisible(true) tenho que passar por parametro o location etc… é isso setando todas as proximas variaveis ou não ajauda ai por favor…

Obrigado kra.

pedroroxd

Como que eu uso isso em um programa?

Foxlol

Ronielcsilva: A não ser que você tenha necessidade de internacionalizar as telas separadamentes, dê preferência mantenha uma única instância do ResourceBundle para toda aplicação, dê modo que de qualquer ponto da aplicação que você a modificar afeta o restante.

pedroroxd: Segue alguns links:

http://blog.caelum.com.br/2007/10/02/internacionalizacao-no-codigo-java/

http://blog.caelum.com.br/2007/08/13/i18n-internacionalizacao-com-jstl/

[]'s

R

ooo meu amigo dessa vez eu penei aqui rsrsrr fui no link http://blog.caelum.com.br/2007/10/02/internacionalizacao-no-codigo-java/
é isso mesmo que eu preciso.

“dê preferência mantenha uma única instância do ResourceBundle para toda aplicação, dê modo que de qualquer ponto da aplicação que você a modificar afeta o restante.”, mas como mantenho uma única instância do ResourceBundle para toda aplicação? é isso que não estou conseguindo…

desculpa kra sei que é pedir muito mas me passa ai só um exemplo minusculo só pra eu entender rsrsr, valeu amigo ta ajudando muito em valeuuu

Foxlol

Você pode criar uma classe para cuidar dos assuntos de i18n.

Deixe toda lógica de i18n nessa classe e crie tudo estaticamente.

Nela vc tem todos os métodos que vc precisa e uma variável de instancia do ResourceBundle estática.

Em todo lugar que precisar de i18n vc usa através dessa classe, acessando os métodos estáticos.

[]'s

R

beleza vo tentar aqui ai te falo valeuuuuu…

Criado 5 de outubro de 2009
Ultima resposta 6 de out. de 2009
Respostas 9
Participantes 3