在 React Native 中本地化为 LTR 时使用 RTL 方向
Use RTL Direction when Localization is LTR In React Native
我已经 i18n
在我的 React Native 应用程序中使用多种语言。
问题是当 Localization
设置基于 LTR
时,我无法将 TextInput
方向更改为 RTL
。
我试过 writingDirection
但它只在 IOS 中有效。
我也试过 textAlign
但一无所获:(。
这是我的 i18n
设置和 TextInput
示例代码:
i18n.js
import { I18nManager } from 'react-native';
import * as Localization from 'expo-localization';
import i18n from 'i18n-js';
import fa from '../locales/fa';
import en from '../locales/en';
I18nManager.forceRTL(false);
Localization.locale = 'en';
i18n.fallbacks = true;
i18n.translations = { fa, en };
i18n.locale = Localization.locale;
export default i18n;
TextInput
示例代码
<TextInput
style={{textAlign: 'right'}} // here is the style that does'nt work.
label={i18n.t('signUp.surName')}
value={formData.surName.value}
onChangeText={(value) => changeHandler('surName', value)}
/>
我写了snack example,没发现问题:
https://snack.expo.io/@djalik/text-input-align-right
可能是您使用的是 expo/react-native.
的旧版本
我已经 i18n
在我的 React Native 应用程序中使用多种语言。
问题是当 Localization
设置基于 LTR
时,我无法将 TextInput
方向更改为 RTL
。
我试过 writingDirection
但它只在 IOS 中有效。
我也试过 textAlign
但一无所获:(。
这是我的 i18n
设置和 TextInput
示例代码:
i18n.js
import { I18nManager } from 'react-native';
import * as Localization from 'expo-localization';
import i18n from 'i18n-js';
import fa from '../locales/fa';
import en from '../locales/en';
I18nManager.forceRTL(false);
Localization.locale = 'en';
i18n.fallbacks = true;
i18n.translations = { fa, en };
i18n.locale = Localization.locale;
export default i18n;
TextInput
示例代码
<TextInput
style={{textAlign: 'right'}} // here is the style that does'nt work.
label={i18n.t('signUp.surName')}
value={formData.surName.value}
onChangeText={(value) => changeHandler('surName', value)}
/>
我写了snack example,没发现问题: https://snack.expo.io/@djalik/text-input-align-right 可能是您使用的是 expo/react-native.
的旧版本