
最近寫了一些技術文件,然而這些文件必須要能夠跨平台,所以就用了 IETF 的標準來標示;然後就有了這一篇。
如果你玩過影片字幕的編寫這件事情,那麼或多或少你應該都看過有些字幕檔案會標示 zh-TW、en-US、en-GB、ja-JP……不過,你知道這些編碼是什麼意思嗎?我在剛開始摸索字幕製作的時候並不理解這些東西,只知道 zh-TW 代表台灣用中文,zh-CN 代表大陸用中文。那麼你應該也會和我一樣想,是不是乾脆標示成 TW 或是 CN 就好了?
話是這樣說沒錯,只是如果你的影片不只有中文字幕,甚至有多種翻譯字幕的時候,標示字幕就便成一件重要的事情。
IETF 標準
IETF(IETF,Internet Engineering Task Force)語言標籤是一個 BCP 47(Best Current Practice 47)的標準,主要組合來自於「語言代碼(Language code)」和「區域代碼(Region code)」所組成。
像 zh-TW zh-HK 就是分別是「中文漢字-台灣」和「中文漢字-香港」的意思。等於是一種語言對應不同地區的用法。
IETF 一開始的用途是為了網際網路制定技術標準,由非營利組織 IANA 所共同制定,目前管理 IETF 實際是由 ICANN(Internet Corporation for Assigned Names and Numbers)所管理,這是一個在美國負責全球網路命名編號的非營利組織。
然而字幕使用 IETF 其實就是用了這個標準來區分字幕的語系、地區用法,如出一徹。
如果你對這方面的標準技術有興趣,Alrin 這邊提供自己整理的「IETF 語言標籤表」,歡迎大家隨意取用~
如果字幕只是你要自己收藏,或者你的環境就是單一字幕,要不要標上 IETF 就請自己決定即可,因為標示多國字幕對意義真的不大。
IETF 在電腦上的其它相關應用
其實在 macOS、Windows、Linux 等系統中,語言與地區設定的背後也都是依循 IETF 的語言標籤格式。例如:
macOS 的「語言與地區」設定實際上對應的是 zh-TW(繁體中文,台灣地區)。
Windows 使用 locale 名稱(如 zh-TW)來設定 UI 語言、日期格式、數字小數點、貨幣符號(NT$)等。
Linux 以環境變數管理:
- LANG=zh_TW.UTF-8
- LC_TIME=zh_TW.UTF-8
- LC_MONETARY=zh_TW.UTF-8
很多跨平台軟體(如 Firefox、LibreOffice、Adobe 系列)都依據 IETF 標籤來區分語系檔:
- locales/zh-TW.json
- resources/lang/zh-TW.po
- Strings/zh_TW.lproj(macOS / iOS)
開發者會根據 zh-TW 判斷載入正確的翻譯、介面字串、或右到左語言支援(RTL)。
在 Mac 系統、軟體底層的資料架構中也常常會看到這些 IETF 的標記,這代表了 macOS 和 Unix、Linux 一樣,都是擁有多國語系的作業系統。
在 AI 所使用的自然語言處理(NLP)或翻譯資料集中,也會以 IETF 標籤標記語料來源:
- OpenAI、HuggingFace 等模型常用 zh-TW 來區分台灣繁體中文與 zh-HK、zh-CN。
- 此標籤有助於模型針對特定地區的語彙與口語特徵進行微調。
總結來說,IETF 不只是「語言代碼」,而是整個電腦與網際網路生態中「語言識別的共同協議」。
它在 OS、應用程式、文件、影音、網路協定、AI 模型中都有實際應用,是數位世界理解「中文(台灣)」的關鍵識別符號。
關於標準這件事
許多認識我的人應該都知道,我對標準、格式化非常的重視,不過這並不是我喜歡吹毛求疵,而是我覺得要有嚴謹的底層管理,後面要做事情才能夠不會被影響,無論你有多好的創意,底層資料不行,做出來的東西恐怕也多少會有些漏洞。
也許有人會覺得創意和這件事無關,但如果連褲子都穿不好的人,是要如何做藝術,我覺得本質是歪的做出來的東西就是歪的。
你覺得呢?想要討論歡迎留言給我🙂。























