支持阿拉伯语和希伯来语的从右到左 Delphi Web 应用

· 组件
支持阿拉伯语和希伯来语的从右到左 Delphi Web 应用

把 Web 应用翻译成阿拉伯语或希伯来语只是简单的一半。困难的一半在于,整个页面都必须从右向左阅读:侧边栏移到另一侧,步骤条从右边开始计数,聊天气泡左右互换,树形视图向另一个方向缩进。手工完成这些工作,意味着要添加 dir 属性、使用另一个版本的 Bootstrap,并为你写过的每一条自定义 CSS 规则再写第二个版本。

sgcWebSockets 2026.10 中的 sgcHTML 会替你完成所有这些工作。选择语言,布局随之而变。

一行代码

uses
  sgcHTML_Locale;

sgcHTMLSetLanguage(htmlLangArabic);

这会像以前一样把组件的内置文本切换为阿拉伯语,同时现在也会切换此后渲染的每一个页面的方向。切换回任何其他语言,页面就又变回从左到右。

或者只用语言代码

要获得这种布局,并不需要内置翻译。只要页面语言是从右到左的语言就足够了:

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

sgcHTML 可识别阿拉伯语、希伯来语、波斯语、乌尔都语、普什图语、意第绪语、迪维希语、维吾尔语、中库尔德语和信德语,无论是否带地区代码,因此 ar-EG 和 he-IL 同样有效。

页面上有哪些变化

从左到右的页面不会改变

镜像是通过额外的规则实现的,这些规则只在从右到左的页面内生效。没有改写任何现有规则,因此英文页面渲染出的标记与之前完全相同,并且在不支持较新的 CSS 逻辑属性的旧版嵌入式浏览器中仍然可以正常工作。

强制指定方向

自动选择始终可以被覆盖。站点组件上的 Dir,以及页面构建器、登录页面和 Bootstrap 模板上的 HtmlDir,都接受 'rtl' 或 'ltr'。留空则为自动。

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

C++Builder 和 .NET

C++Builder 使用相同的单元。.NET 版本具有相同的功能和相同的输出:

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

试一试

新的演示 22.RTL 以英语、阿拉伯语和希伯来语展示同一个页面,并带有一个强制从左到右的链接,方便你对比。Delphi 版本有两种形式:在代码中构建的 Demos\60.HTML\01.RunTime\22.RTL,以及通过窗体构建的 Demos\60.HTML\02.DesignTime\22.RTL;C# 版本位于 demos\60.HTML\22.RTL。你也可以在线打开。

完整的组件列表请参阅 sgcHTML 产品页面。

继续阅读

观看视频

在 eSeGeCe 频道上有一段关于此功能的短视频。

有问题、反馈或需要迁移方面的帮助?欢迎联系我们。回复你的将是编写这些代码的人。