跳至主内容
版本:0.80
非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

I18n管理器

I18nManager 模块提供管理从右向左(RTL)布局的工具,支持阿拉伯语、希伯来语等语言。它提供控制 RTL 行为的方法,并能检测当前布局方向。

使用示例

根据 RTL 调整位置和动画

使用绝对定位的元素与 Flexbox 元素对齐时,在 RTL 语言中可能无法正确对齐。可通过 isRTL 调整对齐方式或动画效果。

开发期间

参考

属性

isRTL

typescript
static isRTL: boolean;

布尔值,表示应用当前是否处于 RTL 布局模式。

isRTL 的值由以下逻辑决定:

  • forceRTLtrueisRTL 返回 true

  • allowRTLfalseisRTL 返回 false

  • 否则,满足以下条件时 isRTLtrue

    • iOS:
      • 设备首选语言为 RTL 语言
      • 应用定义的本地化包含用户选择的语言(在 Xcode 项目文件 knownRegions = (...) 中定义)
    • Android:
      • 设备首选语言为 RTL 语言
      • 应用的 AndroidManifest.xml<application> 元素中定义了 android:supportsRTL="true"

doLeftAndRightSwapInRTL

typescript
static doLeftAndRightSwapInRTL: boolean;

布尔值,表示在 RTL 模式下是否自动交换左右样式属性。启用时,RTL 布局中 left 会变为 right,right 会变为 left。

方法

allowRTL()

typescript
static allowRTL: (allowRTL: boolean) => void;

启用或禁用应用的 RTL 布局支持。

参数:

  • allowRTL (boolean): 是否允许 RTL 布局

重要说明:

  • 更改在下次应用启动后生效,非即时生效

  • 此设置会在应用重启后保留

forceRTL()

typescript
static forceRTL: (forced: boolean) => void;

强制应用使用 RTL 布局(忽略设备语言设置)。主要用于开发阶段测试 RTL 布局。

请勿在生产应用中使用此方法,它需要完全重启应用才能生效,会导致不良用户体验。

参数:

  • forced (boolean): 是否强制 RTL 布局

重要说明:

  • 更改在下次应用启动后完全生效,非即时生效

  • 此设置会在应用重启后保留

  • 仅限开发和测试使用。生产环境中应完全禁用 RTL 或妥善处理(参见 isRTL

swapLeftAndRightInRTL()

typescript
static swapLeftAndRightInRTL: (swapLeftAndRight: boolean) => void;

在 RTL 模式下交换左右样式属性。启用时,RTL 布局中 left 会变为 right,right 会变为 left。不影响 isRTL 的值。