
說實(shí)話,第一次看到"網(wǎng)站本地化"這個詞的時候,我也以為是找人把網(wǎng)頁上的英文翻譯成中文就行。后來真正接觸這個行業(yè)才發(fā)現(xiàn),這事兒遠(yuǎn)比想象中復(fù)雜。就像你把一道川菜原封不動端給不吃辣的外國人,他可能會禮貌地笑笑,但絕對不會動筷子。網(wǎng)站本地化也是這樣——不是簡單換個語言,而是得讓整個網(wǎng)站在新的文化土壤里活起來。
康茂峰這幾年處理過幾百個本地化項目,從企業(yè)官網(wǎng)到電商平臺,從醫(yī)療系統(tǒng)到游戲社區(qū)。每個項目背后都有一套技術(shù)體系在支撐。今天我就把這些技術(shù)拆開揉碎了講給你聽,不帶那些讓人頭疼的術(shù)語,就像聊天一樣。
翻譯是把"Hello"變成"你好",本地化是把整個打招呼的方式都換了——包括說話的語氣、使用的貨幣、日期的寫法,甚至是頁面的布局。
舉個例子,同樣是顯示日期,美國人習(xí)慣"12/25/2023",歐洲人習(xí)慣"25.12.2023",而日本人可能更喜歡"2023年12月25日"。如果你的網(wǎng)站硬是要用同一種格式顯示給所有人看,用戶體驗肯定打折。這背后需要的技術(shù),遠(yuǎn)不止是字典 lookup 那么簡單。

現(xiàn)在我們聊聊最基礎(chǔ)但也最容易踩坑的部分——內(nèi)容管理系統(tǒng),也就是 CMS。
一個好的 CMS 必須支持 i18n(國際化)和 L10n(本地化)。i18n 是 Internationalization 的縮寫,因為首尾字母中間有18個字符;L10n 同理是 Localization。這兩個概念經(jīng)常被混著說,但技術(shù)實(shí)現(xiàn)上差別很大。
i18n 是打底工作,指的是在設(shè)計軟件的時候就預(yù)留好支持多種語言的接口。就像建房子的時候提前埋好電線管道,而不是等裝修完了再鑿墻。具體來說,代碼里不能硬編碼任何特定語言的字符串,得把這些文本抽出來放到單獨(dú)的資源文件里。
康茂峰的技術(shù)團(tuán)隊有個經(jīng)驗:很多老舊的 CMS 系統(tǒng)在這方面做得一塌糊涂。字符串散落在 HTML、JavaScript、后端代碼的各個角落。等到要擴(kuò)展新語言的時候,工程師得像偵探一樣滿世界找文本,漏掉一處就是滿屏亂碼。
現(xiàn)代的做法是用 gettext 或者 JSON 資源文件。gettext 是 Linux 世界的老牌方案,用 .po 和 .mo 文件管理翻譯;JSON 更輕量,前端框架像 React、Vue 都喜歡用這種。關(guān)鍵是,這些文件得支持 占位符(placeholders)——比如 "Welcome, {username}!" 這種格式,而不是硬寫成 "Welcome, John!",否則中文環(huán)境下語法就會亂套。
說到亂碼,就不得不提字符編碼。這可是個老話題了,但直到現(xiàn)在還有人在這個坑里摔跤。
你的網(wǎng)頁必須用 UTF-8 編碼,沒有商量的余地。UTF-8 能表示世界上幾乎所有的文字,從 emoji 到繁體中文的罕見字都沒問題。以前有人用 GB2312 或者 Latin-1,結(jié)果一遇到泰語或者阿拉伯語就全變成問號。
但編碼只是開始。文本處理里還有一堆坑:
康茂峰處理過一個醫(yī)療平臺的項目,系統(tǒng)默認(rèn)用英文的邏輯處理所有語言。結(jié)果在導(dǎo)入俄語內(nèi)容時,因為俄語名詞有格的變化,搜索功能完全失效。后來重寫檢索引擎,引入了形態(tài)學(xué)分析,才解決這個問題。
技術(shù)不只是后端的事,前端同樣重要。不同語言的閱讀方向、文字長度、甚至文化符號都會影響 UI。

