web-dev-qa-db-ja.com

ウルドゥー語フォントの逆レンダリング

私はUbuntuプラットフォームでウルドゥー語に基づいたプロジェクトに取り組んでいます。私はPython言語を使用しており、ほぼ私の仕事を達成しました。

問題は、ウルドゥー語のテキストが逆の順序でレンダリングされることです。

たとえば、次の3つの文字で構成される単語کامつまり、仕事を意味する)を考えてみます。ک
ا、およびم

出力は、3つの文字からなるماکとして逆順にレンダリングされます:م
ا、およびک

このテキストをOpen Officeにコピーするか、生成されたXMLファイルをFirefoxで開くと、生成された結果が絶対に望まれます。

私はPython 2.6 IDLEを使用しています。これはWindowsプラットフォームで完璧に機能し、IDLEの問題ではないことを明確に示しています。TKINTERGUIライブラリで作業しています。

この問題はどのように解決できますか?

7

Tkinterは、Tkウィジェットセットのラッパーです。 http://wiki.tcl.tk/3158 によると、Tkは双方向のテキストレンダリングをサポートしていないため、ウルドゥー語の文字が左から右に表示される理由がわかります。

Tkに特定のアタッチメントがない限り、GTKやQtなどのより近代的なグラフィックツールキットを使用することをお勧めします。 Tkを使用する必要がある場合は、手作業で文字をプレゼンテーションの順序に並べ替える必要があるでしょう。

5

簡単な解決策として、文字列を逆にして表示します。 Pythonのローカリゼーションオプションも確認してください。 Pythonが右から左への言語をサポートするかどうかはわかりません。 StackOverflow で質問すると、この質問に対するより良い回答が得られます。

1
binW