Internacionalizando um Form de GUI

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

Duração esperada: 30 minutos

Conteúdo

O conteúdo nesta página se aplica para o NetBeans IDE 7.0 ou posterior

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

Software ou Recurso Versão Necessária
NetBeans IDE versão 7.0 ou posterior
JDK (Java Development Kit) versão 6 ou 7

Princípio da Internacionalização

A internacionalização permite que as 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 labels 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 configuração regional (ou idioma) para o qual o programa for traduzido. As chaves são as mesmas em cada configuração regional - somente as strings são diferentes.

O IDE fornece ferramentas para realizar as seguintes tarefas:

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

Internacionalizando um Form de GUI em Tempo de Design

Neste exercício, abriremos o projeto da aplicação Java de demonstração, que contém uma caixa de diálogo Localizar bastante conhecida criada com o GUI Builder. Em seguida, ativaremos a internacionalização automática para o form FindDialog.java. Para testar o form de GUI internacionalizado, adicionaremos uma nova configuração regional ao arquivo de propriedades e executaremos o form em uma configuração regional que não é a default.

Abrindo o Projeto de Exemplo

  1. Faça download e descompacte o projeto InternationalizeDemo.zip em qualquer lugar no computador.
  2. Escolha Arquivo > Abrir Projeto, 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 form de exemplo é aberto no GUI Builder.

    Caixa de Diálogo Localizar

    Para exibir uma demonstração de como criar este form de GUI, clique em Exibir Demonstração.

Ativar a Internacionalização Automática

  1. Selecione o nó-raiz na janela Navegador (chamado Form FindDialog).

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

  3. Clique em Upgrade na caixa de diálogo Upgrade do Formato do Form GUI.

    Se a caixa de seleçã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 o arquivo Bundle.properties fique em outro local, poderá clicar no botão de reticências (...) à direita do Arquivo Conjunto de Propriedades e escolher um local ou digitar diretamente o caminho no campo de texto da propriedade.

  4. 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 form FindDialog.java são gerados. (O nome de cada chave é obtido do nome do arquivo de form 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 form FindDialog. O valor jLabel1 representa a propriedade Text do componente neste exemplo.

  5. Escolha o arquivo Bundle.properties.

Internacionalizando Componentes GUI Individuais

Nós agora utilizaremos o GUI Builder para inserir strings internacionalizadas para os JLabels e os JButtons no form.

  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.

    Observação: você também pode internacionalizar outras propriedades que tenham valor de Strings, como Mnemonic, Accessible Name, Accessible Descriptor e ToolTip.

  3. O editor de propriedade é alternado para o modo de pacote de recursos. Verifique se o campo Nome do Pacote está definido como demo.Bundle e se o campo Chave contém a string FindDialog.jLabel1.text
  4. Digite Localizar: no campo Valor.
  5. Clique em OK.

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

form internacionalizado

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

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

Para fazer com que os componentes tenham a mesma largura, complete as etapas abaixo:

  1. Pressione Ctrl -clique em todos os oito JTextFields do form para selecioná-los.
  2. Com os JCheckBoxes selecionados, clique com o botão direito do mouse em um deles e escolha Definir Mesmo Tamanho > Mesma Largura no menu pop-up.
  3. Aplique as etapas 1-2 para os três jButtons.

Adicionando uma Nova Configuração Regional

  1. Selecione o nó-raiz na janela Navegador (o nó do Form FindDialog).
  2. Na janela Propriedades, clique no botão de reticências (...) da propriedade Design Locale.
  3. Escolha es_ES na caixa de combinação Configurações Regionais Predefinidas:
  4. Clique em OK.

    A nova configuração regional aparece abaixo do nó Bundle.properties, como mostrado abaixo:

    Arquivo de propriedades com várias configurações regionais

  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 exemplo, espanhol), como mostrado abaixo:

    Editor de propriedades com várias configurações regionais

  7. Pressione Ctrl-S para salvar suas edições.
  8. Selecione a guia FindDialog.java para exibir o form que você está internacionalizando.
  9. Clique com o botão direito do mouse no nó raiz na janela Inspetor e escolha Recarregar Form (se preferir, pressione Ctrl-R).
  10. Clique em Salvar na caixa de diálogo Pergunta que é exibida.
    O form é reaberto e a configuração regional Espanhol é carregada no design, como mostrado abaixo:

    Na área de design mostrando mensagens da Espanha

Testando uma Configuração Regional Não Default

  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.

    O IDE executa a caixa de diálogo FindDialog na configuração regional Espanhol, como mostrado abaixo.

    Caixa de diálogo na configuração regional da Espanha

Internacionalizando um Projeto Inteiro

Em geral, nós temos vários arquivos na configuração regional default e precisamos 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 esta funcionalidade no projeto de exemplos de forms de GUI , que contém o form 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 Forms 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. Clique em Finalizar.

