web-dev-qa-db-fra.com

Rendu inversé des polices ourdou

Je travaille sur un projet basé sur la langue ourdou sur la plateforme Ubuntu. J'utilise le langage Python et j'ai presque accompli ma tâche.

Le problème est que le texte en ourdou est rendu dans l'ordre inverse.

Par exemple, considérez le mot کام (ce qui signifie travail) composé des trois lettres: ک,
ا , et م

La sortie est rendue dans l'ordre inverse par ماک composé des trois lettres: م,
ا, et ک

Lorsque vous copiez ce texte dans Open Office ou ouvrez le fichier XML généré dans Firefox, le résultat généré est absolument souhaité.

J'utilise Python 2.6 IDLE, son fonctionnement parfait avec la plate-forme Windows, ce qui montre clairement que ce n'est pas le problème d'IDLE. Je travaille sur la bibliothèque TKINTER GUI.

Comment résoudre ce problème?

7
Syed Muhammad Umair

Tkinter est un wrapper autour de l'ensemble de widgets Tk. Selon http://wiki.tcl.tk/3158 , Tk ne prend pas en charge le rendu de texte bidirectionnel, ce qui expliquerait pourquoi les caractères ourdous étaient affichés de gauche à droite.

À moins que vous n'ayez un attachement particulier à Tk, je suggère d'utiliser une boîte à outils graphique plus moderne comme GTK ou Qt. Si vous devez utiliser Tk, vous devrez probablement réorganiser manuellement les caractères dans l'ordre de présentation.

5
James Henstridge

Comme solution simple, essayez d'inverser la chaîne, puis affichez-la. Regardez également les options de localisation en Python. Je ne sais pas si Python prend en charge les langues de droite à gauche. Vous obtiendrez une meilleure réponse à cette question si vous la posez sur StackOverflow

1
binW