Blender 翻譯故事

話說,昨天被 Blender 愛好者何彥儀,阿彥,邀請分享當初翻譯 Blender 的心路歷程、目標與理念。

雖然說沒有什麼心路歷程,但確實有一段很長的故事,且聽我娓娓道來。

翻譯歷程

要講到 blender,就必須從我接觸 Linux 開始說起。

我個人從 2003 開始接觸 Linux 作業系統,最早是臺南縣網 ols3 主持的 B2D 系統,裝好後就是調校好的 Debian GNU/Linux 系統,很多方便的工具早就裝好了,深深讓我驚豔並從 Windows 轉用 Linux。那時最常上的網站不外乎 Knoppix 技術交流網、自由軟體技術交流網、摩托學園,也開始參與社群討論。

2004年底在摩托學園上看到阿信板大一篇「Ubuntu 的使用感想」後 [1],也開始用起 Ubuntu。2005年6月11日 Ubuntu-TW 開站便馬上註冊,偶爾關注並參與上面的討論。

2007年2月11日,看到魏藥在 Ubuntu-TW 上的「[3D設計]Blender」一文 [2],當下把 2.42a 安裝起來試用,除了界面還是英文之外,此外操作上也有點門檻。文中也有提到,當時只有簡中版。於是心中就有個想法,如果這套軟體可以繁體中文化 (這詞也就是今天說的正體中文化),不就可以再降低門檻嗎?遂以匿名身份留下了「要怎樣去翻譯阿?老實說我不習慣看太多英文」這樣一段話,不過沒有得到相關回應,轉而自行搜索相關資訊。

找到的第一項資訊就是 blender wiki 上對國際化的說明文件:Interface Internationalization [3],跟著文件描述走,得知方法有兩種,一是用 blender 的源碼自己做出 po 檔;二是 Blender source distribution 中與 Blender websvn 中都有 po 檔,當時整理得最完整的是德語的 de.po,版本是 2.4x,所以可以直接拿這個版本作為模板,酌情參考簡中翻譯進而翻譯出正體中文版,可以免去自己做 po 檔的麻煩。

文件最後方提到如要提交翻譯,請寄送到 bf-committers@blender.org,所以同時也加入 bf-committers 郵遞論壇,追蹤開發資訊中是否有提到翻譯相關事務,但除了開發上的討論外,始終沒有看到相關翻譯討論。

由於舊版 po 檔過於雜亂且龐大,加上當時課業繁忙難以重頭開始,自己著手處理一小段之後就先擱置一旁。

沈寂一段時間後,於2009年8月底,得知 Blender Taiwan-繁體中文社群[台灣] 網站上有提供繁體中文版,於是前往註冊,並討論翻譯事宜,當時建議站長 hanklu 以 Tryneeds 平臺 [4] 進行翻譯,再將成果推回去官方,我可以代跑官方流程。取得 hanklu 同意後,並發信與 Tryneeds 平臺站長 frank 討論是否可將 blender 上架,也從討論中得知魏藥在 2008年7月26日轉了個繁體中文版供人使用。frank 希望能先用最新版的 de.po 參考以前翻譯的,做出新的 blender_zh_TW.po 檔後再講下一步。

後續在 Blender 繁體中文社群網站上討論得知,站長 hanklu 之前雖有替 Blender 2.45 (2007-Sep-24 發行) 做過翻譯,不過目前正體中文版本最新的 2.48 是別人做的 (站長沒有提到是誰),所以他沒有親手確認過 2.48 的 po 檔翻譯;然而站長手邊只有當初 2.45 的 mo 檔 (編譯後的機讀檔),還沒找到當初 2.45 的 po 檔 (可攜式的人讀檔),他會再重新製作。

與此同時,blender 正在籌備 2.5 版的發行。2.5 版照官方網站的發展計畫來看,會是個大翻修,在 UI 上與 Code 上將會有大幅度的改進,並加入新的工具等。如果 2.5 一大改,我們短期內生出的 2.4x 翻譯可能就不適用,或許 2.5 又得重新來過,不過當時發行進度只顯示 current version: 2.49,current dev status: B-Con5 (也就是穩定版釋出),並尚未列出 2.5 的開發進度,於是決定走到哪裡算哪裡。

