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.
[quote=Foxlol]Procure sobre Internacionalização (i18n).
[]'s[/quote]
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)
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…
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.
“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