当前位置

阿拉伯语网站中英文、数字、符号的左右顺序问题

James Qi 在 2018年8月2日 - 23:34 提交

  我们很早前就做了部分阿拉伯语网站,主要都是靠Google翻译进行的,找翻译工作帮我们矫正过一次,到现在也积累了一些用户和流量,这次专门找了阿拉伯语专业学生来实习帮我们校对。

  因为以前我们自己完全看不懂阿拉伯文,都是直接复制粘贴到网站中、模板程序中,所以一些错误在所难免,而我们自己也无法发现。这次实习生来了用户,除了阿拉伯语方面发现的问题以外,在阿拉伯语网站中存在英文、数字、标点符合顺序混乱是发现的又一大类问题。

  例如这个美国5+4位邮编站还有一些阿拉伯语用户:

  阿语版本中混杂有纯英文、数字和括号、逗号组成的地址,例如:

“9401 (From 9401 To 9599 Odd) LIBERTY CIR , ANCHORAGE, AK 99515-1428, USA”

  这个地址如果放在阿拉伯语句子里面,显示顺序就乱了,左右括号也不匹配了,看上去成了两个一样方向的括号,连复制粘贴这样的操作都很难选中需要的内容。类似下图:

  我们先是尝试调整英文、数字、标点的顺序,让阿拉伯语中看起来也正常,但需要花很多时间来仔细尝试,没有统一的办法。

  最后在网上搜英文资料,终于找到根源和终极解决办法了,就是使用HTML代码dir属性等于ltr(从左到右),例如:

“<span dir='ltr'>9401 (From 9401 To 9599 Odd) LIBERTY CIR , ANCHORAGE, AK 99515-1428, USA</span>”

  这样无论放在什么样的语言网站中,都会让这一部分从左到右显示。

  再看阿拉伯语网站的HTML源代码最开头部分:

<!DOCTYPE html>
<html lang="ar" dir="rtl" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
......

  原来阿拉伯语网站从一开始就把整个页面方向定位了从右到左,而一旦遇到纯英文、数字等情况,又希望保持从左到右的显示,难怪最后渲染的呈现结果没法做到完成正常。

  除了Drupal做的阿拉伯语网站以外,我们用MediaWiki做的阿拉伯语网站:

  也都有一样的问题存在,现在也可以用同样的办法来解决了。这次算是搞明白了,页面显示的文字顺序、源代码中的文字顺序与编辑表单里面的文字顺序都可能不同,真是一个大坑,好在基本搞清楚以后如何对付了。除了阿拉伯语是从右到左以外,还有波斯语等其它一些小语种也是从右到左,如果遇到其中包含英文、数字、标点符号,也可以使用同样的办法加入dir属性来解决。

  国内很少有人做阿拉伯语网站,所以也找不到什么资料,好不容易在英文网站中搜索找到并尝试以上内容,记录到博客中,希望以后对遇到这种问题的朋友有帮助。

自由标签:

评论

你好!我们还没有关注手机app中阿拉伯语数字、字母顺序的问题,我们有html5转换打包成的app,那只需要将html5的显示顺序搞对就可以了,但原生app我们还没有做阿拉伯语的开发。搜索英文资料当时用的关键词也忘记了,你可以把要查的中文关键词在google翻译中翻译成英文,然后用英文搜索。

James Qi / 祁劲松

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。