React Native Expo 在 LTL 默认系统上强制 RTL

问题描述 投票:0回答:1

我有一个仅适用于 HE 的 Expo 应用程序,而 RTL 在某些情况下不起作用。

在使用 RTL 系统语言的设备上,HE 工作正常,但当系统语言为 EN(或任何 LTR 语言)时,应用程序在首次加载时将为 LTR。

所以,我的问题是如何强制应用程序始终为 RTL,无论系统语言如何?

现在,我正在尝试像这样强制它(此代码位于index.js中,我正在使用expo-router):

import 'expo-router/entry'
import { I18nManager } from 'react-native'
I18nManager.forceRTL(true)
I18nManager.allowRTL(true)

此外,我尝试预构建项目更新本机文件,如here,并使用 XCode 在测试 TestFlight 中部署,但没有成功。

您还有其他解决方案吗?

L.E.

我创建了一个修改器,可以根据其他帖子的建议更新 AppDelegate.mm:

#import <React/RCTI18nUtil.h>

并在didFinishLaunchingWithOptions中:

[[RCTI18nUtil sharedInstance] allowRTL:YES];
[[RCTI18nUtil sharedInstance] forceRTL:YES];

所以,我不是手动更新 AppDelegate.mm,而是使用 expo prebuild 中的修改器 - 仍然无法在系统语言为英语的设备上工作

react-native mobile expo internationalization
1个回答
0
投票

您可以使用react-native-restart包来重新加载应用程序包,以防卡住。

© www.soinside.com 2019 - 2024. All rights reserved.