sgcLocalization: Traduza suas aplicações Delphi e troque o idioma enquanto elas rodam

· Componentes
sgcLocalization: Traduza suas aplicações Delphi e troque o idioma enquanto elas rodam
Novo produto · sgcLocalization

Uma aplicação. Cinco idiomas.
Trocados enquanto ela roda.

O sgcLocalization traduz as suas próprias aplicações Delphi, C++Builder e Lazarus. Cada formulário, cada mensagem, cada plural, com um editor e uma linha de código para trocar o idioma.

  • English
  • Deutsch
  • Español
  • Français
  • Italiano
O painel da mesma aplicação Delphi exibido cinco vezes, em inglês, alemão, espanhol, francês e italiano, nos temas claro e escuro
1linha para trocar
3frameworks
7 a 13versões do Delphi
0de custo extra com o sgcUI

A imagem acima é um único executável. O mesmo painel, os mesmos dados, em inglês, alemão, espanhol, francês e italiano, e o usuário troca o idioma em uma caixa de combinação enquanto a aplicação roda. Sem reiniciar e sem uma segunda compilação.

Essa aplicação foi traduzida com o sgcLocalization, um novo produto da suíte sgcUI. Ele funciona com VCL, FireMonkey e LCL, do Delphi 7 ao Delphi 13, no C++Builder e no Lazarus, e está incluído em todas as edições do sgcUI e em cada produto individual.

O sgcLocalization em um minuto: escanear, traduzir e trocar o idioma de uma aplicação real. Também no YouTube.

Troque o idioma com uma linha

Este é todo o código de que a troca de idioma precisa:

uses
  sgcLocalization_Engine;

procedure TfrmMain.btnGermanClick(Sender: TObject);
begin
  sgcSetLanguage('de');
end;

Se você prefere nenhum código, coloque no formulário o combo de idiomas pronto para uso (TsgcVCLLanguageCombo ou TsgcFMXLanguageCombo). Ele lista os idiomas do seu projeto e troca quando o usuário escolhe um.

A página de pedidos da mesma aplicação em inglês, alemão e italiano: barra de ferramentas, navegação, caixa de busca, cabeçalhos da grade, dados e formatos numéricos mudam
A mesma página em inglês, alemão e italiano. Barra de ferramentas, navegação, cabeçalhos da grade, dicas e dados acompanham o idioma.

A troca faz mais do que substituir legendas:

Para iniciar no idioma do sistema do usuário, defina uma propriedade:

sgcVCLLocalizer1.Language := 'auto';

Quão pouco trabalho dá

1SolteColoque um componente localizador no formulário principal.
2EscaneieEle coleta os textos dos seus formulários, frames e data modules.
3TraduzaÀ mão, com um tradutor via XLIFF ou com propostas de IA.
4TroqueUma linha de código ou o combo de idiomas.

O localizador (TsgcVCLLocalizer para VCL, TsgcFMXLocalizer para FireMonkey) encontra cada propriedade de texto por meio de RTTI. Você não marca propriedades, não renomeia componentes e não altera seus formulários.

As regras de ignorar embutidas pulam o que nunca é texto: nomes de componentes, nomes de campos, SQL, nomes de arquivos, strings de formato e as propriedades que não são texto dos próprios controles do sgcUI. Você pode adicionar suas próprias regras. Um formulário que mistura controles padrão e controles do sgcUI é escaneado de forma limpa, então a lista que você traduz contém textos e nada mais.

Textos no código: snippets

Nem todo texto está em um formulário. Mensagens, linhas de status e legendas montadas em código são snippets. Envolva o texto em sgcT e ele passa a ser traduzível:

if MessageDlg(sgcT('Save changes?'), mtConfirmation,
  [mbYes, mbNo], 0) = mrYes then
  SaveOrder;

A mesma palavra pode precisar de duas traduções. Em inglês, "Open" é ao mesmo tempo um comando e o estado de um pedido. O sgcTC adiciona um contexto, de modo que cada significado recebe a sua própria tradução:

btnOpen.Caption := sgcTC('command', 'Open');
lblState.Caption := sgcTC('order status', 'Open');

Os plurais usam sgcTN. Você escreve o singular e o plural do idioma de origem, e a tradução fornece tantas formas quantas o idioma de destino precisar:

lblSelected.Caption := sgcTN('%d order selected', '%d orders selected',
  Count, [Count]);

