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

7

Я работаю над проектом, который основан на языке урду на платформе Ubuntu. Я использую язык Python и почти выполнил свою задачу.

Проблема заключается в том, что текст урду отображается в обратном порядке.

Например, рассмотрим слово کام (, что означает работу ) состоящий из трех букв: ک ,
ا и م

Результат выводится в обратном порядке как ماک состоящий из трех букв: م ,
ا и ک

При копировании этого текста в Open Office или открытии сгенерированного XML-файла в Firefox, сгенерированный результат абсолютно необходим.

Я использую Python 2.6 IDLE, он отлично работает с платформой Windows, что ясно показывает, что это не проблема IDLE. Я работаю над библиотекой TKINTER GUI.

Как решить эту проблему?

    
задан Syed Muhammad Umair 11.01.2011 в 13:13
источник

2 ответа

5

Tkinter - обертка вокруг набора виджета Tk. Согласно Ссылка , Tk не поддерживает двунаправленную визуализацию текста, что объясняет, почему символы урду отображались слева направо.

Если у вас нет конкретного приложения к Tk, я бы предложил использовать более современный графический инструментарий, такой как GTK или Qt. Если вы должны использовать Tk, вы, вероятно, захотите вручную переупорядочить символы в порядке показа.

    
ответ дан James Henstridge 23.03.2011 в 08:06
1

В качестве простого решения попробуйте изменить строку и затем отобразить ее. Также рассмотрите варианты локализации в Python. Я не знаю, поддерживает ли Python языки Right-to-Left. Вы бы лучше ответили на этот вопрос, если вы спросите его на StackOverflow

    
ответ дан binW 11.01.2011 в 14:07