2011-01-12 3 views
2

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

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

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

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

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

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

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

+0

Не урду написан справа налево? Я предполагаю, что проблема может быть. Я знаю, это вряд ли указатель, но, возможно, с этим что-то происходит? – user225312

+0

Да, урду написано справа налево. Проект отлично работает с платформой Windows. Итак, я не думаю, что это может быть проблемой. Проблема для меня в том, что Ubuntu Font Rendering Engine не корректно отображает шрифт URDU, где, как ОТКРЫТЫЙ ОФИС, правильно его отображает. –

+0

Когда вы говорите, что «рендеринг отменен», где это происходит? – user225312

ответ

-1

Используйте набор инструментов, который не является страшным, например PyQt, PyGTK или wxPython.

+0

Tk имеет свои преимущества: он прост, и все, что вам нужно, включено в Python (по сравнению с тремя компонентами для PyQt или PyGTK). Но да, это, вероятно, лучший способ решить эту проблему. –

+0

@Thomas: «Включено» относительно.Tkinter фактически использует TCL/Tk, который поставляется с большинством загрузок на Python, но на самом деле не является частью Python. –

+0

Правда, но в комплекте и часть установки по умолчанию гораздо больше «включено», чем три отдельные загрузки, где нет диспетчера пакетов, чтобы установить его для вас. –

0

У меня была аналогичная проблема с арабским. Tkinter - это интерфейс Python для инструментария TK GUI, который, к сожалению, имеет no support for bidirectional languages.

Моим решением было вместо этого использовать wxPython. wxPython также хорош, потому что ваше приложение будет выглядеть родным на любой используемой платформе.

Там больше информации об отсутствии Tk о биди поддержки здесь: http://easygui.wordpress.com/2010/02/03/easygui-and-unicode/

Смежные вопросы