您在這裡

阿拉伯語網站中英文、數字、符号的左右順序問題

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 標籤。
  • 自動將網址與電子郵件地址轉變為連結。
  • 自動斷行和分段。