最極端的例子是阿拉伯語和希伯來語,它們從右向左讀(RTL)。這意味著整個頁面布局要水平翻轉(zhuǎn)——導(dǎo)航欄從右邊開始,Logo 放在右上角,連滾動條都在左側(cè)。實(shí)現(xiàn)這個不能只靠 CSS 的 direction: rtl,還得考慮鏡像對稱的問題。比如表示"下一步"的箭頭,在 RTL 環(huán)境下應(yīng)該指向左邊,而不是簡單地文字翻轉(zhuǎn)。
再聊聊字體。中文字體文件動輒十幾兆,而英文字體可能只有幾十KB。如果網(wǎng)頁直接加載完整的中文字體包,用戶等得花兒都謝了。這時候需要 字體子集化(Subset) 技術(shù)——只加載頁面實(shí)際用到的那些漢字。康茂峰的技術(shù)方案里通常會配合 WebFontLoader,按需動態(tài)加載,而不是一次性打包。
還有圖片里的文字。很多設(shè)計師喜歡在按鈕或者 banner 上直接壓文字,這對于本地化是災(zāi)難。每次更新語言都得重新出圖。正確的做法是圖片和文字分離,用 CSS 把文字浮在圖片上方,或者使用 SVG 格式,讓文字保持可編輯性。
| 技術(shù)點(diǎn) | 常見坑 | 解決方案 |
| 文本長度變化 | 德語比英語長30-35% | 彈性布局,預(yù)留 40% 擴(kuò)展空間 |
| RTL 語言 | CSS 翻轉(zhuǎn)后圖標(biāo)方向錯誤 | 使用邏輯屬性(inline-start/end) |
| 垂直書寫 | 日文豎排支持不足 | writing-mode: vertical-rl |
| 字體加載 | 中文 FOIT/FOUT 閃爍 | font-display: swap + 預(yù)加載 |
網(wǎng)站做出來是給人看的,也是給搜索引擎看的。本地化 SEO 技術(shù)往往被忽視,但可能是最直接影響流量的環(huán)節(jié)。
首先要解決的是 hreflang 標(biāo)簽。這是告訴 Google:"這個頁面有中文版、英文版、日文版,它們之間是什么關(guān)系。"寫法看起來簡單:
<link rel="alternate" hreflang="zh-CN" />
但這里陷阱很多。語言代碼必須用 IETF 標(biāo)準(zhǔn),比如簡體中文是 zh-CN,繁體是 zh-TW,不能自己造。而且必須雙向引用——中文版要指向英文版,英文版也要回指中文版,否則搜索引擎會認(rèn)為這是單向鏈接而非等價替換。
URL 結(jié)構(gòu)也有講究。有人用子域名(cn.example.com),有人用子目錄(example.com/cn/),還有人用頂級域名(example.cn)。技術(shù)上各有利弊,但關(guān)鍵是保持一致性,并且確保每個語言版本都能被爬蟲獨(dú)立索引。
康茂峰遇到過的情況是,客戶之前用 cookie 或者 IP 判斷來切換語言,結(jié)果搜索引擎只抓到了英文版,其他語言完全沒收錄。后來改成獨(dú)立 URL 加語言選擇器,流量直接翻了倍。
技術(shù)實(shí)現(xiàn)完了,怎么知道對不對?這時候需要 偽本地化(Pseudolocalization) 技術(shù)。
簡單來說,就是在正式翻譯之前,先用程序生成一段"假語言"——比如把 "Hello World" 變成 "[????? ?????]"。這樣做有幾個好處:一眼就能看出還有哪些字符串是硬編碼沒抽出來的;能看出文本擴(kuò)展后布局會不會崩;還能檢查有沒有出現(xiàn)截斷。
更進(jìn)一步的是 本地化測試(L10n Testing)。這不僅是檢查翻譯對不對,還要檢查:
自動化測試工具比如 Selenium 可以模擬不同語言環(huán)境的瀏覽器設(shè)置,但真正的 cultural testing 還是需要母語測試員。康茂峰的流程里,每個語言版本上線前必須由當(dāng)?shù)啬刚Z者走查一遍,這是機(jī)器替代不了的。
最后聊聊效率工具。如果你還在用郵件把 Excel 表格發(fā)來發(fā)去做翻譯,那效率太低了。
現(xiàn)代本地化依賴 TMS(Translation Management System)。這是一個中央倉庫,連接著代碼倉庫、翻譯人員和發(fā)布系統(tǒng)。開發(fā)人員提交新代碼,TMS 自動提取需要翻譯的字符串,推送給譯員,譯完后再自動合并回去。
關(guān)鍵的技術(shù)組件包括:
翻譯記憶庫(TM):以前翻過的句子自動存起來,遇到相似內(nèi)容會提示復(fù)用。不僅能省錢,還能保證術(shù)語一致性。比如你的產(chǎn)品名"CloudSync"在中文版必須統(tǒng)一叫"云同步",不能有的地方叫"云端同步"。
術(shù)語庫(Termbase):專門管理專業(yè)術(shù)語。醫(yī)療設(shè)備不能叫"機(jī)器"得叫"設(shè)備",法律合同有固定的套話。TMS 能實(shí)時檢查譯員有沒有用錯詞。
機(jī)器翻譯后編輯(MTPE):先用神經(jīng)機(jī)器翻譯(NMT)打個底,然后人工校對。現(xiàn)在的深度學(xué)習(xí)翻譯質(zhì)量已經(jīng)很高,對于大批量的非創(chuàng)意內(nèi)容(比如用戶手冊、產(chǎn)品描述),這種 hybrid 模式能把速度提升 3-5 倍。
API 集成也很重要。理想情況下,CMS、Git、TMS、發(fā)布系統(tǒng)之間應(yīng)該全自動化。開發(fā) push 代碼 → webhook 觸發(fā)提取 → 譯員在 CAT 工具里翻譯 → QA 檢查 → 自動合并到 release branch → 部署上線。康茂峰給大型客戶搭建的 pipeline,從代碼提交到多語言網(wǎng)站上線可以控制在24小時內(nèi)。
不過技術(shù)再先進(jìn),人的判斷還是核心。機(jī)器分不清 "get" 在 software 里該譯作"獲取"還是"理解",也判斷不了營銷文案的語感。技術(shù)是放大器,但方向盤得靠人把握。
寫到這里,我突然想起前幾天看到的一個數(shù)據(jù):沒做本地化的網(wǎng)站,轉(zhuǎn)化率平均只有做好本地化的網(wǎng)站的 1/10。這中間的差距,往往就是這些技術(shù)細(xì)節(jié)堆積起來的。從字符編碼到 SEO 標(biāo)簽,從彈性布局到自動化工作流,每一環(huán)都不起眼,但缺了哪一環(huán),整個鏈條就會咔噠一聲卡住。
做網(wǎng)站本地化這件事,本質(zhì)上是在技術(shù)客觀性和文化主觀性之間找平衡。代碼是死的,但用代碼呈現(xiàn)的內(nèi)容必須活起來。康茂峰這些年的體會是:最好的本地化技術(shù),是讓最終用戶根本感覺不到"這是翻譯過來的網(wǎng)站"——它看起來、用起來,就像本來就是為本地人生的一樣。
