Подтвердить что ты не робот

Почему слова перетасовываются, когда я вставляю английские слова в любой арабский/урду/персидский текст в "Блокноте" или в MS Word?

Я могу писать арабский/урду/персидский по MS Word или Notepad просто отлично, но всякий раз, когда я вставляю какие-либо английские слова или цифры, последовательность просто нарушается и кажется, что все слова были перетасованы в предложении.

Посмотрите пример ниже:

یہ ایک مثال ہے اردو کی ...

Теперь я вставил английское слово, и оно стало следующим:

 یہ ایک مثال ہےword  اردو کی ...

Итак, вы можете видеть, что почти все слова были перепутаны... для чего это решение?

4b9b3361

Ответ 1

Например:

باللغة العربية "keyboard" انا أريد أن أعرف الكلمة

  • Завершите ввод арабского слова и добавьте пробел после него (это пространство отделяет внедренный текст от арабского текста вправо).
  • Вставьте специальный символ U + 200F (чтобы сделать предыдущее пространство арабским символом). Имя символа - "Right to Left Mark".
  • Вставьте специальный символ U + 202A (чтобы начать вставку слева направо). Имя символа - "Вставка слева направо".
  • Вставьте другое пространство (чтобы отделить встроенный текст от арабского текста, который будет продолжаться слева).
  • Измените клавиатуру, например. Русский и введите слово слева направо.
  • Вставьте специальный символ U + 202C (чтобы восстановить состояние bidrectional до того, что было до вставки слева направо). Имя персонажа - "Направленное форматирование по току".
  • Смените клавиатуру и продолжайте запись на арабском языке.

Если вы работаете в Microsoft Office или Open Office, "специальные символы" можно найти в разделе "Вставить" [Вставить → символы → другие символы → специальные символы в MS 2013]. Прокрутите страницу до тех пор, пока не найдете символ с соответствующим номером Unicode, и если номер Unicode не отображается в вашей версии MS Word, выберите его по имени [как указано выше].

Вы также можете добавить символ, записав его в Юникоде, а затем выбрав его и нажав Alt + X - но это может ввести в заблуждение, потому что ему необходимо постоянное изменение между арабским и английским.

Все специальные символы, участвующие в этом маленьком маневре, являются невидимыми персонажами (их задача состоит в том, чтобы просто изменить направление текста), поэтому не удивляйтесь, если похоже, что вы ничего не вставляете.

Обратите внимание на выбор опции RTL на ленте, когда большая часть вашего абзаца RTL и сохраните ее [как показано на рисунке в этом ответе fooobar.com/questions/235581/...].

Ответ 2

Это нормально; они не перетасовываются: вы видите их в режиме рендеринга LTR.

Вам просто нужно сделать их справа налево. В "Блокноте" или "Word" нажмите "Ctrl + Shift", чтобы сделать их направление справа налево, и все будет хорошо. (Это похоже на <p dir="rtl">...</p> в HTML).

Управляющие символы LRE и RLE (0x202A и 0x202B), а также LRM и RLM (0x200E и 0x200F) должны применяться ко всему абзацу, то есть они должны появиться в начале последовательности. Некоторые виджеты с отображением некоторых платформ могут отбрасывать эти управляющие символы, хотя, особенно старые (до 2000) платформы или те, кто не поддерживает двунаправленный алгоритм Unicode правильно. Новые ОС и программы должны быть прекрасными; попробуйте с помощью Windows Notepad, например.

Я лично рекомендую использовать платформу для создания RTL текста и избегать специальных контрольных символов, потому что они невидимы и могут вызвать неожиданные результаты, если они выходят из-под контроля. Поэтому вам лучше использовать Word API для создания RTL текста, или если ваш вывод HTML помещает их в теги <div dir="rtl">...</div>. Для обычного текстового файла пользователю необходимо вручную вручную нажимать клавиши Ctrl + Shift.

Ответ 3

  • Прежде чем приступать к вводу на арабском/персидском языке, убедитесь, что вы выбрали кнопку "Right-to-Left-Direction". Эту кнопку можно найти на вкладке "Абзац" только в левой части кнопки сортировки AZ. Также выберите "Выровнять текст вправо", который можно найти в левой части левой части кнопки "Исправить".

  • Начните вводить свой язык

  • Прежде чем положить английское слово, поместите пробел, затем выберите левый ALT + SHIFT и введите свое английское слово

  • После завершения ваших английских слов выберите правильный ALT + SHIFT, а затем введите пробел и снова введите свой язык

