使用 Loco Translate 上傳外掛中文化 PO 檔時,檔名不要更改

外掛中文化明明已經翻好,PO 檔也上傳了,WordPress 後台卻還是一堆英文。這時候先不要急著重翻,問題可能只是檔名、語系或儲存位置沒有對上。

使用 Loco Translate 管理外掛翻譯時,PO/MO 檔名必須符合外掛的文字網域(text domain)與語系代碼。如果瀏覽器下載後自動把檔名改成 (1)(2),直接拿去當正式語言檔,就可能無法按預期載入。

不過檔名不是唯一條件。Loco Translate 官方目前也特別提醒:檔案存在哪裡會影響是否容易被 WordPress 或外掛更新覆蓋;JavaScript 介面的翻譯還可能需要 JSON 語言檔。

Loco Translate 的 PO 檔名為什麼重要?

WordPress 外掛翻譯常見命名方式是:

text-domain-locale.po
text-domain-locale.mo

以 WooCommerce 的台灣繁體中文為例,常見檔名是:

woocommerce-zh_TW.po
woocommerce-zh_TW.mo

woocommerce 是文字網域,zh_TW 是台灣繁體中文 locale。這兩部分必須跟外掛實際的翻譯載入方式一致。

不同外掛可能有自己的語言目錄與載入設定,因此不要只看到「看起來像正確檔名」就判定一定會生效;Loco Translate 內顯示的 bundle/text domain、locale 與檔案位置也要一起確認。

最常見錯誤:下載後變成 (1)、(2)

如果下載資料夾已經有同名檔案,瀏覽器常會自動改成:

woocommerce-zh_TW(1).po
woocommerce-zh_TW(2).po

這只是瀏覽器避免覆蓋舊檔的命名方式,不代表它是 WordPress 預期的正式語言檔名。

如果這份檔案原本就應該是 woocommerce-zh_TW.po,上傳/部署前就應該先把 (1)(2) 移除,恢復正確名稱。

不要把正式語言檔改成 fixed、new、修正版

在自己電腦做版本備份時,你可以用資料夾區分版本;但真正要放進 WordPress 翻譯路徑的檔案,不要隨意改成:

woocommerce-zh_TW-fixed.po
woocommerce-zh_TW-new.po
woocommerce-zh_TW-修正版.po

比較好的整理方式是:

WooCommerce 中文化/2026-09-09/woocommerce-zh_TW.po

也就是用資料夾管理版本,正式檔名維持 WordPress/外掛需要的格式

比檔名更容易踩雷:翻譯檔存錯位置

Loco Translate 建立翻譯時,通常會看到 Author、System、Custom 等位置。這不只是整理方式不同,也關係到更新後翻譯會不會被蓋掉。

位置風險
Author/外掛自己的目錄外掛更新可能直接覆蓋,通常不適合放自己的修改。
System/WordPress 語言目錄WordPress 自動語言更新可能覆蓋。
CustomLoco 官方推薦用來保存自己的覆寫翻譯,較不容易被一般更新洗掉。

Loco Translate 的 Custom 位置目前位於:

wp-content/languages/loco/

如果你是在「修官方翻譯、改成台灣用語」這類自訂用途,Custom 通常比直接改外掛目錄安全。Loco 官方也明確建議避免直接編輯 Author 與 System 位置的檔案。

PO、MO、JSON 分別做什麼?

檔案用途
PO可編輯的翻譯來源,包含原文、譯文與相關資訊。
MOWordPress 傳統 PHP/Gettext 翻譯使用的編譯格式。
JSONWordPress JavaScript 國際化機制使用;許多現代外掛後台介面會用到。

Loco Translate 目前在儲存 PO 檔時,若 PO 裡有有效的 JavaScript 來源參照,可以依 WordPress 命名規則產生對應 JSON 翻譯檔。

所以「PO、MO 都有,為什麼還有英文?」不一定是翻譯壞掉,也可能是:

  • 該文字來自 JavaScript,需要對應 JSON。
  • PO 檔缺少正確的 JavaScript 來源參照。
  • 新版外掛新增了尚未同步的字串。
  • 實際載入的是另一個 text domain 或 locale。
  • 自訂翻譯被官方/系統語言檔覆蓋。

Loco Translate 上傳 PO 檔後沒生效,照這 7 步檢查

  1. 確認語系。台灣繁體中文通常是 zh_TW
  2. 確認 text domain。不要拿另一個外掛或錯誤網域的 PO 檔套用。
  3. 確認檔名。移除瀏覽器自動加上的 (1)(2) 等文字。
  4. 確認儲存位置。自己的覆寫翻譯優先使用 Loco Custom。
  5. 儲存後確認 MO/JSON 是否產生。
  6. 外掛更新後執行 Sync 前先看變更。新版可能新增或移除字串。
  7. 清除快取再測試。若網站有頁面快取、物件快取或瀏覽器快取,舊畫面可能暫時保留。

Loco Translate 的 Sync 可以按嗎?

可以,但要先理解它的用途。Sync 是把目前翻譯檔和外掛/佈景主題的翻譯模板重新同步,讓新版本新增的原文字串進來、移除已不存在的來源字串。

如果你有大量自己修改的翻譯,建議同步前先保留備份,並確認 Loco 使用的是正確模板。同步本身不是「把所有中文刪掉」,但錯誤模板或錯誤操作仍可能讓翻譯檔變得混亂。

Elementor 中文化也會遇到同樣問題嗎?

會。尤其 Elementor 後台大量使用 JavaScript,只檢查 PO/MO 並不一定足夠。

如果你正在處理 Elementor 繁體中文,可直接看Elementor 中文化完整教學。目前更建議先更新 WordPress/Elementor 官方翻譯,真的有缺漏再用 Loco Custom 覆寫。

常見問題 FAQ

PO 檔變成 (1).po 可以直接上傳嗎?

若原本正式檔名不含 (1),建議先恢復正確名稱。瀏覽器加上的序號只是避免覆蓋本機同名檔,不是 WordPress locale 命名的一部分。

台灣繁體中文的語系代碼是什麼?

WordPress 常用的台灣繁體中文 locale 是 zh_TW

自訂翻譯應該放 System 還是 Custom?

依 Loco Translate 官方目前建議,自己維護的覆寫翻譯優先放 Custom,因為 System 可能被 WordPress 的語言更新覆蓋。

有 PO、MO 為什麼還有英文?

現代 WordPress 外掛可能還使用 JavaScript JSON 翻譯;也可能是新字串尚未同步、text domain 不一致、locale 不對或翻譯檔沒有被實際載入。

結語:中文化沒生效,不要只盯著譯文

使用 Loco Translate 時,翻譯內容只是其中一層。檔名、text domain、locale、儲存位置、MO/JSON 與更新流程都會影響最後有沒有正確顯示。

如果下載後看到 (1)(2),先恢復正確檔名;如果是自己修改台灣用語,優先放到 Custom 位置;如果介面仍有英文,再檢查 JSON 與新版字串。

把這幾個層級依序排除,會比一直重複上傳同一份 PO 檔有效得多。

如果你正在規劃線上課程或想把網站做起來,這兩個資源可以直接拿去用:

1) 領取贈品:線上課程起步指引

2) 免費架站:只需付主機費,我們直接幫你把網站架好

先拿起步指引 了解免費架站

元氣站長
元氣站長

經營網路事業,賺取持續收入!
網路賺錢修煉,成就理想人生!