Обратный рендеринг шрифтов урду
Я работаю над проектом, основанным на языке урду в платформе Ubuntu. Я использую язык Python и почти достиг своей цели.
Проблема в том, что текст на языке урду отображается в обратном порядке.
Например, рассмотрим слово کام
(что означает работа), состоящий из трех букв: ک
,ا
, а такжеم
Вывод отображается в обратном порядке как ماک
состоящий из трех букв:م
, ا
, а такжеک
При копировании этого текста в Open Office или открытии сгенерированного файла XML в Firefox, сгенерированный результат является абсолютно желательным.
Я использую Python 2.6 IDLE, он отлично работает с платформой Windows, что ясно показывает, что проблема не в IDLE. Я работаю над библиотекой TKINTER GUI.
Как можно решить эту проблему?
2 ответа
Tkinter - это оболочка для набора виджетов Tk. Согласно http://wiki.tcl.tk/3158, Tk не поддерживает двунаправленную визуализацию текста, что объясняет, почему символы урду отображались слева направо.
Если у вас нет особого вложения в Tk, я бы предложил использовать более современный графический инструментарий, такой как GTK или Qt. Если вы должны использовать Tk, вам, вероятно, придется столкнуться с необходимостью вручную изменить порядок символов в порядке представления.
В качестве простого решения попробуйте перевернуть строку и затем отобразить ее. Также посмотрите на варианты локализации в Python. Я не знаю, поддерживает ли Python языки справа налево. Вы получите лучший ответ на этот вопрос, если зададите его в StackOverflow