Надеюсь, что это поможет

Ответ 4

Вам нужно добавить невидимый чек Unicode RLE в начале строки [^]. Он: 0x202B hex = 8235 десятичный или ВРАЩАЮЩИЙСЯ ВПРАВО (RLE). Это необходимо для Блокнота, но MS-Word способен справиться с этим. вам нужно правильно выровнять текст. Как ввести REL: http://www.fileformat.info/tip/microsoft/enter_unicode.htm

Ответ 5

Выберите абзац (например, используя тройной щелчок) и используйте кнопку для направления справа налево (¶ ◀) в разделе "Абзац" на панели "Пуск".

Как объясняет Хоссейнс, проблема заключается в направленности в параграфе. Он изменяется слева направо, когда вы вставляете латинскую букву, и вам нужно исправить это вручную.

Ответ 6

Изменить: это было написано как поясняющий ответ на первый ответ здесь, я позже отредактировал первый ответ и добавил важные заметки, которые я написал здесь [править все еще нуждается в одобрении, хотя].


Я смог исправить свой текст, выполнив следующие шаги в первом ответе. Если кто-то столкнется с трудностями при выполнении шагов, позвольте мне пояснить некоторые вещи:

Если вы вводите английское слово в арабском тексте, убедитесь, что выбрана опция RTL в ленте [обведено красным цветом на следующем рисунке]:

screenshot

Сохраняйте его в соответствии с абзацем, независимо от языка, который вы используете [до тех пор, пока большинство абзаца написано на языке RTL, таком как арабский или иврит).

Где найти специальные символы и как их вставить:

Вы можете написать Юникод символа, а затем выбрать его и нажать "Alt + X". Однако это может быть немного запутанным из-за необходимости изменения между английским и арабским языками для написания кодов, поэтому лучше всего ввести их "вручную", вставив их имена.

Вы можете сделать это, перейдя в Insert → Symbol → More Symbols → Специальные символы [прокрутка вниз]. Затем выберите имя символов, которые нужно использовать, а не его юникод.

Имена символов, которые вам нужно использовать [, как указано в первом ответе здесь]:

  • "Право на левый знак": U + 200F.
  • "Вставка слева направо": U + 202A.
  • "Направленное форматирование по току": U + 202C.

Как говорится в первом ответе, на экране ничего не появится, потому что это непечатаемый символ, поэтому он нормальный, если вы почувствовали, что ничего не произошло, когда вы вставляете.

Если вам нужно сделать это наоборот, то есть вставить еврейское или арабское слово в текст на английском языке, просто отмените использование юникодов - или выполните шаги в следующей ссылке: https://superuser.com/a/1247476/767967

Если вы хотите узнать больше о том, что делают специальные персонажи и что значит сделать ваш абзац LTR или RTL, перейдите по следующей ссылке: http://dotancohen.com/howto/rtl_right_to_left.html#Directionality

Ответ 7

Просто выполните следующее:

  • Скопируйте и вставьте арабский текст в текстовый или текстовый документ в ADOBE Illustrator.
  • Сохраните документ иллюстратора, как в формате .EPS.
  • Откройте indesign и поместите документ .EPS в нужное место.

Поскольку indesign не может обрабатывать проблему арабского текста самостоятельно, этот метод поможет многим дизайнерам.

Ответ 8

В текстовой обработке у вас есть основное направление текста, которое либо слева направо, либо справа налево (или сверху вниз, но пусть игнорирует это:-), и у вас есть текстовое направление для отдельных символов, который также будет оставлен справа или справа налево.

Текстовый процессор разбивает текст на куски строк с тем же символьным упорядочением, а затем отображает эти куски в соответствии с основным порядком текста.

Кажется, что ваш основной текст был оставлен вправо. Пока весь текст арабский, есть только один кусок с арабским текстом. Вы видите, что он отображается слева выравнивается и не выравнивается по правому краю, потому что упорядочение текста остается вправо. Символы отображаются справа налево, потому что именно так отображается арабский.

Когда вы вставили латинский текст, у вас было три куска: арабский, латинский, арабский. Эти три куска отображаются слева направо, потому что это основной порядок текста. Это было бы хорошо для текста, который в основном латинский (например, "Арабские слова для собаки и коровы... и..." ). Для текста, который в основном арабский, со случайным латинским словом, вам нужно изменить основной порядок текста на "справа налево".