2009年11月19日, bf-committers 郵遞論壇上出現一篇 Kent Mein 所撰寫,針對 i18n 架構的建議 (即 blender 軟體的國際化架構建議),標題為「Internationalization (i18n) and blender state of affairs...」,意思是「論國際化處理 (i18n) 與 blender 上的情勢」,內容洋洋灑灑一大篇 [5],但沒有得到熱烈回應。我便回文試圖詢問開發者間是否對此議題有未來規劃 [6]:
So do we have any plan to improve the i18n framework under Blender?

-- 
Sincerely,
by Cheng-Chia Tseng
可惜沒有得到任何回應。

2010年1月20日,hanklu 回信說最近他要開始動工,是否有最新的 po 檔?我用瀏覽器連到 source code svn 看了一下,發現 de.po 與 zh-CN 這兩個檔案四個月來一直都沒有動過。svn 中 trunk 資料夾當時擺放的是 2.5 版,試驗的版本則是放在 branches 資料夾下,經過 md5sum 驗證後,trunk 裡面目前的檔案和上次寄給 hanklu 的檔案確實是一樣的。這也就是代表,官方 2.5 版並沒有打算更新國際化處理與翻譯這塊領域。

2010年1月23日自由日,軟體自由協會舉辦「自由軟體中文化聚會」[7]。在聚會上除了聆聽臺灣各大自由軟體專案領導人,如 KDE 正體中文翻譯團隊協調者與 tryneeds 平臺站長 frank,還有 GNOME 正體中文翻譯團隊協調者 Chao-Hsiung Liao 的分享外,我現場也被邀請分享自身參與自由軟體專案翻譯的經驗,例如 Ubuntu 正體中文翻譯、moblin、xfce 等等。

當天會後與 Chao-Hsiung Liao 聊並請教 blender 目前翻譯上遇到的瓶頸,初次得知可以將 mo 檔轉回 po 檔,只要運用指令列 msgfmt 程式即可。後續的信件討論,Chao-Hsiung Liao 除了寄給我從 hanklu 2.45 mo 檔轉換成的 po 檔、從 de.po 做成的 pot (全空白僅有字串但無翻譯的翻譯模板),並且還審視了一次 blender svn 上的所有翻譯檔,並告訴我他的看法:
只是這些都還跟他們 Wiki 上的說法不同,在 Wiki 上是需要把所有 po 檔合併起來以達到最大的覆蓋率,但實際上應該是做不到,像中國的檔案就有幾千條。

從其他國的 po 檔來看,除了少數幾國之外大部分的做法都是很 dirty 的, 一些 po 檔都沒有該有的欄位,只是一堆 msgid 和 msgstr。也就是說有些語言可能是直接看軟體有哪些字,然後再自行加上 msgid 和 msgstr 而成的,總之可能要多斟酌再看看吧。
所以看來即使套用 de.po 做成的檔案來翻,也不見得能完成絕大部份的介面翻譯,blender 當時的國際化架構似乎問題很大。此外,廖兄也給我他所使用的工具名稱,所以趁著假期花了點時間研究 msgfmt 的用法。接著,我將 mo 檔轉回的 hanklu 2.45 po 檔寄給 hanklu,讓他可以從已有的版本繼續翻譯,不必全部重來。此刻,終於完成當初 frank 所說,「先用最新版的 de.po 參考以前翻譯的,做出新的 blender_zh_TW.po 檔」,只不過還得等 hanklu 這邊的發展,才有辦法繼續下一步。

又過了一段寂靜期,沒有任何相關消息。由於太久沒有消息,於是也很久沒追 bf-committers 上的討論。

2011年7月19日,葉磊 (extraymond) 來信表示他已加入 blender-translator 的行列 [8],他將 blender 的翻譯放上 launchpad 平臺上,想請教 launchpad 與 svn 的同步問題。後續討論得知他們當下的翻譯,是為了測試未來多語言所做的 garlic 分支,只是提供大家來翻譯,以後再合併回官方。blender-translator 團隊是由簡中翻譯的 congcong009 所主持。至於當時 blender 的正體中文有四個人,葉磊、shang、dokinkon、Serbinly,後來我也加入其中協助翻譯。

