string.Format проблема при объединении языков слева направо с языками справа налево - PullRequest
2 голосов
/ 24 августа 2011

Персидский - это язык справа налево. Я хочу показать пользователю сообщение, что что-то было успешно сохранено. Однако название этой вещи (сущности) иногда на английском, а иногда на персидском языке. Таким образом, я должен объединить некоторые персидские слова с заполнителями для английских слов следующим образом:

string.Format("مطلب {0} با موفقیت ذخیره شد", contentTitle);

Теперь, если мы предположим, что contentTitle равен How to solve your problem, объединенная строка будет иметь вид:

مطلب How to solve your problem با موفقیت ذخیره شد.

Это не то, что я хочу получить. Желаемый результат должен быть:

.با موفقیت ذخیره شد How to solve your problem مطلب

Что мне делать? Кажется, что метод string.Format имеет проблему при объединении языков слева направо с языками справа налево. То, чего я хочу достичь, очень похоже на direction: rtl; в CSS Writing .

1 Ответ

2 голосов
/ 24 августа 2011

строковый класс ничего не знает о RTL, и Windows имеет свои собственные правила для работы со «смешанным содержимым» (то есть rtl и ltr в одной строке) ...

вы можете поэкспериментировать с LRO, LRE и т. Д. Юникод "намекает" на эти строки для достижения желаемого результата - см. Таблицу в http://en.wikipedia.org/wiki/Bi-directional_text

...