You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何强制Expo React Native应用始终启用RTL(希伯来语)?

希伯来语Expo应用RTL布局异常问题及解决方案

我开发了一款仅支持希伯来语(HE)的Expo应用,存在RTL(从右到左)显示异常问题:当设备系统语言为RTL时,希伯来语显示正常;但系统语言为英语(EN)等LTR语言时,应用首次加载会变为LTR布局。

尝试过的无效解决方法

  • 在使用expo-router的index.js中添加代码:
    import 'expo-router/entry'
    import { I18nManager } from 'react-native'
    I18nManager.forceRTL(true)
    I18nManager.allowRTL(true)
    
  • 通过expo prebuild修改原生文件,在AppDelegate.mm中添加:
    #import <React/RCTI18nUtil.h>
    
    并在didFinishLaunchingWithOptions方法中加入:
    [[RCTI18nUtil sharedInstance] allowRTL:YES];
    [[RCTI18nUtil sharedInstance] forceRTL:YES];
    
    经测试,上述方法在英语系统语言设备上仍无效。

2024年更新:有效解决方案

需在AppDelegate.mm中添加以下代码:

[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"he", nil] forKey:@"AppleLanguages"];

内容的提问来源于stack exchange,提问作者Coman Vladut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 14:17:37