2011年7月25日,shang (Shang-Cih Huang) 開了一份 google 試算表 [9] 作分工、統一與討論術語之用。我們當時皆以此作溝通平臺,並且在 Blender Taiwan-繁體中文社群 網站上發表消息並讓其他使用者參與討論。

不過由於專案過於龐大,即使分工領條目翻譯、校閱也相當難完成,尤其是不清楚字串使用情境,更是一頭霧水。各翻譯者的譯法、程度、採用的詞語不同,也讓成品看起來有點雜亂無章。不過這項合作行動仍持續運作到約莫10月,後續就沒什麼動靜了。

2012年1月底,我開始找尋官方資料,得知 Blender 的多國語言架構,也就是 i18n 部份,在 Xiaoxiangquan 提出的 Google Summer of Code 計畫下得以成形 [10],並與 congcong009 一起合作發展 blender 的翻譯計畫,主要想納入中、日、韓三國語言。翻譯專案所使用的郵遞論壇為 bf-translations-dev,所以便開始參與上面的討論。找到官方參與管道後,我以長年貢獻的多項自由軟體翻譯者身份申請加入行列,希望能改善當時發行的正體中文版。審核後獲得許可,於是以正體中文翻譯維護者的身份,修正當時 shang 透過 congcong009 提交的官方翻譯。

那時的正體中文官方 po 檔有許多問題,第一是許多簡體術語尚未修正;第二是絕大部分條目尚未翻譯,第三是簡轉繁時有錯誤發生,有不少確定的繁體翻譯都跟原文無關,可能是翻譯字串位置錯位了。

一開始,我是以搜尋取代的方式改正用語,但發現許多問題不可能靠此方式解決,例如前述之譯法沒有一致,譯詞也沒有一致,翻譯又缺這麼多,甚至許多確定的翻譯都是錯的。因此唯一可行的解決之道,就是從頭到尾一條一條翻譯、審閱。

除了翻譯外,也找了官方資料看如何編譯出新版 blender,如此我就能一邊推敲翻譯,一邊套用在最新開發的 blender 上看成果,只不過開發版本很容易崩壞,容易會有一段時間無法成功編譯,後來偶爾直接用取代官方打包之 blender mo 檔來試驗。

約莫此同時,得知德魯依有維護自己的翻譯版,2012年2月7日與之通信提及合作翻譯的訊息,答覆說相當歡迎我的協助。當時除了討論到翻譯檔的取得方法外,後續沒有進展,因此轉而繼續處理手邊現有的官方翻譯版。

翻譯理念

翻譯途中當然會遇到很多問題,例如譯詞的取捨。就以 Render 為例,當時現有的各種翻譯,最常見的為「算圖」,次常見但越來越普遍的「渲染」,以及比較少見的「彩現」。遇到這種懸而未決的詞語,我都會先略過但紀錄起來,把確定的部份都翻了,之後再來研究。

當時正好拜讀思果的「翻譯研究」一書,邊讀邊檢討自己以往的翻譯理念是否需要修正。有幾個很重要的觀念深感認同,例如:
翻譯切不可不守紀律,沒有尺寸,亂添亂減。雖然佳譯像鹽化在水裡,看不出痕跡,但鹽總在那裡,沒有添,沒有減。有的翻譯是「演義」派,補出很多情節,全是原文沒有的。有人隨意刪削,好像在編輯。
尤其看到下面敘述時,更馬上點起頭來:
誰也不能否認,目前的翻譯已經成了另一種文字,雖然勉強可以懂,但絕對不是中文。[中略...] 如果你批評那種不像中文的譯文,譯者可以理直氣壯地回答你:「你不知道大家都是這樣翻的嗎?」
思果更提出「信、達、貼」新的翻譯觀點,信是指譯者對原作者負責,把原意用中文表出,不要表錯;達是譯者替讀者服務,作者的原意雖已經表達出來了,也得讓讀者看懂才算盡職;至於這個貼呢?譯文也確實,讀者也懂,但表達是否貼不貼切,符合原文中的文體、氣勢等等層面呢?

