![乌尔都语字体的反向渲染](https://linux22.com/image/807697/%E4%B9%8C%E5%B0%94%E9%83%BD%E8%AF%AD%E5%AD%97%E4%BD%93%E7%9A%84%E5%8F%8D%E5%90%91%E6%B8%B2%E6%9F%93.png)
我正在 Ubuntu 平台上基于乌尔都语的项目。我使用 Python 语言,几乎完成了我的任务。
问题在于,乌尔都语文本是以相反的顺序呈现的。
例如,考虑这个单词کام
(这意味着工作)由三个字母组成:
ک
、
ا
、 和
م
输出以相反的顺序呈现, ماک
由三个字母组成:
م
,
ا
,和
ک
将此文本复制到 Open Office 或在 Firefox 中打开生成的 XML 文件时,生成的结果绝对是理想的。
我正在使用 Python 2.6 IDLE,它在 Windows 平台上完美运行,这清楚地表明这不是 IDLE 的问题。我正在研究 TKINTER GUI 库。
这个问题该如何解决?
答案1
Tkinter 是 Tk 小部件集的包装器。根据http://wiki.tcl.tk/3158,Tk 不支持双向文本渲染,这可以解释为什么乌尔都语字符从左到右显示。
除非您对 Tk 情有独钟,否则我建议您使用更现代的图形工具包,如 GTK 或 Qt。如果您必须使用 Tk,则可能需要手动将字符重新排序为显示顺序。
答案2
一个简单的解决方案是尝试反转字符串然后显示它。另外,查看 Python 中的本地化选项。我不知道 Python 是否支持从右到左的语言。如果你在堆栈溢出