發表文章

目前顯示的是 9月, 2023的文章

Program 程式, Code 程式碼, Codebase 程式基底, Source Code 源始碼/源碼(原始碼), Object Code 目的碼

今天來探討一下與中文「程式」一詞,相關的資訊領域英文詞翻譯。 程式 首先,我們先來瞭解一下,什麼是「程式」啊? 打開教育部國語詞典,會看到下列介紹: 訂立一定的準式以為法則。 《管子・明法》:「法者,天下之程式也。」近似詞:法式       格式。 如:「公文程式」。 引導電腦依特定方式運作並產生結果的一組指令。 程式一詞,最早的概念是指法則規範,一套明確的規則系統,給天下人作規範之用。起先中文的「程式」一詞,代表的是英文的 Code。 後來電腦時代開始,所謂 Program 、 Code 都是一套寫下的來的規則系統,給機器作執行之用。 Program, Code Program 一詞偏向有目的導向情境,即為了完成某項作業內容,而設計出來的機器執行規則,隱含目的性質。 Code 一詞偏向物件指稱情境,即專指寫下來的那一套機器執行規則內容,隱含本源性質。 當時的譯者,將 Program 譯為程式,Code 譯為程式碼,透過這個「碼」的詞眼,來強調出給機器(如編譯器、直譯器等)讀的代碼規則內容。 而這裡的代碼,指的是各程式語言(無論高階、低階)所約定使用的指代用詞符碼,像是 if、else、AND、XOR 等等這些「碼」。 Codebase 最近在協助 Standard for Public Code 作翻譯校對時,看到 Codebase 一詞,以及該專案《詞彙表》中的解釋,讓我在想怎麼稱呼它才合適?是程式碼基底嗎?程式基底呢?或是代碼庫? Codebase 的解釋翻譯成中文後是這樣子的:     任何獨立分離的統合包,內含執行部分政策或軟體所需的程式(包含源碼與政策)、測試與文件等的整套內容。     舉例而言,這個具體形式可以是文件,或是版本控制的儲存庫。 喔喔喔!所以 Codebase 指的是那一整套讓「程式」可以執行運作的「底下的內容」(含源碼和其他一切東西),可以放在文件或儲存庫裡。 所以很明顯的,這裡的 Code 指涉程式的本源性質,而 Base 是基底,那麼 Codebase 就是「程式基底」了,和什麼庫無關。值得留意的是,雖然這裡的 Code 描述了程式的本源性質,但不能完全對應為程式「碼」,因為它也同時包含源碼 以外 的物件。 也有人將 Codebase 直譯為「源碼庫」的,以源碼二字指出程式的本源概念,雖不那麼適切,但還可以理解與接受。 Sour

Command 命令, Instruction 指令, Script 命令稿(指令稿), Scriptlet 小令稿;以及新譯詞是怎樣發想的