個人在擬定翻譯時有幾個準則;

第一,同個字在同個情境下盡可能採用同個翻譯,以求前後統一,一旦對應關係固定就能方便整理出中英對照表作資料查詢時的參照;至於不同的情境各自使用最適當的譯詞。

第二,盡可能簡短地表達作者的原意,如果翻譯還無法讓讀者輕易明瞭,才補上相關內容以全其意。

第三,若現有譯詞有缺陷,不介意採用其他譯詞,只要譯詞能降低理解門檻,而且更貼近原意,就採用更合適的翻譯。

由於 Render 的現有翻譯都有些缺陷,因此開始著手找資料想怎麼翻譯會更好。

對於「算圖」一詞,我覺得圖字限制了譯詞的用法,也沒有 Render 在英語中專門指稱「藝術表現手法」這樣的意味在。因為英文中,不管是繪畫領域,如描繪圖畫;音樂領域,如表演樂曲;或是文學領域,如語言翻譯;抑或是電腦程序,如使用色彩與光影著色表現使其結果看來如實且具體,都可以用 Render 一詞。

以「渲染」來說,渲染這翻譯可爭議大了,第一因為它原是指國畫的水墨表現技法,後來文學上有了許多衍生意。例如「過度渲染」、「大肆渲染」,就是以渲染技法使用拙劣而造成反效果而延伸出來;再來「情節的渲染與人物的刻寫」、「店裡的擺設、燈光、音樂,渲染出獨特的甜蜜氣氛」的渲染,則是以渲染技法表現得當為比喻。

因此,這樣一個多重意義的中文字眼,搭上 Render 著實不妥當,除了極可能被誤解成水墨表現外,更有負面的「誇大的過度表現」之意。至於以渲染技法作 3D 領域中 Render 的比喻,或許真有點藝術味在裡頭,但這裡的意義卻明顯非指渲、非指染。如果把「渲染」二字套進去 Wikipedia 的解釋中,如下:
渲染就是指透過電腦程式製作出模型影像的一道程序。
一般讀者腦中馬上就會浮現疑問,「什麼?渲染是電腦程序?是我看錯了嗎?」,因為在大眾的了解中,渲染一詞就是水墨技法,怎麼會是這道程序。重新定義既有中文詞彙之意,或許很酷,但卻畸型。我認為找出更能貼切表達出 Render 此刻意義的翻譯,才是翻譯者該走的路,這也就是翻譯者職責所在。

所以,我開始思考 Render 這個動作究竟做了什麼,大致上就是先計算計算模型的材質紋理如何與光照、光影著色法...等設置交互影響後結果為何,成果以像素一點一點地繪製成影像給使用者。此刻,腦中就馬上閃過「算繪」這個詞語,定了下來。

當然,除了 Render 外還有很多譯詞有類似爭議,像是 Matte 原意是一種遮擋住背景的片子 (reverse matte 可以遮前景),舉例來說你可以利用他把原先為藍色背景的底片,做成背景換為夏威夷風景的新底片出來,這樣的處理業界常叫「接景」,但如果從原字詞去翻譯, 大概是「遮景片」的意含;又例如 Mapping 是數學中「映射」的概念,可以把 A  處的某個區域映射至某個影像,這樣的處理業界常叫「貼圖」,等等不勝枚舉。

所以一開始翻譯出來的版本,這種常見卻又充滿爭議的翻譯都尚未確定其譯詞。為了讓翻譯早日完成,最早處理這種爭議翻譯的方式,就是先用個平時最常見的通用翻譯字眼,例如 Layer 就用「層」,Frame 就用「幀」等等,Key 就用「鍵」等等,待之後有更好的譯詞時再作修改,並且希望能表達原意。

之所以 Layer 不用圖層,很明顯就是因為 blender 中的 layer 不是放圖用的,當然不可以直接採用既有且通行的前人譯法。後來改用「層面」一詞反而就能良好指出 Layer 的概念,不同層面可以有不同的物體,還能彼此間切換,從不同層面看世界。

之所以 Frame 用幀不用框或格,是因為所有的電腦雜誌對 framerate 都講幀率,影片壓制領域也是用幀,加上 Frame 在該情境下的意思就是所見畫面的框,因此 frame 約莫是我們講裱框,或是裝幀中的「框幀」。

