論 Package 翻譯,套件(包)與軟體包

過去翻譯前輩常將 package 譯為「套件」,一開始我是直接沿用而毫無思考,但後來各個因素才讓我從而重新思考這個英文詞語。

正文

什麼是套件?首先我們來看套件一詞在日常生活中的用法:

  1.  螺絲套件 
  2. 玩具組裝套件 
  3. 熱感應套件 
  4. 智慧駕駛輔助套件 
  5. 空氣動力套件。

究其根本,套件的意思就是:「成套的組件」,更清楚的說,就是「可組裝以構成某部件 (或某功能) 所需之成套零組件」。

那麼 Linux 系統中常見的 package 又是什麼?其實它就是 software package,本質上就是將許多軟體整理成的包裹。

舉例來說,過去 gnome-packagekit 採用 package 來指稱軟體包;目前 gnome-packagekit 新版,則為與其他 GNOME 軟體一致採更通用的名稱,而將介面中的所有 package 字眼改為 software,更顯示出 package 提供的本質就是為了安裝 software 而存在的。

甚者,各種格式的 package 其實本身是種封存檔,可以透過解壓縮軟體抽出內部檔案,這也就是 package 的包裝特質。

如果要用一個字來當作 Package 的詞眼,那麼很明顯就是「包」,是這個詞在翻譯時不可以省略的骨幹。

在軟體管理中,package 與 repository 兩者是同等重要的詞語,前者儲藏於後者中。我們通常連線至 repository 取得 package 後,在本地端解開 package 並安裝到系統中。其實兩者間的概念就是倉庫 (repository) 與包裹 (package) 的關係,英文描述中已經將此兩者的概念明顯內含在其中,讀者只要瞭解日常生活中的實際情況,就能馬上明瞭它們之間的關係。
 
我們日常口中所說的套件,指的是一套構成某物的組件;而 package,則是將東西打成一包後所見的一整個封存體。

以日常生活為例,例如從賣場買回的椅子組裝箱中,箱子中會有多組套件,像是椅墊、滾輪、氣壓棒、螺絲等,而各組套件獨立裝包(套件包),這些套件包再被一個大箱封住,這就是套件、套件包與總包裹間的關係。

那麼生活中有人在說套件庫嗎?這麼一想,生活中存放套件的地方其實是套件箱,是一種可以收納並整理各式套件的箱子(或盒子),比較常講的是「工具箱」。一個套件箱提供的套件,通常都是可組成結構型態類似,但實際規格有所差異的構造,例如不同設計、不同寬度、不同高度的螺絲,或是手把、水龍頭等;因此你只要準備一個套件箱,就能應付不同狀況的使用。

從這個角度來看,我們甚至可以說套件箱是種包裹,或許姑且稱之為「套件包」吧! 但如果真的是想講套件「庫」呢?這麼一提,或許套件庫指的是供應商存放各種套件包的倉庫吧!但實際生活中,相似的情境除了供應商與倉庫這兩個詞彙之外,我從未聽聞過「套件庫」一詞混入人們的對話中,所謂的套件庫我猜約略指涉存放套件包的倉庫這個概念。

那麼我們可以稱為 package 為套件嗎?我現在認為萬萬不可。

首先,套件是成套的零件,永遠只會是包裹中的部分而已,而這部份也許是全部,抑或是其中一部份。以數學來看,零件是元素,套件是集合,或是聯集之中的元素,而包裹則是宇集。這樣看得出兩者的差別了嗎?

此外,許多包裹住套件的包裹(套件包)還可以湊在一起再被包裹成包裹,所以我們能輕鬆想像包中包的情況,而這正好是 meta-package 的概念。

然而套件一詞字面上卻無法給讀者提示包裝之間的關係,反而成為讀者理解上的障礙。或許稱 package 為套件可以表達裝了軟體就能擴充所需要的功能沒錯,但卻失去了最重要的包裹概念,最起碼該稱之為套件包。這是過去譯者將 package 根據他所理解的 package 作用,轉意為套件的譯法,卻不夠貼切原意。

再者,套件與套件庫無法明確表達出包裹與倉儲間的關係。因為日常的口語中,最多我們只會用到套件箱或套件包;甚至沒有套件庫的說法。

