corner imagecorner image
IDEPlatformPluginsDocs & SupportCommunityPartners

Internacionalizando um formulário de GUI

O tutorial a seguir o conduz através de algumas das etapas básicas da internacionalização no NetBeans IDE. Nós iremos configurar a internacionalização de um formulário e depois criar esse formulário. Em seguida, internacionalizaremos todo o projeto, que contém vários formulários em alguns pacotes diferentes. Você pode internacionalizar aplicativos especificando a internacionalização automática ou usando um assistente especial.

Duração esperada: 30 minutos

Conteúdo

O conteúdo desta página se aplica ao NetBeans IDE 6.9 e 7.0

Para concluir este tutorial, você precisa dos seguintes recursos e softwares.

Software ou recurso Versão necessária
NetBeans IDE versão 6.5, 6.1 ou 6.0
Java Development Kit (JDK) versão 6 ou
versão 5

Princípio da internacionalização

A internacionalização permite que aplicações sejam adaptadas a vários idiomas e regiões sem exigir alterações de engenharia ou recompilação. Programas de internacionalização permitem que elementos textuais, como mensagens de status e rótulos de componentes de GUI, sejam armazenados fora do código-fonte e recuperados dinamicamente, em vez de codificados no programa.

Geralmente, as strings internacionalizadas são armazenadas em arquivos de propriedades, na forma de pares chave/valor. A chave é o identificador usado pelo programa para recuperar o texto e o valor é o texto em si. Crie um arquivo de propriedades para cada local (ou idioma) para o qual o programa for traduzido. As chaves são as mesmas em cada local, somente as strings são diferentes.

O IDE fornece ferramentas para realizar as seguintes tarefas:

  • Inserir strings internacionalizadas à medida que você cria um formulário GUI ou programa JAVA
  • Substituir todas as strings codificadas em um arquivo individual ou grupo de arquivos por strings internacionalizadas

Internacionalizando um formulário de GUI em tempo de design

Neste exercício, abriremos o projeto do aplicativo Java de demonstração, que contém uma caixa de diálogo Localizar bastante conhecida criada com o Construtor de GUI. Em seguida, ativaremos a internacionalização automática para o formulário FindDialog.java. Para testar o formulário de GUI internacionalizado, nós adicionaremos um novo local ao arquivo de propriedades e executaremos o formulário no local que não é o padrão.

Abrindo o projeto de exemplo

  1. Baixe e descompacte o projeto InternationalizeDemo.zip em qualquer lugar no computador.
  2. Escolha Arquivo > Abrir projeto (Ctrl-Shift-O), navegue para o projeto InternationalizeDemo extraído na última etapa e clique em Abrir. A pasta do projeto pode estar em uma outra pasta também chamada InternationalizeDemo.
  3. Expanda Pacotes de códigos-fonte > Demonstração e clique duas vezes em FindDialog.java. O formulário de exemplo é aberto no Construtor de GUI.

    Caixa de diálogo Localizar

    Para exibir uma demonstração de como criar este formulário de GUI, clique em Exibir demonstração.

Ativar a internacionalização automática

  1. Selecione o nó raiz na janela Inspetor (chamado Formulário FindDialog).

  2. Na janela Propriedades, marque a caixa de verificação na propriedade Automatic Internationalization On.

    Se a caixa de verificação estiver marcada, o IDE cria o arquivo Bundle.properties no pacote demo conforme está definido na propriedade Properties Bundle File. Se você precisar que este arquivo fique em um local diferente, poderá clicar no botão de reticências (...) e escolher um local ou digitar diretamente o caminho no campo de texto da propriedade.

  3. Na janela Projetos, clique duas vezes no nó Bundle.properties na janela Projetos ou clique com o botão direito do mouse no nó e escolha Editar.

    O arquivo de propriedades é aberto no Editor de código-fonte. Como você pode ver, todas as chaves e os valores apropriados para o formulário FindDialog.java são gerados. (O nome de cada chave é derivado do nome do arquivo de formulário e do nome de variável do componente). Por exemplo, a chave FindDialog.jLabel1.text é gerada para um componente com o nome de variável jLabel1 colocado no arquivo de formulário FindDialog. O valor jLabel1 representa a propriedade Text do componente neste exemplo.

Internacionalizando componentes GUI individuais