之所以 Key 不用關鍵,或是鑰匙,是因為這裡的 Key 都不是這些意思,而是「卡住某物使之不脫離」的意思;當然,這裡就是指卡住物體使之不脫離框幀。而漢字中所謂的「鍵」就是指卡住某物的重要桿狀物體,例如門閂就稱為鍵:五吋之鍵,制門之開闔;在車輪的外側穿過車軸以卡住車輪使之無法脫離的桿狀物也稱為鍵。至於關鍵,原意是指重要出入口 (關) 的門閂 (鍵),後來有機關或事物的重要部份之意;鑰匙則是開啟鎖的器物。因此 Key 仍維持「鍵」的翻譯。

能表達出原意,且讓翻譯更貼近中文,一直是我處理這類爭議翻譯的解決方法,這也是我認為能讓「任何人」都可輕鬆理解原意,甚至無須先備知識就能明瞭的較佳作法。

2012年2月底,翻譯程度約 30% 左右。 

2012年8月中更新到 90% 左右,發表了一篇「blender 翻譯近況」[11] 描寫當時的翻譯心得,由於翻譯完成度已高,同時也提出個人對於翻譯整合上的看法。

2013年12月3日,現在官方的 zh_TW.po 檔有 19780 個字串,完成 19187 個翻譯,計 97%。

2013年12月7日,何彥儀 (阿彥) 在 Facebook 上「台灣Blender使用者小聚」上發表文章,思考翻譯版本整合問題,除提出個人看法外,也提請目前各主要翻譯團隊分享 [12] 彼此團隊的目標與理念,期望在翻譯這一塊能有更進一步的進展。


結語與未來展望

翻譯的過程中,很高興在官方郵遞論壇上結識了簡中目前的主力維護者 Leon Cheung,討論過一些翻譯議題,很多目前 Blender 在多國語言架構上無法良好處理的地方都是他回報的,大多數都已經修正,個人非常感謝他所做的付出;Bastien Montagne (mont29) 則是現在官方翻譯統整的負責人,幾乎所有的多國語言架構問題幾乎都是他修正的,blender 介面中的翻譯用附加元件也是他撰寫的,更是國際化領域中的一大貢獻者。

此外,也感謝 Taijuin Lee 曾來信給予我許多 blender 翻譯上的建議,協助修正翻譯,讓翻譯變得更好。雖然目前的翻譯版可能還沒盡善盡美,我也努力透過多方管道,請幾位著名 blender 的工作者、推廣者能夠給予意見回饋。期待,未來 blender 的翻譯能夠更上一層樓,讓更多人可以跨越語言障礙,體認 blender 的美。

資料來源

  1. http://moto.debian.tw/viewtopic.php?f=4&t=4932&p=30478#p30478
  2. http://www.ubuntu-tw.com/modules/newbb/viewtopic.php?topic_id=3520&viewmode=flat&order=ASC&type=&mode=0&start=0
  3. http://wiki.blender.org/index.php/Dev:2.4/Doc/How_to/Localize_the_Interface
  4. http://tryneeds.westart.tw/tryneeds/
  5. http://lists.blender.org/pipermail/bf-committers/2009-November/025171.html
  6. http://lists.blender.org/pipermail/bf-committers/2009-November/025318.html
  7. http://www.slat.org/slat//modules/eguide/event.php?eid=1
  8. https://launchpad.net/~bf-translators
  9. https://docs.google.com/spreadsheet/ccc?key=0At2avIF41c2udEIwWmJiRXlnSHAtNktaa19xZlN3VVE&usp=sharing
  10. http://wiki.blender.org/index.php/User:Xiaoxiangquan/GoogleSummerOfCode/2011/Internationalization
  11. http://breezymove.blogspot.tw/2012/08/bledner.html 
  12. https://www.facebook.com/groups/tbuc.adm/permalink/666185640068951/

留言

這個網誌中的熱門文章

論 Render 翻譯(算繪/演繹)

poedit 基本使用教學與 po 檔概念

論 Package 翻譯,套件與軟體包