为什么双向文本(希伯来语,阿拉伯语)的软件支持如此差?
尽管大多数操作系统和Web浏览器都很好地支持双向文本,例如希伯来语和阿拉伯语,但是大多数商业和开源软件都没有:
- 除了原始的记事本和Visual Studio编辑器之外,大多数文本编辑器的工作都非常糟糕。 (我尝试了许多)。
- 我找不到任何做得不错的文件比较工具-甚至无法超越。
- 处理图表和报告的软件和软件包也是如此。
我有一些问题:
- 你也和我一样痛苦吗?
- 我们编写的软件是否兼容双向?我们是否有关于它的错误报告?
- 我们甚至不知道涉及哪些问题?你为他们测试吗?
- 关于如何使软件世界成为使用双向语言的人更好的地方的任何建议?
解决方案
Do you share the same pain I do?
不。这可能就是答案:大多数人都不知道双向语言是如何工作的。例如,我在使用它时遇到了一些麻烦。因为我对这个话题很感兴趣,所以我前一段时间正在阅读pango资料,这可能是支持失败的第二个原因:很难正确。
由于Pango,我认为GNOME项目是双向用户界面的最佳支持之一(当然,我无法证实这一点,因为我无法发现问题)。
但是因为我们说过"开放源代码":我认为开放源代码项目中的全球化支持通常非常出色。 Linux糟透了,但国际化是他们正确的做法。
gettext仍然是少数具有(我知道半熟但可以使用的)复数系统的翻译系统之一。
Is the software you write bidirectional compliant? Do you have bug reports about it?
可能不是。我目前正在使用网络发布软件,这是我到目前为止尚未测试过的东西之一:-(
Do you even know what are the issues involved? Do you test for them?
双向支持并非没有直接的路线图。所以没有针对他们的测试,从我为Plurk编写的翻译界面中可以知道问题所在。
Any suggestions on how to make the software world a better place for bidirectional language speakers?
对于开放源代码项目:请帮助专家了解问题出在哪里。对于封闭源?雇用一个知道的人。
简单,让更多的双向语言发言者表达他们的担忧!由于周围的双向语言用户很少,我可以想象双向文本支持在大多数人的优先级列表中还很低。但是,报告我们和其他双向语言使用者文件的错误越多,将解决的问题也就越多。
如果将字符串分解为子字符串并单独显示,则会破坏OS Bidi渲染,并且如果添加一些几乎无害的符号(例如,例如),也会使文本显示混乱。
编写与bidi兼容的软件必须知道的两件事是:
- 始终显示整个字符串,从不尝试显示较大字符串的一部分。
- 始终使用比迪文本测试任何格式代码。
而且,如果我们正在编写文本编辑器,文字处理器或者任何需要高端排版的内容,而又不能遵循上面的规则1,那么编写bidi渲染引擎将需要大量工作。
我是左撇子,在物理世界中处理类似的问题。在少数群体中自然是一部分,企业主要迎合多数群体。
如果我们认为双向文本有问题,则应在某个时候检查"土耳其语i"问题。
无论如何,我认为将发生的事情或者是文本处理将变得非常标准化,并且库将正确执行操作,或者我们将不得不等到应用程序变得足够大以保证增加良好的支持。
关于某些答案的注释没有"双向语言"。语言从左到右或者从右到左(或者从上到下...)。如果文本或者字符串同时包含希伯来语和英语,则可以是双向的。
关于这个问题,Firefox对我来说似乎很不错。还有MSWord,这几乎就是我在希伯来语中使用的所有内容。
我认为对此有两个主要答案:
1)大多数语言都是从左到右阅读的,所以人们或者认为自己可以不用它而逃脱,或者甚至根本不考虑它。
2)很难支持它,具体取决于项目。如果工具/库不支持它,则软件可能也不会。而且这不仅在编程意义上是困难的,而且在程序员不熟悉从右到左语言的情况下很难使其正确。据我了解,要真正正确地支持双向文本,UI中的某些内容也必须翻转为看起来"正确"。
我对此一无所知的唯一原因是因为我和一个以阿拉伯语为母语的人一起工作,并且我已经和他谈了一点。我仍然对此不太了解。我们的产品直到最近才开始支持阿拉伯语,而我并未参与其中。
关于如何使软件世界成为使用双向语言的人更好的地方的任何建议?
不幸的是,除非有更多的讲RTL语言的人参与全球事务,否则我认为情况不会改善……这似乎不太可能。
目前,我们的以色列是一个技术先进的社会,但人口很少,几乎所有受过教育的人都说英语。根据我所看到的研究,还有一些阿拉伯国家和其他国家使用阿拉伯文字,它们所产生和消耗的信息几乎不及西方世界。
我知道Flash中的ltr文本让我感到很痛苦,尽管听说过如何处理字符串,以免混淆,但我听说它对网页更容易。
顺便说一句,这是一个非常主观的问题,一个不可能找到"解决方案"的问题是因为我们确定这是提出问题的正确位置吗?
我本人一直在研究如何将本机BiDi添加到Android。到目前为止的结果:大量的工作,Android实际上缺乏真正的BiDi。
问题在于计算机世界全都与Internet和共享有关,尤其是开源软件。这意味着需要考虑主要语言,如果我们注意到英语实际上是标准语言,并且提供了其他(大多数是西方)语言作为附带翻译。
我说阿拉伯语/希伯来语/英语。对于计算机,我几乎只使用英文,而阿拉伯语/希伯来语用于本地内容(新闻,在线电视等),这些内容可以通过网络浏览器很好地处理。但是,由于我购买了三星Galaxy并开始更新固件,所以我开始注意到问题有多大:(