Nós agora utilizaremos o Construtor de GUI para inserir strings internacionalizadas para os JLabels e os JButtons no formulário.

  1. Selecione o componente GUI apropriado (por ex. jLabel1) na área de Design.
  2. Na janela Propriedades, clique no botão de reticências (...) da propriedade Text. Observe que você também pode internacionalizar outras propriedades que possuam valor de string, como Mnemonic, Accessible Name, Accessible Descriptor e ToolTip.
  3. O editor de propriedade é alternado para o modo de conjunto de recursos. Verifique se o campo Nome do conjunto está definido como demo.Bundle e se o campo chave contém a string FindDialog.jLabel1.text
  4. Digite Localizar o que: no campo Valor.
  5. Clique em OK.

Repita as etapas anteriores para todos os componentes para que o formulário tenha a aparência semelhante à figura a seguir:

formulário internacionalizado

Para exibir uma demonstração da internacionalização de jLabel1, clique em Exibir demonstração

Observação: as etapas de 1 a 5 podem ser realizadas de uma maneira mais simples e rápida. Clique duas vezes em jLabel1 no Modo de design, altere o texto de jLabel1 para Localizar o que: e pressione Enter. O resultado é o mesmo das etapas mencionadas acima.

Adicionando um novo local

  1. Selecione o nó raiz na janela Inspetor (o nó do Formulário FindDialog).
  2. Na janela Propriedades, clique no botão de reticências (...) da propriedade Design Locale.
  3. Insira ES no campo Código do país.
  4. Clique em OK.

    O novo local aparece abaixo do nó Propriedades do pacote, como mostrado abaixo:

    Arquivo de propriedades com vários locais

  5. Na janela Projetos, clique com o botão direito do mouse em Bundle.properties e escolha Abrir.
  6. Traduza mensagens individuais na coluna correspondente da tabela para o novo idioma (por ex., espanhol), como mostrado abaixo:

    Editor de propriedades com vários locais

  7. Clique com o botão direito do mouse no nó raiz na janela Inspetor e escolha Recarregar formulário (ou pressione Ctrl-R). O formulário é reaberto e o local Espanhol é carregado no design, como mostrado abaixo:

    Área do design mostrando mensagens em espanhol

Você pode ver estes recursos em funcionamento nesta demonstração em Flash (embora ela não corresponda exatamente a esse tutorial).

Testando um local não padrão

  1. Na janela Projetos, clique com o botão direito do mouse no projeto InternationalizeDemo e escolha Propriedades.
  2. No painel Categorias, selecione o nó Executar.
  3. Insira -Duser.language=es -Duser.country=ES no campo Opções VM.

    caixa de diálogo propriedades

  4. Clique em OK
  5. Clique com o botão direito do mouse no nó do projeto InternationalizeDemo e escolha Executar projeto.

    O IDE executa a caixa de diálogo Localizar no local Espanhol.

Internacionalizando um projeto inteiro

Em geral, nós temos vários arquivos no local padrão e somos solicitados a adaptá-los para que sejam traduzidos em outros idiomas. O Assistente de internacionalização é a ferramenta perfeita para esta tarefa, pois ele pode internacionalizar vários arquivos de uma vez. Nós mostraremos este recurso no projeto de exemplos de formulários de GUI , que contém o formulário criado no tutorial Criando um GUI Swing.

Criando um projeto de exemplo

  1. Escolha Arquivo > Novo projeto ou clique no ícone Novo projeto na barra de ferramentas do IDE.
  2. No painel Categorias, selecione o nó Exemplos > Java. No painel Projetos, selecione Exemplos de formulários de GUI. Clique em Próximo.
  3. Insira GUIFormExamples no campo Nome do projeto e especifique o local do projeto (por ex., /space/projects).
  4. Deixe desmarcada a caixa de verificação Usar pasta dedicada para armazenar bibliotecas. (Se você estiver usando o NetBeans IDE 6.0, essa opção não está disponível.)
  5. Verifique se a caixa de verificação Definir como projeto principal está selecionada.
  6. Clique em Terminar.

Projeto de formulário de exemplo

Preparando um arquivo de propriedades

  1. Escolha Arquivo > Novo arquivo ou clique no ícone Novo arquivo na barra de ferramentas do IDE.
  2. No painel Categorias, selecione o nó Outros e, no painel Tipos de arquivos, escolha Arquivo de propriedades. Clique em Próximo.
  3. Insira ContactEditor no campo Nome do arquivo e especifique a pasta src/examples como o local do arquivo.
  4. Clique em Terminar.

    O IDE cria o arquivo ContactEditor.properties e abre o arquivo ContactEditor (idioma padrão) no Editor de código-fonte.

    Repita as etapas anteriores para criar outro arquivo Antenna.properties.

