Olá amigos leitores! Nesse artigo gostaria de apresentar o recurso de Idiomas do Delphi 2006 ou BDS2006 se preferirem.
Esse recurso permite que vários idiomas possam ser aplicados ao projeto (Inglês, Espanhol, etc.), então,
veremos essa funcionalidade do Delphi 2006 em etapas.
Para esse artigo em especial, deixo a seguinte observação: todos
que forem testar o recurso na primeira vez, utilizem os passos indicados nesse
artigo sem pular nenhuma etapa e utilizem também a mesma nomenclatura,
pois existem pequenos detalhes que farão toda a diferença no aprendizado,
e sendo assim, a diferença
nos nomes de componentes e arquivos pode atrapalhar bastante numa primeira tentativa.
ETAPA 1 - Criação do Projeto
Vamos começar criando um projeto bem simples, com os seguintes componentes:
* 1 Form - Renomeie para "frmDados" e mude o Caption
para "Dados".
* 1 Label - Renomeie para "lblNome" e mude o Caption
para "Nome:".
* 1 Edit - Renomeie para "edtNome" e mude o Text para "Mundo".
* 1 Button - Renomeie para "btnSalvar" e mude o Caption
para "Salvar".
Salve o Projeto e nomeie a unit como uIdiomas.pas e o Projeto
como prjIdiomas.dpr
ETAPA 2 - Inserindo recursos de Idioma
Ainda no mesmo projeto, clique em Project -> Languages -> Add

Figura 1 - Chamando o Assistente
Na tela "Add Languages" existe a
opção de aplicar o recurso de idiomas a vários projetos
de uma vez só, mas não será nosso caso nesse artigo,
então, clique em "Next".

Figura 2 - Selecionando o Idioma
Na tela seguinte escolha idiomas "Inglês
(Estados Unidos)". Em seguida clique em "Next".

Figura 3 - Selecionando os idiomas
O idioma selecionado será mostrado na tela seguinte
do projeto ao qual ele será aplicado. Clique em "Next".
Uma tela semelhante será mostrada, clique em "Next" novamente.

Figura 4 -
Confirmação das seleções anteriores.
Uma última tela mostrará onde a instância
será criada com o idioma que selecionamos. Clique em "Finish".

Figura 5 - Finalizando o assitente e criando o novo projeto
Após clicar em "Finish" aparecerá
a mensagem: "This project needs to be compiled for the Resource
DLL Wizard to finish. Compile the Project? Yes/No". Clique em "Yes" para
concluirmos a inserção
do recurso de Idioma . Ao término, o compilador exibirá o que
foi processado no projeto.

Figura 6 - Resultado da compilação
Pronto, agora se você for manualmente até a pasta
do projeto pelo windows explorer irá reparar que uma pasta 'ENU' foi
criada, e junto uma DLL (prjIdioma.bdsproj.local). A pasta
ENU é uma cópia do seu projeto original, e ficará com
as informações de outro idioma inseridas nela. Em nenhum momento
essa pasta deve ser alterada manualmente ou apagada. Caso isso ocorra, você perderá todo
o trabalho feito até o momento, correndo o risco de perder o projeto.
Aproveitando que você visualizou a pasta manualmente,
observe que seu "Project
Manager" do Delphi está duplicado, apresentando uma instância
de projeto prjIdiomas.exe e outra com prjIdiomas.enu.

Figura 7 - Project Manager com os 2 projetos
Agora que já terminamos a inserção de
um novo idioma, vamos salvar o projeto novamente. Clique em File -> Save
All. O Delphi irá pedir um nome para o Project Group,
chame-o de Idiomas. Após
salvar, repare como ficou organizado ser Project Manager.

Figura 8 - Nomeando o grupo de projetos
ETAPA 3 - Definindo o Idioma de cada coponente de acordo com o Projeto.
Agora que já inserimos o Idioma Inglês (Estados Unidos), devemos
configurar os componentes através do Translation Editor.
Para acessá-lo, clique duas vezes no form uIdiomas.dfm do
projeto prjIdiomas.enu.

Figura 9- Chamando o Translation Editor
Na figura abaixo o Translation Editor exibe os componentes
do Form (Projeto Principal).
Preste atenção em cada coluna e sua função:
Coluna 1 (Quadrado Vermelho) - Vermelho é a condição inicial, quando o quadrado estiver cinza indica que houve alteração;
Coluna 2 (ID ou Componentes do Form) - Indica a propriedade
dos componentes do Form. No nosso caso alteraremos apenas as propriedades Caption;
Coluna 3 (Português (Brasil) ) - Coluna com as propriedades
do Projeto Original.
Coluna 4 (Status) - Indica se está traduzido, se não está traduzido ou então se não será traduzido.
Coluna 5 (Inglês (Estados Unidos)) - Essa coluna utilizaremos
para fazer alterações das propriedades Caption dos componentes.

Figura 10 - Translation Editor
ETAPA 4 - Alterando as propriedades Captions de cada Componente (Por idioma).
Na tela do Translation Editor, vá até a coluna
ID e procure por frmDados.Caption. Na coluna
Português (Brasil) o Caption será 'Dados'.
Ainda na mesma linha, vá até a coluna Inglês (Estados
Unidos) e mude o Caption de 'Dados' para 'Data'.

Figura 11 - Alterando o caption do formulário no novo idioma.
Repita os mesmos passos para os ID's:
frmDados.O:lblNome.Caption - Passando de Português (Brasil) - 'Nome' para Inglês (Estados Unidos) - 'Name';
frmDados.O:edtNome.Text - Passando de 'Mundo' para 'World';
frmDados.O:btnSalvar.Caption de 'Salvar' para 'Save'.
ETAPA 5 - Compilando os projetos e Executando
Após renomear os captions dos componentes na coluna Inglês, será necessário
Salvar as informações do Translation Editor. Depois de Salvar
as informações, Compile o Projeto em Português e o Projeto
em Inglês. Para isso, no Project Manager, clique
com o botão direito do mouse em prjIdioma.exe -> Compile. Repita
o mesmo procedimento para o arquivo prjIdioma.ENU.

Figura 12 - Compilando os projetos
Feito isso, ambos os projetos estão compilados, mas
se você pressionar a tecla F9 perceberá que o Projeto executado
está em português. Para executar o Projeto em Inglês, vá até a
opção Project -> Languages -> Set
Active. Na janela 'Set Active Language', selecione Inglês
(Estados Unidos) e clique em 'Finish'. Ao compilar
novamente, o Projeto em Inglês será executado.

Figura 13 - Definindo a linguagem ativa para a compilação
Pronto! Assim podemos ver os resultados. Num primeiro momento,
a funcionalidade de Idioma apresentada no artigo parece ser trabalhosa, mas
assim que você aplica a primeira vez vai reparar que é muito
fácil de ser utilizada. Ainda estou estudando esse recurso e possivelmente
lançarei um complemento desse artigo. Peço que todos colaborem
com comentários, pois afinal esse artigo é para a comunidade
Active Delphi.
João Marcos
Contato: jsakalauska@gmail.com
|