Projeto do Form de Amostra

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.
  4. Clique em Procurar e especifique a pasta GUIFormExamples/src/examples como a localização do arquivo na caixa de diálogo Procurar Pastas.
  5. Clique em Selecionar Pasta.
  6. Clique em Finalizar.

    O IDE cria o arquivo ContactEditor.properties e o abre 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. No menu Principal, escolha Ferramentas > Internacionalização > Assistente de Internacionalização.
  2. Na primeira página do Assistente, clique em Adicionar Códigos-fonte.
  3. Na caixa de diálogo Selecionar Códigos-fonte, expanda os nós Pacotes de Código-fonte > exemplos e pressione Ctrl+Clique nos arquivos Antenna.java, ContactEditor.java e Find.java para selecioná-los.
  4. Clique em OK.

    Os arquivos de código-fonte aparecem na primeira página do assistente, como mostrado abaixo:

    Assistente de internacionalização

  5. Para fins de demonstração, selecione examples.Find. e clique no botão Remover Código-fonte.
  6. Clique em Próximo.
  7. 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 de assistente de Internacionalização

  8. Clique em Próximo.
  9. Pule a página 3 do Assistente, pois você não criará quaisquer campos nem modificará valores adicionais, e clique em Próximo.
  10. 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 seleçã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 4 de assistente de Internacionalização

  11. Clique em Finalizar.

    Agora, que a internacionalização do código-fonte está finalizada, outra configuração regional pode ser adicionada e testada, como mostrado anteriormente.

Internacionalizando um Único Form

Usar as funcionalidades automáticas do I18n é a maneira mais fácil de internacionalizar um form 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 form, então a maneira mais adequada é usar a janela Internacionalizar. (Esta funcionalidade funciona com qualquer arquivo .java, não apenas com os arquivos criados com o Editor de Form). O próximo exemplo usa a janela Internacionalização, que faz parte da instalação default do Netbeans IDE.

Neste último exercício, nós reutilizaremos o projeto de exemplos de forms de GUI e internacionalizaremos o form 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, selecione Find.java e escolha Ferramentas > Internacionalização > Internacionalizar no menu principal.

    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 Selecionar para selecionar um arquivo de propriedades particular ou crie um novo.
  3. Na caixa de diálogo Selecionar Pacote de Recursos , digite Find.properties no campo de texto Nome do Arquivo, clique em Criar Novo e, em seguida, em OK.
  4. 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 default.
  5. 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

Inserindo uma String Internacionalizada Simples

  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 pelo 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[]) {
    			   /* Set the Nimbus look and feel */
    			   //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
            /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
             * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
             */
            try {
                javax.swing.UIManager.LookAndFeelInfo[] installedLookAndFeels=javax.swing.UIManager.getInstalledLookAndFeels();
    			for (int idx=0; idx<installedLookAndFeels.length; idx++)
    			if ("Nimbus".equals(installedLookAndFeels[idx].getName())) {
    			    javax.swing.UIManager.setLookAndFeel(installedLookAndFeels[idx].getClassName());
    				break;
    			}
            } catch (ClassNotFoundException ex) {
                java.util.logging.Logger.getLogger(Find.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (InstantiationException ex) {
                java.util.logging.Logger.getLogger(Find.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (IllegalAccessException ex) {
                java.util.logging.Logger.getLogger(Find.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (javax.swing.UnsupportedLookAndFeelException ex) {
                java.util.logging.Logger.getLogger(Find.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            }
            //</editor-fold>
            System.out.println();
    		/* Create and display the form */ 
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new Find().setVisible(true);
                }
            });
                   }
  4. Coloque o cursor do mouse em parênteses em System.out.println(); de forma que uma string internacionalizada seja inserida como um parâmetro.
  5. Pressione Ctrl-Shift-J para chamar a caixa de diálogo Inserir String Internacionalizada (se preferir, é possível escolher Ferramentas > Internacionalização > Inserir String Internacionalizada no menu principal).
  6. Para o Nome do Pacote, clique no botão Selecionar, selecione a pasta Pacotes de Código-fonte > exemplos e insira Localizar como o Nome do pacote no campo de texto Nome do Arquivo. Em seguida, clique em OK.
    O campo Nome do Pacote da caixa de diálogo Inserir String Internacionalizada mostra examples.Find.
  7. Digite Iniciar na caixa drop-down Chave e Iniciar caixa de diálogo Localizar no campo Valor. Em seguida, clique em OK.

  8. O IDE insere uma string internacionalizada:
        public static void main(String args[]) {
    			   /* Set the Nimbus look and feel */
    			   //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
            /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
             * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
             */
            try {
                javax.swing.UIManager.LookAndFeelInfo[] installedLookAndFeels=javax.swing.UIManager.getInstalledLookAndFeels();
    			for (int idx=0; idx<installedLookAndFeels.length; idx++)
    			if ("Nimbus".equals(installedLookAndFeels[idx].getName())) {
    			    javax.swing.UIManager.setLookAndFeel(installedLookAndFeels[idx].getClassName());
    				break;
    			}
            } catch (ClassNotFoundException ex) {
                java.util.logging.Logger.getLogger(Find.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (InstantiationException ex) {
                java.util.logging.Logger.getLogger(Find.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (IllegalAccessException ex) {
                java.util.logging.Logger.getLogger(Find.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (javax.swing.UnsupportedLookAndFeelException ex) {
                java.util.logging.Logger.getLogger(Find.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            }
            //</editor-fold>
            System.out.println(java.util.ResourceBundle.getBundle("examples/Find").getString("Start"));
            /* Create and display the form */
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new Find().setVisible(true);
                    }
                });
                   }


Consulte Também

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

get support for the NetBeans

Support


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2013, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo