偽翻譯

偽翻譯

偽翻譯是軟體測試中用來測試軟體是否匹配國際化與本地化的方法之一。用於測試軟體國際化方面的軟體測試方法。不像在本地化過程中將軟體的文本翻譯成外語,而是用原始語言的改變版本替換應用程式的文本元素。

簡介

若一個軟體在設計時並未將本地化能力(localizability)納入考慮,那么在實際針對這軟體進行本地化翻譯時,將有可能會面臨許多問題。例如文字在翻譯後可能比來源語言的文字還要更長,那么將導致翻譯後的文字被截斷而難於辨識。例如軟體的選單、文字區域、按鍵、複選框等,設計者在做界面設計時通常先調整出適切於來源語言文字長度的大小(通常為英文),並進一步調整界面的對齊、位置、行距等等。然而,一些語言從來源語言被翻譯後,往往會比來源語言的長度更長,例如德文或是挪威文通常都比英文要來的長,於是原始的界面大小便會顯得過小而無法正常顯示翻譯後的文字。

問題還可能更加嚴重,一些語言的文字或符號可能因為軟體原始指定的字形並未支持,而導致無法正常顯示。問題也會出現到輸入端,某些程式設計師錯誤的假設用戶在輸入時不會輸入一些特殊字元或是特定語言的文字,而導致用戶在實際操作軟體時發生問題。

針對一些已然成熟且多數的目標語言翻譯已經可以獲取的軟體而言,或是僅會有少量界面變更的軟體,直接將翻譯套用至該軟體並進行多個語言的測試,可能是最直接且最好的測試方式。而針對一些新開發的軟體,或是將會有龐大的界面變更的軟體,等待翻譯完畢之後再進行界面測試,則可能因此延遲了整個測試的時程。並且,在軟體開發的初期也不見得會開始進行界面文字的翻譯,因為界面有很大的機率會被調整甚至重新設計。若要等到產品比較成熟後,開始進行界面翻譯,然後才進行翻譯的界面測試,產品的上市時程將可能因此被延誤。在這樣的狀況之下, 偽本地化將會是最佳的選擇,原因之一包含翻譯並不會真正的被運行。

一般而言,程式里預計要被翻譯的文字都將會被 偽翻譯(pseudo-translation)。假定英文為軟體的來源語言文字,一般而言 偽翻譯的文字必須要比來源語言的文字長度還要長,文字並且要包含較長且不含空白的單字,並且最好包含了不同語系的文字。如此一來,測試者便可藉由審查每個界面的組件來驗證有無文字被截斷的狀況發生。

本地化過程

傳統上,軟體的本地化獨立於軟體開發過程。在典型的場景中,軟體將以一種基本語言(例如英語)構建和測試,任何可本地化的元素都被提取到外部資源中。這些資源被移交給本地化團隊,以便翻譯成不同的目標語言。這種方法的問題在於,在本地化過程中可能會發現許多微妙的軟體錯誤,因為修復它們的時間太晚(或者更可能是太昂貴)。

本地化過程中可能出現的問題類型涉及書面文本在不同語言中出現的差異。這些問題包括:

•翻譯的文本明顯比源語言長,並且不適合UI約束,或者導致文本在尷尬的位置中斷。

•字型字形明顯大於或具有源語言中未找到的變音符號,並且可以垂直切除。

•閱讀順序不是從左到右的語言,這對用戶輸入尤其有問題。

•應用程式代碼,假定所有字元都適合有限的字元集,例如ASCII或ANSI,如果保留未被捕獲的話會產生實際的邏輯錯誤。

此外,本地化過程可以揭示元素應該可以本地化的位置,但是用源語言進行硬編碼。類似地,可能存在設計為本地化的元素,但不應該是(例如XML或HTML文檔中的元素名稱。)

偽定位旨在通過用源語言的發言者可讀的偽語言機械地替換所有可本地化的元素來在開發周期中捕獲這些類型的錯誤,但是其包含其他語言和腳本的大多數麻煩的元素。這就是為什麼偽定位被認為是工程或國際化工具而不是本地化工具。

Microsoft Windows中的偽本地化

在Windows Vista開發周期中,微軟引入了偽定位。為此目的而發明的偽語言類型在Windows用語中稱為偽語言環境。這些語言環境旨在使用Windows在時間基礎(“西方”),鏡像(“近東方”)和CJK(“遠程” - 使用的三大類外語之一中的字元集和腳本特徵。東“)。在Vista之前,這三種語言中的每一種都有自己獨立的Windows版本,可能具有不同的代碼庫(因此,不同的行為和錯誤。)為每個語言系列創建的偽語言環境將產生仍然“讀取”的文本。英語,但由其他語言的腳本組成。例如,文本字元串

編輯程式設定

將在“基本”偽語言環境中呈現為

[!!! εÐiţ Þr0ģЯãm səTτıИğ§ !!!]

此過程生成較長的轉換字元串,包括非ASCII字元,並且(在“鏡像”偽語言環境的情況下)從右到左書寫。

請注意,此示例中文本兩側的括弧有助於發現以下問題:

被截斷的文本(截斷)

通過組合(串聯)形成的字元串

不可本地化的字元串(硬編碼)

微軟的偽本地化過程

Michael Kaplan(微軟項目經理)解釋了偽本地化過程,類似於:

一個熱切而勤奮而又天真的實習本地化者,他渴望證明自己[或她自己]以及誰將要翻譯你不說的每一首字元串都不應該被翻譯。

偽定位過程的一個關鍵特性是它在開發周期中作為例程構建的一部分自動發生。該過程幾乎與用於生成真正的本地化構建的過程相同,但是在構建測試之前完成,在開發周期的早期階段。這為在基本代碼中找到的任何錯誤留出了時間,這比在發布日期臨近之前找不到的錯誤容易得多。

使用與非本地化構建相同的QA循環來測試由偽定位過程產生的構建。由於偽語言環境模仿英語文本,因此可以由英語使用者進行測試。 Windows版本(7和8)已經發布,其中一些偽本地化字元串完好無損。對於這些最新版本的Windows,偽本地化版本是主要的臨時版本(通常用於測試的版本),最終的英語版本構建是該版本的“本地化”版本。

用於其他平台的偽本地化工具

除了Microsoft內部使用的工具外,其他國際化工具還包括偽定位選項。這些工具包括Alchemy Software Development的Alchemy Catalyst,SDL的SDL Passolo和g11n的Globalyst。這些工具包括偽本地化功能,包括查看呈現的偽本地化對話框和自動化測試過程本身的能力。雖然像Globalyst這樣的工具完成了創建偽局部化構建和自動化測試的整個過程,但也可以通過在提取的文本資源上運行自定義偽局部化腳本並手動測試它來完成。

網際網路上有各種免費的偽定位資源,可以創建常見的本地化格式的偽本地化版本,如iOS字元串,Android xml,Gettext po等。這些站點(如Pseudolocalize.com和Babble-on)允許開發人員將字元串檔案上載到Web站點並下載生成的偽本地化檔案。

相關詞條

熱門詞條

聯絡我們