текст содержит арабский c, затем Engli sh слова в реагировать родной (android) - PullRequest
0 голосов
/ 25 февраля 2020

Приложение поддерживает арабский c и английский sh, а имя пользователя может быть на арабском c или английский sh. Если приложение находится в режиме Engli sh, а имя пользователя - на арабском c, уведомление похоже на «محمد send order», и этот текст в текстовом теге на iOS в порядке с writingDirection реквизитами, но в android было показано как «отправить заказ محمد».

Могу ли я заставить текстовый тег в android написать «ltr» ???

простой пример

import React from 'react';
import { Text, View } from 'react-native';

class TextTest extends React.Component {
  render() {
    return (
      <View style={{ alignContent: "center", alignSelf: "stretch", alignItems: "stretch", flex: 1 }}>
        <Text style={{
          fontSize: 35, alignSelf: "center", writingDirection: "ltr"
        }} >
          {"محمد play football"}
        </Text>
      </View>
    )
  }
}
export default TextTest;

1 : результат в android

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

Попробуйте это:

    <Text style={{
      fontSize: 35, alignSelf: "center", writingDirection: "ltr"
    }} >
      {`User ${yourUserName} play football`}
    </Text>

Просто сделайте свой пользовательский ввод, который будет либо RTL, либо LTR -> встроен в ваш локализованный текст

0 голосов
/ 25 февраля 2020

Для поддержки RTL вам нужно внести несколько быстрых изменений, как описано здесь React Native Dev Blog - Поддержка RTL

  1. Убедитесь, что вы добавили эту строку в свой MainActivity.java файл

I18nUtil sharedI18nUtilInstance = I18nUtil.getInstance(); sharedI18nUtilInstance.allowRTL(context, true);

И добавьте этот тег в AndroidManifest.xml под тегом <application> root

android:supportsRtl="true"

В том же посте они также описали несоответствие поведения по умолчанию для Android и iOS для потока текста .

Поведение выравнивания текста отличается в Android и iOS В iOS, выравнивание текста по умолчанию зависит от активного языкового пакета, они последовательно находятся на одной стороне. В Android выравнивание текста по умолчанию зависит от языка текстового содержимого, то есть Engli sh будет выровнено по левому краю, а Arabi c будет выровнено по правому краю.

Возможно, вы хотите использовать Platform.select, чтобы затем принудительно настроить макет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...