至於絕大多數人來說,聽聞「套件」二字時,主要是車廠在推車子升級,詢問是否客戶打算要擴充、升級功能,加裝或改裝其他套件?所以要透過套件一詞理解 Package 背後的概念也就更難了。畢竟這種情境下指稱的套件,更貼近我們打算擴充某軟體現有功能時所講的 extension,例如 Firefox 或 GNOME Shell 的 extension。

我個人認為 package 翻成套件根本搭不上,而且也無法把「software package」這種把所需要的東西打成一包一包的包裹概念傳達出來。如果那些 package mannagement 的軟體開發者會說流暢的漢語,一聽到有人把 package 翻成套件時我以為勢必會破口大罵說:「你在說什麼鬼話?我才不是那樣說的!」

不好、甚至會讓人誤解的翻譯總該讓它走去,因襲前人的難解翻譯不僅無法讓翻譯進步,更讓該明瞭的東西永遠蒙上一層灰幕,總讓想理解它的人含混不清。或許說著,「這是傳統」,「我們都習慣了」,「這就是我們稱呼它的方式,你不該改動它」,這些是我看過最沒邏輯與說服力的辯解了。

能貼切地傳達作者本意給讀者,那才是翻譯者該做的事。我認為,package 與 repository 的翻譯必須給予讀者包裹的概念,或可稱之為軟體包與軟體庫吧。

註:在軟體管理領域之外,也有些軟體會把類似 module、extension 這種性質的組件稱為 package,這時翻譯為「套件包」或「套件」就不會失真,是較合適的翻譯。

感謝 V 字龍在 package 一詞上給予一直承襲前人翻譯的我另一個看法,讓我得以重新出發去思考這個棘手的翻譯問題。

留言

  1. 確實,翻成"套件"會有的這種誤解

    回覆刪除
  2. 「package」翻譯為「軟體包」
    「kit」則翻譯為「套件」
    這樣理解對嗎?

    回覆刪除
  3. 我覺得在翻譯 Package 的時候應該將中文的「詞綴」也納入考量。

    就比如 Tiger 的中文其實就是「虎」,但是我們並不會直接講「虎」而是講「老虎」。不過一旦我們提到哪一種老虎的時候「詞綴」就不太需要了:孟加拉虎、劍齒虎、蘇門達臘虎......等等。究其原因,我覺得是因為我們不習慣只講「單音節」的詞。

    如果將這個翻譯機制套用到 Package 的話,大陸那邊對 Package 的翻譯我記得是「包」。但是我覺得如果單獨講「包」的話很饒口,應該在前面加個「詞綴」唸起來才比較順口。最終我覺得「程式」這個詞綴比較合適。如果將其他詞和 Package 進行組合,「程式」這個詞綴同樣也可以拿掉。譬如:

    Package = 程式包
    Installation Package = 安裝包
    Software Package = 軟體包
    Translation Package = 翻譯包
    Binary Package = 二進位包
    Source Package = 來源包
    Package Management = 包管理
    Package Manager = 包管理工具

    我會將「程式」作為修飾「包」的詞綴主要是參考了 Library:

    Library = 程式庫
    Static Library = 靜態庫
    Dynamic Library = 動態庫
    Shared Library = 共享庫

    而且在國家教育研究院中也有將看到「程式包」這麼一種翻譯。
    https://terms.naer.edu.tw/detail/2454220/

    回覆刪除
    回覆
    1. 同意單獨講包很饒口,加個前綴某某包更好!

      刪除
    2. 最近我覺得:

      * Package Management = 程式包管理
      * Package Manager = 程式包管理器

      這樣翻譯比較好。

      刪除
  4. 就我的觀察,Repository 在兩岸的翻譯分別為:

    - 大陸:倉庫
    - 台灣:儲存庫

    回覆刪除

張貼留言

這個網誌中的熱門文章

直行橫列,以及 line (列/行), column (欄), row (列)

正體中文、繁體中文?

Permission 權能/取用權; Permission denied 取用遭拒; Ask for permission 請求權能/取用權; Don't have the right permission to 沒有權能/無權