Aplicações web Delphi da direita para a esquerda em árabe e hebraico

· Componentes
Aplicações web Delphi da direita para a esquerda em árabe e hebraico

Traduzir uma aplicação web para árabe ou hebraico é a metade fácil. A metade difícil é que a página inteira precisa ser lida da direita para a esquerda: a barra lateral vai para o outro lado, os steppers contam a partir da direita, os balões de chat trocam de lugar, uma árvore recua para o outro lado. Fazer isso à mão significa um atributo dir, uma versão diferente do Bootstrap e uma segunda versão de cada regra CSS própria que você já escreveu.

O sgcHTML no sgcWebSockets 2026.10 faz tudo isso por você. Escolha o idioma e o layout acompanha.

Uma linha

uses
  sgcHTML_Locale;

sgcHTMLSetLanguage(htmlLangArabic);

Isso muda os textos internos dos componentes para árabe, como antes, e agora também a direção de cada página que você renderizar depois. Volte para qualquer outro idioma e as páginas voltam a ser da esquerda para a direita.

Ou apenas o código do idioma

Você não precisa de uma tradução interna para obter o layout. Se o idioma da página é um idioma da direita para a esquerda, isso já basta:

Site.Lang := 'he';      { Hebrew: right-to-left, no other change }

O sgcHTML reconhece árabe, hebraico, persa, urdu, pachto, iídiche, divehi, uigur, curdo central e sindi, com ou sem região, então ar-EG e he-IL também funcionam.

O que muda na página

As páginas da esquerda para a direita não mudam

O espelhamento é feito com regras extras que valem apenas dentro de uma página da direita para a esquerda. Nenhuma regra existente foi reescrita, então uma página em inglês renderiza exatamente a mesma marcação de antes, e continua funcionando em navegadores embarcados mais antigos que não entendem as propriedades lógicas mais novas do CSS.

Forçando uma direção

A escolha automática sempre pode ser substituída. Dir no componente de site, e HtmlDir no page builder, na página de login e no template do Bootstrap, aceitam 'rtl' ou 'ltr'. Deixe vazio para o modo automático.

Site.Lang := 'ar';
Site.Dir := 'ltr';      { Arabic text, left-to-right layout }

C++Builder e .NET

O C++Builder usa as mesmas units. A versão .NET tem o mesmo recurso, com a mesma saída:

sgcHTMLLocaleFactory.sgcHTMLSetLanguage(TsgcHTMLLanguage.htmlLangArabic);
site.Lang = "ar";
site.Dir = "";          // empty means automatic

Experimente

O novo demo 22.RTL mostra uma página em inglês, árabe e hebraico, com um link que força a esquerda para a direita para você comparar. Ele vem em dois formatos para Delphi, construído em código em Demos\60.HTML\01.RunTime\22.RTL e construído a partir de formulários em Demos\60.HTML\02.DesignTime\22.RTL, e em C# em demos\60.HTML\22.RTL. Você também pode abri-lo online.

Veja a página do produto sgcHTML para a lista completa de componentes.

Leia a seguir

Assista

Há um vídeo curto sobre isso no canal da eSeGeCe.

Dúvidas, comentários ou ajuda com a migração? Entre em contato. Você receberá uma resposta de quem escreveu o código.