As regras de plural vêm do CLDR, então estão corretas para todos os idiomas. O polonês, por exemplo, recebe quatro formas, e o editor pede ao tradutor cada uma delas.

Um editor de traduções

Todas as traduções são editadas em um só lugar. Clique com o botão direito no localizador em tempo de design para abrir o editor dentro do IDE, ou use a ferramenta independente fora dele.

O editor de traduções do sgcLocalization nos temas claro e escuro: uma grade com o texto de origem e as traduções em alemão, espanhol e francês de cada item, filtros de estado e um painel de edição com origem, tradução, nota e proposta
O editor de traduções, claro e escuro. Uma linha por texto, uma coluna por idioma, o estado de cada item à primeira vista.

Validação que pega os erros de sempre

Uma tradução que perde um %d ou uma tecla de acesso é fácil de escrever e difícil de notar. O sgcLocalization verifica cada tradução, seja ela digitada, importada ou proposta por IA:

A aba de validação do editor de traduções mostrando um erro para especificadores de formato diferentes da origem e um aviso para quebras de linha diferentes
O texto em alemão perdeu um especificador de formato. Ele é apontado como erro antes de chegar a um cliente.

Um item com erro não pode ser definido como revisado, de modo que um texto quebrado não passa para uma versão como trabalho concluído.

Tradução por IA, como propostas

O editor pode traduzir com serviços de IA como ChatGPT, Claude, Gemini e Ollama. Escolha os idiomas de destino, forneça um glossário e instruções sobre o tom, e comece.

O diálogo de tradução por IA: idiomas de destino alemão e francês selecionados, escopo de textos novos e alterados, um glossário e instruções para um tom formal
Idiomas de destino, escopo, glossário e instruções para a tradução por IA.

Os resultados chegam como propostas. Você aceita ou rejeita cada uma, e uma proposta nunca sobrescreve um texto que já está traduzido. A mesma validação roda sobre elas.

Bom saber. A tradução por IA passa pelo provedor de IA do sgcUI. Os serviços citados precisam do sgcWebSockets. Sem ele, um evento permite chamar qualquer serviço que você quiser a partir do seu próprio código.

XLIFF para tradutores profissionais

As agências de tradução trabalham com XLIFF. O sgcLocalization exporta XLIFF 1.2 para um idioma e importa o arquivo quando ele volta.

Uma importação nunca grava diretamente no seu projeto. Ela abre uma lista de revisão com cada alteração: o texto antigo, o texto novo, o tipo de alteração e qualquer problema encontrado. Somente as linhas que você marcar são aplicadas.

A lista de revisão da importação XLIFF para um arquivo em francês: cada linha mostra o item, o tipo de alteração, o texto antigo e o novo, o novo estado e os problemas, com uma caixa de seleção para aplicá-la
A revisão de uma importação XLIFF. As linhas com problemas ficam desmarcadas e nada é aplicado até você pressionar Aplicar.

Um arquivo de projeto

As traduções de uma aplicação ficam em um arquivo de projeto com a extensão .sgcloc. Ele é JSON, então é amigável ao controle de versão: uma tradução alterada é um diff pequeno que você pode ler em uma revisão de código. Se você prefere um único executável sem nada ao lado, o projeto pode ser embutido no arquivo do formulário.

Veja em uma aplicação real

A demo de vitrine é o Order Desk, uma aplicação de negócios completa: um painel, pedidos, clientes, um planejador, análise dinâmica, um assistente e uma visualização de impressão. Ela está traduzida para inglês, alemão, espanhol, francês e italiano, e vem nas versões VCL, FireMonkey e Lazarus.

A página do planejador da demo Order Desk em francês: visão semanal com entregas, nomes dos dias em francês, barra de ferramentas e navegação
O planejador do Order Desk em francês. Nomes de dias, visões e compromissos acompanham o idioma.

A pasta da demo também tem três inícios rápidos, a ferramenta independente do editor de traduções e um guia Primeiros Passos que leva você de um formulário vazio a uma aplicação traduzida.

Incluído no sgcUI

O sgcLocalization acompanha o sgcUI 2026.12.0. Ele não é vendido separadamente: está incluído em todas as edições do sgcUI e em cada produto individual, e vem selecionado por padrão no instalador.

Sua aplicação, no idioma do seu cliente

Baixe o sgcUI, abra a demo Order Desk e troque o idioma enquanto ela roda. Depois, solte um localizador no seu próprio formulário principal.

Dúvidas ou comentários? Entre em contato, você receberá a resposta das pessoas que escreveram o código.