Command, Instruction 目前,在資訊領域的翻譯中,通常是將 Command 翻譯成「命令」,而命令又細分為低階的 Instruction 譯為「指令」,與高階的 Statement 譯為「陳述」相對。 然而,在台灣資訊領域剛興起的早期,中文用詞並未明確區分命令和指令的不同,常以口語中比較常講的「指令」一詞,同時稱呼 Command 與 Instruction。 截至2023年止,流通於市面上的最新電腦書籍,也都仍多以指令來稱呼 Command,已是民間相當普遍的習慣用語。 雖然大眾對於 Command 要稱命令還是指令,已經混用分不清;不過對譯者來說,依然建議應該明確區分 Command 與 Instruction 的差異。 Script 至於 Script 一詞,在台灣資訊領域社群(如 Unix/Linux 系統,或 Perl、Python、Lua 語言等技術社群)與電腦書籍中,多稱之為「指令稿」,少數稱「命令稿」。本人則建議應依據上述區分法,稱呼為「命令稿」;而指令稿,則屬於可被接受的翻譯。 在微軟系統所採用的翻譯用語中,則將 Script 稱為指令碼(想強調出指令型程式碼的意味)或腳本,兩者混用,但這兩者都不是理想的翻譯。 Script 英文本意所著重的意象,在於「文字手稿」,而依據英語概念泛化的特性,它同時可以指稱演戲給各腳色看的底稿(稱為腳本)、手寫字的文稿、各語言的書寫文字、手寫體等等。 因此 Script 簡單而言,就是「文稿」;再精細探討用一個漢字來表達 詞眼 的話,就約略對應到「稿」。 台灣資訊領域程式用語主流翻譯風格 接著套用 台灣資訊領域翻譯文化 :「只有譬喻式的英文詞(類似中文修辭的借代法)會跨情境直譯,至於其他所有模糊泛用的英文詞,皆會區別英文詞的不同情境,來對應翻譯成不同的中文詞」的精神,應該翻譯為「某某 稿 」,這也是前人當初會譯為「命令稿」的緣由。 這種考慮情境的直譯法,屬於形式對等翻譯 (formal equivalent)。 新譯詞發想 簡述以上台灣風格新譯詞的發想步驟為: 先瞭解該英文單字的泛化模糊概念整體 定下詞眼為骨幹 添補他字為肉以全該情境下之意義 至於把 Script 稱為腳本的直譯法,則是簡體中文常見的翻譯風格。 這種不考慮情境的形式對等 (formal equivalent without cont

Plugin 插件(插入式元件、外掛元件)

看過不少翻譯把 Plugin 翻譯為外掛程式的,然而中文裡的外掛,一般情況下不是指 Plugin/Plug-in。 所謂「外掛」程式指的是:掛在主程式之外,必須另外同步開啟執行的程式,用於改變主程式的行為,多見於遊戲破解用。例如作者童年時期常聽到的「遊戲修改大師」,就是知名的外掛程式。 口語中常聽見的:「他某某遊戲開外掛」或「他根本是開掛了吧!怎麼會這麼強!」,用的就是這詞的本意。 外掛程式,對應至英文,其實是 Game MOD hacking tool,其中 MOD 指的是 modification。 回過頭看這個 Plugin,沿襲台灣資訊領域翻譯詞彙很喜歡用某某元件、某某套件、某某件的稱呼慣例,例如 Addon/Add-on 被稱呼為附加元件,Extension 稱為擴充套件,Widget 稱為元件,Component 稱為組件等等⋯⋯那當然將這個 Plugin 依循這個規則套入後,就是「插入式元件」了!簡稱「插件」,這也是台灣一直都有人在用的翻譯詞。 而將 Plug-in 翻成外掛程式一派的翻譯法,則是認為 Plug-in 是將其他程式引入主程式的元件,目的是為了另外執行一個程式,掛到原本的主程式上執行,所以行為作用也類同外掛程式。 不過麻煩的是,簡體中文翻譯也將 Plugin 譯為「插件」,導致有些台灣翻譯者對這個詞不大喜歡,認為兩者應該區分,應將 Plugin 另外稱為「外掛程式」。而翻譯為外掛程式的缺點之一,是沒有遵循這一類程式被稱為「某某件」的慣例,至少也該是「外掛元件」;至於折衷的說法,應該稱為「外掛插件」。 本人是從開始接觸翻譯時,就將 Plugin 翻譯為插件的那一派。雖然能理解與尊重刻意區別作法的原因,但個人不大推薦將 Plugin 轉意改寫譯為外掛程式,因為外掛這個詞在普遍大眾認知裡已有不同的意思,更偏向「作弊」、「黑客密技」、「難以置信的強大」之意。 亦即,一般臺灣人所知的「外掛」早已與 Plugin 無關,實在沒有必要再刻意把他們綁在一起。Plugin 就應獨立叫它「插件」吧。 如果為了區分與簡體中文譯詞的分別,而刻意選用無法表達 Plugin 原意,且台灣中文詞也是不同意思的譯詞,並不大符合翻譯者該遵循的守則呢。