tcltk源代码复杂脚本支持

时间:2013-11-07 09:16:38

标签: windows tcl tk

我正在使用tcltk源代码中的阿拉伯语语言感应工作几周,我从人力评论和tcltk源代码文档中了解到tcltk不支持阿拉伯语。 我的问题是有人知道我可以在tcltk中使用哪些库来进行国际化支持吗? 其次我可以在tcltk中使用Windows库进行国际化,是否存在来自windows的版权问题? 第三,当我们从文本小部件或条目小部件写文本时,是否有人知道最终存储字符串的位置?这是用于存储和显示的功能?或者哪个和哪个是存储字符串的链接列表指针?

1 个答案:

答案 0 :(得分:2)

双向文本输入和输出

虽然Tcl语言支持许多脚本中的文本(目前使用Unicode基本多语言平面的任何东西,大多数通用语言并且肯定包含阿拉伯语),但Tk存在一些重要问题。特别是,现在肯定没有双向文本输入支持。渲染可能正常(特别是在OSX上,但也许在Windows上,也许在Unix上,如果Xft做正确的事情),但输入肯定是错误的。

我不知道哪些库可能适合或不适合使用;在Windows上,Tk目前使用调用直接将文本呈现到Windows核心库本身。 (从来没有版权问题,但许可证是一个更微妙的问题。但是,只要图书馆不是GPL或AGPL,它应该没问题。)

字符串存储

最终将字符串存储为一系列Unicode字符 - 可能以UTF-8编码,但不一定,你不应该太关心它们存储的内容,因为Tcl有一些相当高效的字符集翻译引擎 - 存储在从Tcl_Obj *句柄引用的内存中。您通常不会直接访问该内存,而是要求您可以访问的特定表单(例如,一系列双字节Tcl_UniChar值)。细节变得复杂,除非你在内存管理引擎中深入了解,否则并不重要。通常,Tcl_Obj *句柄将存储在某个地方的Tcl变量中;这是鼓励的做事方式。

除非您使用text小部件。这非常更复杂。请先使用别的东西,因为这个小部件是最难的情况! (它有一个内部可共享的B树模型,这让我非常害怕。)