Локализация С#. Проблемы с смешиванием слов, написанных слева направо, со словами, написанными справа налево в одном предложении

Я ищу, как решить проблемы, смешивая слова, которые требуют чтения справа налево (например, арабский) и слова слева направо (например, английский).

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

Чтобы проиллюстрировать пример, предположим, что слова RTL написаны строчными буквами, а слова LTR — прописными.

Мой желаемый результат:

abc ABC efg

но вместо этого мы получаем

abc ABC gfe

Единственный способ получить правильный вывод — вставить маркеры Unicode (LTR для слева направо, PDF для Pop-Directional-Formatting, который будет отмечать его конец) до и после текста LTR:

abc {LTR} ABC {PDF} efg

Это решение, которое можно использовать, но мне было интересно, нет ли более простого способа справиться с этим автоматически? Слова RTL находятся в файлах ресурсов, в то время как английские части обычно поступают из вызовов Db. Есть ли какой-либо прошлый опыт в том, как справиться с этим конкретным сценарием? Спасибо!


person srodriguez    schedule 17.02.2011    source источник


Ответы (1)


Просто удар в темноте: вы пробовали использовать {RTL} вместо {PDF}...?

person Jakub Konecki    schedule 17.02.2011
comment
Я не пробовал, хотя думаю, что это, скорее всего, сработает. Скорее главный вопрос: есть ли способ автоматически обрабатывать это сочетание слов потока чтения? Вставка {LTR} {PDF} или {LTR} {RTL} вручную довольно утомительна и не очень удобна в сопровождении - person srodriguez; 17.02.2011