Tcl は Tcl 8.1 から国際化をサポートしていましたが、現在もいくつかの問題があります (特に Unicode BMP 以外の文字、ロケールを認識する必要があるいくつかの文字列操作、正規化エンジンの欠如など)。状況)。Tk はあまり良い状態ではありません。
Tk は、文字列の表示をプラットフォーム固有のフォント レンダリング エンジンに委譲します (Unix/X11 ではビルド固有でもあります)。文字のシーケンスをグリフのコレクションに変換する役割を担うのはフォント レンダリング エンジンです(異なるフォントは異なるグリフを生成するため、そうする必要があります)。その後、テキストのレンダリングを生成するために画面に描画されます。一部の書記体系 (特にヨーロッパと東アジアの書記体系) では、これはほとんど比較的簡単ですが、使用される合字が非常に多いために非常に難しい書記体系もあります。アラビア語は、ここで最も難しいケースの 1 つです。
古い X11 ビルドで使用されていたクラシック フォント レンダリング エンジンは、アラビア語のような複雑なフォント システムのレンダリングにはまったく対応していません。これが変わる可能性は低いです。新しい X11 フォント レンダリング エンジンは、Xft の上に構築されているため (実際、ほとんどすべての作業をそのライブラリに委任しています) 、より良い仕事をする可能性があります。Windows および OSX/Aqua では、フォント レンダリング エンジンは、品質に関係なくシステム ライブラリを使用します。(OSX のものは私にはかなり良さそうに見えますが、確かなことはわかりません。) 誰かが Pango ベースの Unix 用のフォント レンダリング エンジンに貢献するとしたら、非常に好意的に見られるでしょう。それはおそらく大変な作業です。
また、編集可能なウィジェット ( entry
、text
) では、一度に 1 つずつ文字をフィードする可能性があるため、状況が悪化する可能性もあります。編集不可能なウィジェット ( label
、button
など) は、カーソルの移動先に関する情報を保持することを心配することなく、少なくとも一度に複数の文字を渡すことができるため、見栄えが良くなるはずです。また、左から右へのテキストに関連する場所で、Tk がかなりハードコーディングされた前提を持っているのではないかと思います。私はそれらについて何をすべきか分かりません。