Обратный рендеринг шрифтов урду

Я работаю над проектом, основанным на языке урду в платформе 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

Другие вопросы по тегам