реализация логики изолятора для BIDI снова заставила меня застрять. Учитывая следующий тестовый пример.
@Levels: 1 0 1
@Reorder: 0 1 2
R RLI R ; 2 # LTR flag
\____/ \_/ (my run sequences)
Вот мое текущее понимание:
После обработки правил X1–X8 вы получите уровни 0 0 1
, которые будут преобразованы в две изолированные последовательности выполнения.
Насколько я могу судить, правила W1-W7 не должны применяться ни к каким персонажам.
Правило N1, однако, повысит уровень RLI
до 1, так как это NI
между двумя сильными типами, R
и eos
из первой последовательности.
Затем Правило I1/2 переместит первый R
на уровень 1.
Правило L1 может понизить уровень RLI, но здесь оно не применяется.
Как так, что RLI должен оказаться на уровне 0.
Та же проблема с аналогичными тестами, только в обратном направлении.
@Levels: 2 1 2
@Reorder: 2 1 0
L LRI L; 4
К сожалению, http://unicode.org/cldr/utility/bidi.jsp не реализовать новейший алгоритм, включая RLI/LRI.
Любые советы приветствуются :) спасибо.