Я начинаю думать о том, как транслитерировать строку RTL (т.е. арабский, иврит) в строку LTR (то есть латинизацию звуков / букв).Это относительно просто, если это LTR -> LTR, но более хитроумно для RTL -> LTR.Для LTR -> LTR вы можете иметь простое сопоставление для каждой буквы в A с каждой буквой в B .Может быть, в некоторых случаях несколько комбинаций A образуют B, или один элемент A образует цепочку Bs.
a b
- -
X 1
YZ 2
ABC 3
D 456
E 78
Затем, получив строку типа XYZYZDDEABC
, вы получите 122456456783
.Достаточно простой, хотя сам по себе алгоритм будет немного сложнее, потому что ему, возможно, придется смотреть в будущее и иметь приоритеты для элементов.Но это суть.
Теперь для преобразования RTL -> LTR я запутался на двух уровнях.Во-первых, как вы перебираете строку RTL?Символы на самом деле в порядке LTR, верно?Это просто визуальный макет в браузерах и тому подобное, что делает его RTL.Таким образом, с точки зрения кода, ваш язык RTL на самом деле читается как LTR (это не значит, что мы должны что-то делать наоборот или что-то в этом роде)Просто убедитесь, что я правильно истолковываю это.Это означало бы, что я могу просто сделать вышеупомянутое преобразование LTR -> LTR для всех намерений и целей.
Если это не так, и есть что-то еще, чтобы рассмотреть, я хотел бы знать в общем, как это сделать,Если для демонстрации нужен язык, тогда JavaScript будет хорош.