所谓复杂,也是一个相对概念。其实曾有外国友人在学习中文时就认为,“这是一个复杂语言哪”。
当应用想走到海外,就需要做多语言本地化。难免有那么一刻,某个语言也会让人不禁发出一声“咦?!”。如同芸芸众生中的千人千面,全世界使用的语言如此之多,肯定有其独特之处。
不过这里说的复杂语言,是从计算机显示文字的角度来讲的。在计算机系统里,文字都是以二进制编码存储的。当需要在屏幕上显示某个文字的时候,就由字库引擎以对应的编码在字体文件中找到对应的图形,然后将图形输出到屏幕上,就完成了文字的显示。这个过程中,编码与图形是一一对应的,关系比较简单。而我们所说的复杂文字,就是这一套系统无法直接显示,需要进行额外处理的文字。
具体需要额外处理的文字有哪些呢?举几个例子(并非全部):
比如整形
使用阿拉伯文字的许多语言,如阿拉伯语、波斯语、乌尔都语、维吾尔语等,都存在根据字母在单词中所处位置不同而字形不同的情况。一般分为词首、词中、词尾三种形态。下图用黑色表示原本的字母字形,而用不同颜色表示了同一个字母在词首、词中、词尾的不同字形。
例1
在另外一些语言中,部分字形会根据其组合的字符发生变化。如下面缅甸语的例子,一个字母包裹在另一个字母外。并且会随着包裹字母的不同而变化。
例2
比如连字
在有的语言里,当特定序列的字母出现的时候,会组合成一个全新的字形。如下是阿拉伯语和泰米尔语的例子。
例3
例4
比如顺序重排
在印度本地语言中,部分字母遇到其他字母就会引起字母显示顺序的重排。
这样的显示,如果要进行文字上的检视比对,会需要译员的参与。不懂语言的人,光凭眼力是无法判别的。那有没有什么办法可以让不懂语言的人在某些情况下,也能操作一把快速检查呢?
试试使用华为的多语言服务吧。目前该服务提供的拼写检查已经覆盖了多个复杂语言,如阿拉伯语、藏语、波斯语、印地语、希伯来语、缅甸语等。除了拼写检查之外,同时也支持单复数的检查。力不能及的地方,就让工具来帮忙吧。
· END ·