Devido ao caráter mundial da Web, internacionalização é uma característica cada vez mais buscada nas aplicações. Essa demanda tornou necessário o surgimento e amadurecimento contínuo de recursos de tradução que nos dias atuais facilitam, por exemplo, o acesso ao conhecimento por pessoas que não dominam outros idiomas além de sua língua materna. O Delphi, no entanto, cuja principal utilização é no desenvolvimento de aplicações desktop, ainda não possui soluções tão maduras.
O ITE (Integrated Translation Environment), presente no Delphi, permite criar aplicações multi-idiomas graças às suas funcionalidades de tradução, porém, esse ambiente não é muito favorável a aplicações de grande porte. Sua manutenção é consideravelmente complexa e, apesar dos arquivos de tradução não serem embutidos, a escolha de idiomas não é tão trivial para o usuário.
Há também no mercado alguns componentes e ferramentas desenvolvidas com esse propósito, como é o caso do componente TLang, que está disponível apenas para aplicações desenvolvidas com FireMonkey. Para a VCL (Visual Component Library) existem soluções semelhantes, porém, o preço de alguns desses componentes pode ultrapassar os US$ 800 para versões Pro Edition.
Neste artigo veremos uma forma mais eficaz e econômica para implementar essa funcionalidade nas aplicações. Serão explicadas as técnicas que podem ser utilizadas e como identificar a mais adequada para cada situação.
As abordagens exploradas neste artigo não se limitam à tradução entre idiomas. Elas podem ser usadas, por exemplo, para criar sistemas com mensagens customizáveis para cada ramo de empresas ou cliente, permitindo com que o usuário final defina os textos a serem utilizados na aplicação.
Nas próximas seções conheceremos alguns dos mecanismos que podem ser utilizados para implementar esse tipo de funcionalidade com o Delphi.
ResourceString
ResourceString é um recurso que permite a criação de uma tabela de strings que funcionarão como constantes dentro da aplicação. Essa estrutura é muito utilizada internamente pelo Delphi na montagem de mensagens do IDE. Por exemplo, na unit const há exemplos de sua utilização. Os componentes também adotam esse método, evitando assim a utilização da declaração de um texto diretamente no código. Por exemplo, para a apresentação do termo "Open" em caixas de diálogo é utilizada a constante SOpenFileTitle.
Essa técnica facilita a manutenção e extensão do sistema, pois quando houver necessidade, não será preciso trocar o texto fixo em todos os lugares onde ele ocorre. Bastaria alterar seu valor na definição da constante e automaticamente essa mudança seria refletida em toda a aplicação.
Na Listagem 1 vemos um exemplo da declaração de um ResourceString.
Listagem 1. Declaração de ResourceString
01 ResorceString
02 sCaptionMinhaAplicacao = 'Meu Caption';
03 sCaptionBtnAbrir = 'Abrir';
04 sMsgFecharAplicacao = 'Deseja encerrar a aplicação'; Um ResourceString pode ser declarado em qualquer lugar do projeto, ficando no mesmo contexto das declarações de constantes e variáveis. Para uma melhor organização e aproveitamento do código, no entanto, é uma boa prática fazer essa declaração em uma unit separada, deixando todos em um só local, ou separando por contexto/objetivo.
Para acessarmos os valores definidos nos ResourceStrings basta referenciá-los pelos nomes que foram usados na sua declaração. Por exemplo, considerando as constantes da Listagem 1, poderíamos exibir a mensagem de confirmação de saída ...
Desbloqueie toda a DevMedia
-
+2000 artigos e vídeos
-
+40 trilhas sobre Front-end, Back-end, IA e muito mais
-
+5000 exercícios práticos
-
Mentorias ao vivo individuais