Плохое форматирование арабского текста при смешивании с 1%

вот код

<code>
     <source> %1 added %2 to the group </source>
     <translation type="unfinished"> 1% أضاف %2 للمجموعة</translation>
</code>

Проблема в том, что я хочу, чтобы текст был перевернут при переводе, поэтому вместо «1% أضاف %2 للمجموعة» я хочу иметь: [للمجموعة («процент» 2) أضاف («процент» 1)]

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

Есть ли обходные пути для этого?


person Dreamwatcher    schedule 21.05.2015    source источник


Ответы (1)


Вам нужно принудительно указать направление записи для чисел и символа процента. Все они являются символами слева направо. Это потому, что начало вашей строки "1%" написано слева. После этого все арабские буквы пишутся справа налево, а «2%» снова пишутся слева направо, но сразу же возвращаются к арабскому написанию справа налево. Таким образом, вывод совершенно правильный.

Чтобы достичь того, что вы намеревались, вы должны заставить направление письма справа налево в начале вашей строки. Добавьте символ RTL (или U+200F в Unicode) перед началом первой позиции вашей строки, и он будет отображаться следующим образом:

‏1% أضاف %2 للمجموعة

Вставив больше символов RTL в важные позиции (непосредственно перед числами и процентами), вы можете сделать это следующим образом:

‏1‏% أضاف ‏%2 للمجموعة
person friedemann_bach    schedule 21.10.2015