Reverse Rendering von Urdu-Schriftarten

7

Ich arbeite an einem Projekt, das auf der Urdu-Sprache in der Ubuntu-Plattform basiert. Ich verwende die Python-Sprache und habe meine Aufgabe fast erfüllt.

Das Problem ist, dass der Urdu-Text in umgekehrter Reihenfolge gerendert wird.

Man betrachte beispielsweise das Wort کام( was bedeutet , Arbeit ) , die aus den drei Buchstaben: ک,
اund م

Der Ausgang wird als in umgekehrter Reihenfolge wiedergegeben , ماک bestehend aus den drei Buchstaben: م,
اund ک

Wenn Sie diesen Text nach Open Office kopieren oder die generierte XML-Datei in Firefox öffnen, ist das generierte Ergebnis unbedingt erwünscht.

Ich verwende Python 2.6 IDLE, es funktioniert perfekt mit der Windows-Plattform, was deutlich zeigt, dass es nicht das Problem von IDLE ist. Ich arbeite an der TKINTER GUI Bibliothek.

Wie kann dieses Problem gelöst werden?

Syed Muhammad Umair
quelle
1
Dies hängt sicherlich davon ab, an welcher Art von Programm Sie arbeiten - Webanwendung, Konsolenanwendung, GUI-Anwendung (welches Toolkit?).
Loevborg

Antworten:

5

Tkinter ist ein Wrapper um das Tk-Widget-Set. Laut http://wiki.tcl.tk/3158 unterstützt Tk keine bidirektionale Textwiedergabe, was erklären würde, warum die Urdu-Zeichen von links nach rechts angezeigt wurden.

Sofern Sie keinen besonderen Anhang zu Tk haben, würde ich die Verwendung eines moderneren Grafik-Toolkits wie GTK oder Qt vorschlagen. Wenn Sie Tk verwenden müssen, müssen Sie wahrscheinlich die Zeichen manuell in der Reihenfolge der Präsentation neu anordnen.

James Henstridge
quelle
1

Versuchen Sie als einfache Lösung, die Zeichenfolge umzukehren, und zeigen Sie sie dann an. Schauen Sie sich auch die Lokalisierungsoptionen in Python an. Ich weiß nicht, ob Python Sprachen von rechts nach links unterstützt. Sie erhalten eine bessere Antwort auf diese Frage, wenn Sie sie bei StackOverflow stellen

binW
quelle