Traduire une application web en arabe ou en hébreu est la moitié facile. La moitié difficile, c'est que toute la page doit se lire de droite à gauche : la barre latérale passe de l'autre côté, les étapes se comptent depuis la droite, les bulles de discussion échangent leurs places, une arborescence s'indente dans l'autre sens. Le faire à la main demande un attribut dir, une autre version de Bootstrap et une seconde version de chaque règle CSS personnalisée que vous avez écrite.
sgcHTML dans sgcWebSockets 2026.10 s'occupe de tout. Choisissez la langue et la mise en page suit.
Une seule ligne
uses
sgcHTML_Locale;
sgcHTMLSetLanguage(htmlLangArabic);
Cela fait passer les textes intégrés des composants en arabe, comme avant, et maintenant aussi la direction de chaque page que vous générez ensuite. Revenez à n'importe quelle autre langue et les pages sont de nouveau de gauche à droite.
Ou simplement le code de langue
Vous n'avez pas besoin d'une traduction intégrée pour obtenir la mise en page. Si la langue de la page s'écrit de droite à gauche, cela suffit :
Site.Lang := 'he'; { Hebrew: right-to-left, no other change }
sgcHTML reconnaît l'arabe, l'hébreu, le persan, l'ourdou, le pachto, le yiddish, le divehi, l'ouïghour, le kurde central et le sindhi, avec ou sans région, donc ar-EG et he-IL fonctionnent aussi.
Ce qui change dans la page
- La balise
<html>reçoitdir="rtl". - La page charge la feuille de style de droite à gauche de Bootstrap à la place de la feuille normale. Elle est intégrée à la bibliothèque et servie à l'adresse
/bootstrap.rtl.min.css, et l'option CDN bascule vers la copie du CDN. Un chemin de feuille de style qui vous est propre n'est pas touché. - Les composants sgcHTML sont inversés en miroir : la barre latérale du site et son rail d'icônes, les étapes, la chronologie, le chat, la présence, l'arborescence, le curseur, le séparateur, le redimensionnement des colonnes de la grille et les colonnes figées, les notifications, les avatars et le tableau kanban.
- Les graphiques, jauges, instruments et l'axe temporel du Gantt gardent volontairement leur géométrie. Une échelle de valeurs ou une ligne de temps est une donnée, pas un ordre de lecture.
Les pages de gauche à droite ne changent pas
L'inversion repose sur des règles supplémentaires qui s'appliquent uniquement dans une page de droite à gauche. Aucune règle existante n'a été réécrite, donc une page en anglais produit exactement le même balisage qu'avant, et elle fonctionne toujours dans les anciens navigateurs embarqués qui ne comprennent pas les propriétés logiques CSS plus récentes.
Imposer une direction
Le choix automatique peut toujours être remplacé. Dir sur le composant site, et HtmlDir sur le générateur de pages, la page de connexion et le modèle Bootstrap, acceptent 'rtl' ou 'ltr'. Laissez-les vides pour le mode automatique.
Site.Lang := 'ar';
Site.Dir := 'ltr'; { Arabic text, left-to-right layout }
C++Builder et .NET
C++Builder utilise les mêmes unités. La version .NET propose la même fonctionnalité, avec le même résultat :
sgcHTMLLocaleFactory.sgcHTMLSetLanguage(TsgcHTMLLanguage.htmlLangArabic);
site.Lang = "ar";
site.Dir = ""; // empty means automatic
Essayez
La nouvelle démo 22.RTL montre une page en anglais, en arabe et en hébreu, avec un lien qui force la gauche à droite pour que vous puissiez comparer. Elle existe en deux versions pour Delphi, construite en code dans Demos\60.HTML\01.RunTime\22.RTL et construite à partir de formulaires dans Demos\60.HTML\02.DesignTime\22.RTL, et en C# dans demos\60.HTML\22.RTL. Vous pouvez aussi l'ouvrir en ligne.
Consultez la page produit sgcHTML pour la liste complète des composants.
À lire ensuite
Regardez
Il existe une courte vidéo à ce sujet sur la chaîne eSeGeCe.
Des questions, des retours ou besoin d'aide pour la migration ? Contactez-nous. Vous recevrez une réponse de la part des personnes qui ont écrit le code.
