非官方测试版翻译
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
I18n管理器
I18nManager 模块提供管理从右向左(RTL)布局的工具,支持阿拉伯语、希伯来语等语言。它提供控制 RTL 行为的方法,并能检测当前布局方向。
使用示例
根据 RTL 调整位置和动画
使用绝对定位的元素与 Flexbox 元素对齐时,在 RTL 语言中可能无法正确对齐。可通过 isRTL 调整对齐方式或动画效果。
开发期间
参考
属性
isRTL
typescript
static isRTL: boolean;
布尔值,表示应用当前是否处于 RTL 布局模式。
isRTL 的值由以下逻辑决定:
-
若
forceRTL为true,isRTL返回true -
若
allowRTL为false,isRTL返回false -
否则,满足以下条件时
isRTL为true:- iOS:
- 设备首选语言为 RTL 语言
- 应用定义的本地化包含用户选择的语言(在 Xcode 项目文件
knownRegions = (...)中定义)
- Android:
- 设备首选语言为 RTL 语言
- 应用的
AndroidManifest.xml在<application>元素中定义了android:supportsRTL="true"
- iOS:
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 的值。