Pig Latin 是一種趣味盎然的英文文字遊戲,它會把單字開頭的子音叢移到字尾並加上 "ay"(例如 pig 變成 igpay);如果單字以母音開頭,則直接加上 "way" 之類的後綴(例如 apple 變成 appleway)。由於並沒有單一的官方標準,因此任何宣稱能將 Pig Latin 轉回英文的工具,都必須選定一種方言並清楚記錄它的選擇。Pig Latin 翻譯工具採用一種特定且完整記錄的變體:開頭的子音叢會整體移動、qu 在開頭叢中保持相連、y 在單字開頭視為子音,以母音開頭的單字則加上 way 而非 yay 或 hay。因為所有步驟都在你的瀏覽器中本機執行,所以輸入內容不會上傳到翻譯伺服器。這種透明度也意味著此工具刻意不保證可靠的逆向翻譯;想將 Pig Latin 轉回英文的讀者,通常最好直接學習規則並親手解碼。

什麼是 Pig Latin,以及為何會有多種方言
PigLatin.org 以及大多數英文辭典都將 Pig Latin 描述為一種語言遊戲,而不是正式語言,這正是網路上流傳的規則略有不同的原因。所有方言都同意的部分很直接:當單字以一個或多個子音開頭時,該開頭叢會被移到字尾,並以 "ay" 取代。會變動的部分則是如何處理以母音開頭的單字。有些作者加上 "way",有些用 "yay",少數則堅持使用 "hay"。這個差異是大家在嘗試將 Pig Latin 轉回英文時,以及來回轉換結果看起來略有出入時,最大的困惑來源。
除了母音後綴之外,兩個較小的慣例在已發表的資料中也有所不同。第一個是 q 與 u 在單字開頭(例如 quiet 或 square)是否保持相連。第二個則是字母 y 究竟該視為母音還是子音。由於這些選擇會改變整個常見單字類別的輸出結果,任何誠實的實作都必須事先明確聲明。本工具所使用的翻譯器在頁面上清楚標示這兩項決定,而不是去猜測社群慣例,這就是為什麼不論是誰執行這個頁面,a quiet 或 a rhythm 在每次結果中都會長得一模一樣。
如何使用 Pig Latin 翻譯工具
此工具完全在覽器中執行,因此只要三個步驟,就能將英文轉換成其記錄在案的 Pig Latin 變體。
- 將含有你想轉換之 ASCII 單字的英文內容,輸入到輸入框中。
- 執行翻譯,並將頁面上所列之子音叢、qu、y 以及母音加 way 等規則,與你偏好的方言進行比對,這樣你才能預期輸出結果。
- 點擊複製按鈕即可一次複製顯示的完整結果,請記得 Pig Latin 是文字遊戲,而不是加密機制。
由於轉換過程只作用於完整的 ASCII 字母序列,含變音符號的單字、表情符號以及標點符號都會原封不動地通過。如果你想在轉換前後計算輸入內容含有多少字母,字元計數器可以與翻譯器即時搭配使用。如果你打算把翻譯後的內容與原文比對以找出差異,文字差異比對工具能逐行比對兩個有限版本的內容,無需上傳任何一邊。
翻譯工具所遵循的精確規則
以下每條規則都已在翻譯工具頁面上記載,並由測試案例覆蓋,以確保相同的輸入永遠產生相同的輸出。接下來的表格將運作範例集中整理在一起。
| 輸入單字 | Pig Latin 輸出 | 套用的規則 |
|---|---|---|
| pig | igpay | 單一開頭子音移動,加上 ay |
| shut | utshay | 兩個字母的子音整體移動 |
| skip | ipskay | 兩個字母的子音叢整體移動 |
| cathedral | athedralcay | 單一開頭子音移動,加上 ay |
| quiet | ietquay | Qu 在開頭叢中保持相連 |
| square | aresquay | Qu 保持相連,後續子音一併移動 |
| rhythm | ythmrhay | Y 在單字開頭視為子音 |
| apple | appleway | 母音開頭的單字,直接加上 way 後綴 |
| NASA | ASANAY | 開頭子音移動,全大寫形式保留 |
| speak | Eakspay | 混合大小寫的單字,移動過程中保留原始大小寫 |
子音叢規則
對於任何以一個或多個子音開頭的單字,此工具會找出第一個母音(a、e、i、o 或 u,或非開頭的 y)的位置,並將該位置之前的所有字母移到字尾。被移動的叢之後再加上 "ay"。由於這個叢被視為一個整體,因此像 str、thr 或 spl 這類的三字母開頭都會保持黏在一起。這正是產生 cathedralcay 和 ipskay 的同一條規則,也是演算法中在每次手動「將 Pig Latin 轉回英文」時都站得住腳的部分。
母音開頭規則
當單字的第一個字母是 a、e、i、o 或 u 時,該單字維持原位,並附加 "way" 後綴。這是本工具所選定的慣例,也是其輸出能與使用 "yay" 或 "hay" 的變體區分開來的單一最大原因。如果你試圖將其他方言產出的 Pig Latin 轉回英文,即使子音單字能乾淨解碼,以母音開頭的單字仍可能表現得略有不同。
qu 規則
當單字以 q 開頭時,後續的 u 會被視為同一子音叢的一部分。這代表 quiet 會變成 ietquay,而 square 會變成 aresquay,qu 會與後面的子音黏在一起。少了這條規則,一個單純找第一個母音的演算法會把這對字母拆開,產生像 uietqay 這種令人意外的片段,看起來像拼字錯誤,而不是同一個遊戲。
y 規則
字母 y 在單字開頭視為子音,而當它前面已有其他字母時則視為母音。因此 rhythm 會變成 ythmrhay,因為第一個母音位置是第二個 y,而包含到該 y 為止的所有字元都會隨叢一起移動。在像 myth 這種單字中,y 在計算叢時被視為母音,因此 myth 會依同一套機械式拼字規則變成 ythmay。
翻譯工具不會變動的部分
這項轉換嚴格僅作用於完全由 ASCII 字母 A 到 Z 所構成的完整單字,無論大小寫。範圍之外的所有內容都會原封不動地通過翻譯器,這就是為何標點、空白與大小寫等周邊內容都能保持可預期的行為。"Speak Pig Latin!" 這個句子會變成 "Eakspay Igpay Atinlay!",因為驚嘆號、空格以及開頭的大寫字母都保留在原本的位置。Tab 與換行符號的處理方式也一樣。
當翻譯器遇到像 Café 這種 Unicode 單字時,它會先偵測完整的字母序列,並且只翻譯完全由 ASCII 字母組成的部分。帶變音符號的 é 會使 Café 不會被拆成翻譯過的 Caf 片段加上孤立的 é,因此這個單字會保持完整。相同的保護機制也能避免表情符號、合併序列以及其他文字被切碎成無效片段。輸入上限為 100,000 個 Unicode 字碼點,對於空字串、格式錯誤的 UTF-16 或超出上限的輸入,則會回傳明確的錯誤訊息,而不會產生部分輸出。小寫、全大寫以及一般標題大小寫的形式,都會在轉換後的單字層級予以保留。混合大小寫的單字在字母片段移動時保留原本的大小寫,而新加上的後綴則維持小寫,因為此工具不會自行發明新的大小寫規則。
不含任何可辨識母音的單字仍會加上 "ay" 後綴,但不移動任何字母。這讓該函式在處理縮寫或不常見的子音字串時仍保持確定性,雖然這並非對發音的語言學主張。此工具不會查詢字典、辨識音節、分析音素,也不會判斷開頭的 h 或其他字母是否為啞音,因此不常見的名字、縮寫,以及含有啞音的單字,其結果可能與一般人偏好唸出的形式有所不同。
能將 Pig Latin 轉回英文嗎?
簡短的答案是:有時候可以,但無法可靠地做到。子音規則可以用手逆向處理,因為任何以 "ay" 結尾且帶有非空移動叢的輸出,一定來自開頭字母就是該叢的單字。如果你看到 igpay,你可以很有信心地還原成 pig;看到 athedralcay,也能很有信心地還原成 cathedral。只要知道該方言使用的是哪個後綴,母音開頭的情況同樣可逆;在這個工具所記錄的慣例下,任何以 way 結尾且以母音開頭的字,原本就是一個以母音開頭的英文單字。
困難的情況在於那些在兩種切分下看起來相同的單字。像 Ietquay 這種名字必然來自以 qu 開頭的單字,但像 awayway 這種片段只能告訴你原字在 way 後綴慣例下是以母音開頭,卻無法得知原本的母音是哪一個。方言的差異讓自動解碼更加模稜兩可,這正是翻譯器刻意不承諾可靠逆向模式的理由。如果你需要將別人傳給你的 Pig Latin 訊息轉回英文,套用記錄在案的規則手動處理,就能應付大多數的單字;對於無法乾淨解碼的部分,則可向傳送者詢問他們使用的是哪一種方言。
實際用途與課堂範例
老師們將 Pig Latin 用作快速的暖身活動、用於學生必須辨識被移動叢的拼字練習,以及用於說明正字法與發音之間的差異。家長則用來讓操場上的悄悄話不會被年紀更小的弟妹讀懂,前提是大家都清楚任何懂規則的年長孩子都能讀懂它。作家與謎題設計者把它當作遊戲提示的輕量密碼使用,並了解它終究只是文字遊戲而非加密。開發者則藉此學習一個小型文字轉換管線如何運作:分詞、找出邊界條件、套用規則、保留周邊脈絡。本工具所使用的翻譯器正是該管線的一份完整記錄範例,而此頁面上的每一條規則都由測試案例覆蓋,以確保相同的輸入永遠產生相同的輸出。
對於較長的內容,請一次貼上整個段落,工具就會就地轉換每個單字,同時保留段落分隔、tab 與標點符號不動。如果你想快速檢查結果是否合理,可以將原文與翻譯後的文字一併貼進文字差異比對工具,你就只會看到被變動的單字字元,而每個空格與標點符號都會對齊。若想在轉換前後計算音節或字母數量,單字計數器可在同一個瀏器工作階段中即時追蹤總數。
延伸閱讀:將 Wingdings 轉換為英文:解碼任何訊息。