Я ищу, как решить проблемы, смешивая слова, которые требуют чтения справа налево (например, арабский) и слова слева направо (например, английский).
Проблема, с которой мы сталкиваемся, заключается в том, что при вставке слова LTR в предложение, предназначенное для чтения в RTL (вставка английского слова в предложение на арабском, например): английский текст правильно пишется слева направо, но проблема в том, что Арабская часть, которая идет после, оказывается не на той стороне. Контекст этого заключается в том, что программе, над которой я работаю, необходимо, например, вставить некоторые идентификаторы или идентификаторы объектов, которые необходимо оставить на английском языке, но вставить в локализованное предложение (в данном случае арабский).
Чтобы проиллюстрировать пример, предположим, что слова RTL написаны строчными буквами, а слова LTR — прописными.
Мой желаемый результат:
abc ABC efg
но вместо этого мы получаем
abc ABC gfe
Единственный способ получить правильный вывод — вставить маркеры Unicode (LTR для слева направо, PDF для Pop-Directional-Formatting, который будет отмечать его конец) до и после текста LTR:
abc {LTR} ABC {PDF} efg
Это решение, которое можно использовать, но мне было интересно, нет ли более простого способа справиться с этим автоматически? Слова RTL находятся в файлах ресурсов, в то время как английские части обычно поступают из вызовов Db. Есть ли какой-либо прошлый опыт в том, как справиться с этим конкретным сценарием? Спасибо!