linux - 不同平台上的 tcl/tk 复杂脚本支持

标签 linux windows internationalization tcl tk-toolkit

我已经使用 Tcl/Tk 工作了一个星期了,我从文档中了解到它应该避免平台独立性,因为 Tcl/Tk 小部件在 Linux 和 Windows 上的行为是相同的。

奇怪的是,我有不同的经历。如果我在 Tcl/Tk 小部件中用希伯来语或阿拉伯语(一般情况下是复杂的脚本)输入一些文本,在 Windows 中运行一次,在 Linux 中运行一次,我会得到不同的结果。

在 Ubuntu 上,小部件中的字形并未连接在一起。在 Windows 上是这样,但有时不正确。

根据其文档,Tcl/Tk 自 v.8.1 起确实具有固有的国际化支持。

有人在这方面有经验吗?我的意思是,Tcl/Tk 真的有国际化支持和平台独立性吗?

最佳答案

Tcl 自 Tcl 8.1 起就提供了国际化支持,但目前仍然存在一些问题(特别是 Unicode BMP 之外的字符、一些需要区域设置感知的字符串操作以及缺乏规范化引擎;这些都不是)适用于这种情况)。 Tk 的状态不太好。

Tk 将字符串的显示委托(delegate)给字体渲染引擎,该引擎是特定于平台的(在 Unix/X11 上,也特定于构建)。它是字体渲染引擎,负责将字符序列转换为 glyphs 的集合。 (必须如此,因为不同的字体会产生不同的字形)然后将其绘制在屏幕上以生成文本的渲染。在某些书写系统(尤其是欧洲和东亚的书写系统)中,这大多是相对简单的,但在其他书写系统中,由于使用了大量的连字,因此相当困难;阿拉伯语是这里最困难的案例之一!

旧 X11 版本中使用的经典字体渲染引擎根本无法处理阿拉伯语等复杂字体系统的渲染。这不太可能改变。较新的 X11 字体渲染引擎构建在 Xft 之上(实际上将几乎所有工作委托(delegate)给该库),因此可能做得更好。在 Windows 和 OSX/Aqua 上,字体渲染引擎使用系统库,无论它们的质量如何。 (OSX 对我来说看起来相当不错,但我不敢肯定地知道。)如果有人为基于 Pango 的 Unix 贡献一个字体渲染引擎,它将受到非常有利的对待;但这可能需要很多工作。

在可编辑小部件(entrytext)中,情况也可能看起来更糟,因为它们很可能一次只输入一个字符。不可编辑的小部件(labelbutton 等)应该看起来更好,因为它们可以一次至少传递多个字符不用担心保留有关光标应该去哪里的信息。我还怀疑 Tk 在与从左到右的文本相关的地方有一些相当硬编码的假设;我不知道该怎么办。

关于linux - 不同平台上的 tcl/tk 复杂脚本支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19786479/

相关文章:

php - openoffice headless 命令文档/引用

python - python-magic 使用了哪个 libmagic?

Windows 反恶意软件扫描接口(interface)线程安全

windows - Windows工具,用于查看.so文件中的符号

javascript - 有没有办法通过 JavaScript 中的 Intl.NumberFormat 反转格式

reactjs - Typescript i18next 不满足约束 'string |模板字符串数组 NextJS

linux - 帮助 bash 脚本

c++ - 在 Windows 中不使用 Unicode 有什么缺点?

ruby-on-rails - rails : Is it possible to show different content based on I18N?

linux - 如何使用 "Unix built in Command in sed"