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

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

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

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

Теперь я вставил английское слово, и оно стало:

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

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

8 ответов

Например:

باللغة العربية "клавиатура" انا أريد أن أعرف الكلمة

  1. Завершите ввод арабского слова и добавьте после него пробел (этот пробел отделяет встроенный текст от арабского справа).
  2. Вставьте специальный символ U+200F (чтобы сделать предыдущий пробел арабским символом). Имя персонажа - "Марка справа налево".
  3. Вставьте специальный символ U+202A (чтобы начать вложение слева направо). Имя персонажа - "Внедрение слева направо".
  4. Вставьте еще один пробел (чтобы отделить встроенный текст от арабского текста, который будет продолжаться слева от него).
  5. Измените клавиатуру, например, на английский, и введите слово слева направо.
  6. Вставьте специальный символ U+202C (чтобы восстановить двунаправленное состояние до того, что было до встраивания слева направо). Имя персонажа "Поп-направленное форматирование".
  7. Смените клавиатуру назад и продолжайте писать по-арабски.

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

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

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

Обратите внимание, чтобы выбрать опцию RTL на ленте, когда большая часть вашего абзаца является RTL, и оставьте ее выбранной [как показано на рисунке в этом ответе /questions/33595366/pochemu-slova-peremeshivayutsya-kogda-ya-vstavlyayu-anglijskie-slova-v-lyuboj-arabskij-urdu-persidskij-tekst-v-bloknote-ili-ms-word/33595372#33595372 ].

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

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

  3. Перед вводом английского слова поставьте пробел, затем нажмите левую клавишу ALT + SHIFT и введите свое английское слово

  4. Закончив свои английские слова, выберите правую клавишу ALT + SHIFT, затем поставьте пробел и продолжайте набирать язык снова

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

Хорошо; они не тасуются: вы видите их в режиме рендеринга 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.

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


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

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

Скриншот

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

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

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

Вы можете сделать это, выбрав Вставить -> Символ -> Дополнительные символы -> Специальные символы [прокрутите вниз]. Затем выберите имя персонажа, которое вам нужно использовать вместо его юникода.

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

  • "Знак справа налево": U + 200F.
  • "Вложение слева направо": U + 202A.
  • "Поп-направленное форматирование": U+202C.

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

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

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

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

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

Вам нужно добавить невидимый символ Unicode RLE в начале строки [^]. Это: 0x202B hex = 8235 десятичное или справа налево (RLE). Это необходимо для Блокнота, но MS-Word может справиться с этим. Вы должны правильно выровнять свой текст.

Как ввести RLE: http://www.fileformat.info/tip/microsoft/enter_unicode.htm

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

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

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

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

Просто следуйте этому:

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

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

Другие вопросы по тегам