projeto com arquivos de propriedades

Chamando o Assistente de internacionalização

  1. Na janela Projetos, clique com o botão direito do mouse no nó Pacotes de códigos-fonte e escolha Ferramentas > Internacionalização > Assistente de internacionalização.
  2. Para fins de demonstração, selecione Find.java e clique no botão Remover código(s)-fonte.

    Assistente de internacionalização

  3. Clique em Próximo.
  4. Verifique se o Assistente de internacionalização oferece os arquivos de propriedades corretos examples.Antenna e examples.ContactEditor. Caso não ofereça, use o botão Selecionar recurso para escolher o arquivo de propriedades correto.

    Página 2 do Assistente de internacionalização

  5. Clique em Próximo.
  6. Todas as strings codificadas são exibidas na última etapa do Assistente de internacionalização e é possível decidir quais delas virão do arquivo de propriedades (use a caixa de verificação). Você pode personalizar ainda mais comentários, valores, chaves individuais e o formato de strings substituídas clicando no botão de reticências (...) de uma string.

    Página 3 do Assistente de internacionalização

  7. Clique em Terminar.

    Agora, que a internacionalização do código-fonte está concluída, outro local pode ser adicionado e testado, como mostrado anteriormente.

Internacionalizando um único formulário

Usar os recursos automáticos do I18n é a maneira mais fácil de internacionalizar um formulário de GUI. Mas se você não tiver o pacote de atualização instalado, ou se também desejar internacionalizar o código não gerado pelo Editor de formulário, então a maneira mais adequada é usar a janela Internacionalizar. (Este recurso funciona com qualquer arquivo .java, não apenas com os arquivos criados com o Editor de formulário). O próximo exemplo usa a janela Internacionalização, que faz parte da instalação padrão do Netbeans IDE 5.5.

Neste último exercício, nós reutilizaremos o projeto de exemplos de formulários de GUI e internacionalizaremos o formulário Find.java, que foi excluído no exercício anterior. Nós chamaremos a caixa de diálogo Internacionalizar para substituir todas as strings codificadas neste arquivo. Finalmente, percorreremos uma curta demonstração de como inserir uma string internacionalizada no código-fonte ao escrever um programa.

Usando a caixa de diálogo Internacionalizar

  1. Na janela Projetos, clique com o botão direito do mouse em Find.java e escolha Ferramentas > Internacionalização > Internacionalizar.

    O IDE mostra a caixa de diálogo Internacionalização e faz um preenchimento prévio da primeira string codificada do código-fonte Find.java.

  2. Clique em Procurar para selecionar um arquivo de propriedades em particular ou criar um novo (por ex., Find.properties).
  3. Você pode modificar o formato da string substituída, a chave, o valor ou o comentário, se necessário. Nós manteremos os valores padrão.
  4. Clique em Substituir para confirmar a alteração e mover um foco na próxima string codificada.

    Se uma string codificada não precisar ser substituída, clique no botão Ignorar.

    Caixa de diálogo Internacionalizar

    Para exibir uma demonstração do uso da caixa de diálogo Internacionalizar, clique em Exibir demonstração

Inserindo uma string internacionalizada

  1. Na janela Projetos, clique com o botão direito do mouse em Find.java e escolha Editar.

    O IDE abre o arquivo Find.java no Editor de código-fonte.

  2. Role através do código-fonte e localize o método principal.
  3. Insira a seguinte linha em negrito no método principal:
        public static void main(String args[]) {
            System.out.println();
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new Find().setVisible(true);
                }
            });
                   }
  4. Pressione Ctrl-Shift-J para chamar a caixa de diálogo String internacionalizada.
  5. Para Nome do pacote, clique no botão Novo, selecione a pasta Pacotes de código-fonte > Exemplos e insira Find como o nome do Pacote. Depois clique em OK. O campo Nome do pacote mostra examples.Find.
  6. Digite Iniciar na caixa suspensa Chave e Iniciar caixa de diálogo Localizar no campo Valor. Depois clique em OK.

  7. O IDE insere uma string internacionalizada:
        public static void main(String args[]) {
            System.out.println(java.util.ResourceBundle.getBundle("examples/Find").getString("Start"));
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new Find().setVisible(true);
                    }
                });
                   }

    Para exibir uma demonstração de como inserir uma string internacionalizada, clique em Exibir demonstração

Tópicos relacionados

Para obter mais informações, consulte os seguintes links: