Aplikacje webowe Delphi od prawej do lewej po arabsku i hebrajsku

· Komponenty
Aplikacje webowe Delphi od prawej do lewej po arabsku i hebrajsku

Przetłumaczenie aplikacji webowej na arabski lub hebrajski to łatwa połowa pracy. Trudniejsza połowa polega na tym, że cała strona musi być czytana od prawej do lewej: pasek boczny przechodzi na drugą stronę, kreatory liczą kroki od prawej, dymki czatu zamieniają się miejscami, a drzewo wcina elementy w drugą stronę. Zrobienie tego ręcznie oznacza atrybut dir, inną wersję Bootstrapa i drugą wersję każdej własnej reguły CSS, jaką kiedykolwiek napisałeś.

sgcHTML w sgcWebSockets 2026.10 robi to wszystko za Ciebie. Wybierz język, a układ pójdzie za nim.

Jedna linijka

uses
  sgcHTML_Locale;

sgcHTMLSetLanguage(htmlLangArabic);

To przełącza wbudowane teksty komponentów na arabski, jak dotychczas, a teraz także kierunek każdej strony renderowanej później. Wróć do dowolnego innego języka, a strony znów będą układane od lewej do prawej.

Albo sam kod języka

Nie potrzebujesz wbudowanego tłumaczenia, aby uzyskać układ. Jeśli język strony jest językiem pisanym od prawej do lewej, to wystarczy:

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

sgcHTML rozpoznaje arabski, hebrajski, perski, urdu, paszto, jidysz, malediwski, ujgurski, sorani i sindhi, z regionem lub bez, więc działają także ar-EG i he-IL.

Co zmienia się na stronie

Strony od lewej do prawej się nie zmieniają

Odbicie lustrzane realizują dodatkowe reguły, które działają tylko wewnątrz strony od prawej do lewej. Żadna istniejąca reguła nie została przepisana, więc strona angielska renderuje dokładnie ten sam kod, co wcześniej, i nadal działa w starszych osadzonych przeglądarkach, które nie rozumieją nowszych logicznych właściwości CSS.

Wymuszanie kierunku

Automatyczny wybór zawsze można nadpisać. Dir w komponencie witryny oraz HtmlDir w konstruktorze stron, stronie logowania i szablonie Bootstrap przyjmują 'rtl' lub 'ltr'. Pozostaw je puste, aby wybór był automatyczny.

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

C++Builder i .NET

C++Builder używa tych samych jednostek. Wersja .NET ma tę samą funkcję i daje ten sam wynik:

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

Wypróbuj

Nowe demo 22.RTL pokazuje jedną stronę po angielsku, arabsku i hebrajsku, z linkiem wymuszającym układ od lewej do prawej, abyś mógł porównać. Występuje w dwóch odmianach dla Delphi: zbudowanej w kodzie w Demos\60.HTML\01.RunTime\22.RTL i zbudowanej z formularzy w Demos\60.HTML\02.DesignTime\22.RTL, a także w C# w demos\60.HTML\22.RTL. Możesz również otworzyć je online.

Pełną listę komponentów znajdziesz na stronie produktu sgcHTML.

Czytaj dalej

Obejrzyj

Na kanale eSeGeCe jest krótki film na ten temat.

Pytania, uwagi lub pomoc w migracji? Skontaktuj się z nami. Odpowiedzą Ci osoby, które napisały kod.