Как внедрить RTL в iOS с использованием EXPO / реагировать на нативный - PullRequest
1 голос
/ 24 апреля 2020

Я добавил два файла локализации (arabi c и engli sh) в имена моих собственных собственных приложений, такие как ar. json и en. json.

Мой ru. json файл выглядит как

"fieldNames": {
    "enterEmail" : "Enter the email address"
  },

Мой ar. json файл выглядит как

"fieldNames": {
    "enterEmail" : "أدخل عنوان البريد الإلكتروني"
  },

Моя строка / индекс. js файл выглядит следующим образом:

import * as Localization from 'expo-localization';
import i18n from 'i18n-js';

import en from './en.json';
import ar from './ar.json';

i18n.fallbacks = true;
i18n.translations = { en, ar };
i18n.locale = Localization.locale;

export const string = value => i18n.t(value);

export default i18n;

Один из файлов, который я использовал, похож на следующий

<Text>{string('fieldNames.enterEmail')}</Text>

Локализация работает нормально с обоими языками.

Но когда я выбираю араби c его не выровнено по правой стороне в iOS.

В моем android устройстве оно работает правильно. Эта проблема появляется только в iOS.

Не могли бы вы помочь мне решить проблему

1 Ответ

0 голосов
/ 24 апреля 2020

RTL не относится к локализации (l10n) . Вместо этого используется Интернализация (i18n).

Если вместо left и right вы используете префикс start и right, то ваш RTL будет реализован.

Например , вы можете использовать marginStart вместо marginLeft для RTL

...