技術文件目前產品線:Loco Translate 翻譯

Loco Translate 檔案系統存取教學:直接寫入、遠端連線與安全設定

更新日期
閱讀時間
約 6 分鐘
來源狀態
generated-draft

本篇說明

Loco Translate 需要透過網頁伺服器將翻譯檔案寫入磁碟。本文說明「直接」與「遠端」兩種寫入方式的差異、WordPress 更新可能覆寫哪些檔案位置,以及如何用外掛設定強化安全性,避免翻譯內容被意外刪除。

適合誰使用

使用 Loco Translate 外掛管理網站翻譯檔案、並需了解檔案權限與安全設定的 WordPress 網站管理員

開始前準備

  • 需了解 PHP 對伺服器目錄/檔案的寫入權限(write permission)概念
  • 若使用遠端連線方式,需先備妥 FTP、SFTP 或 SSH 的存取憑證

教學內容

為什麼 Loco Translate 需要寫入磁碟

WordPress 的翻譯是從伺服器上的一般檔案讀取,而不是像文章一樣存在資料庫中

因此建立、更新、刪除翻譯檔案時,Loco Translate 必須能透過網頁伺服器寫入磁碟

方式一:直接檔案系統存取(Direct)

只要 PHP 具備權限,Loco Translate 就會直接透過 PHP 寫入檔案,做法與 WordPress 其他功能相同

若 PHP 沒有權限,Loco 後台介面會顯示警告訊息

建立新檔案時,需要對該檔案所在的目錄具備寫入權限

直接寫入所需的三種操作權限

覆寫現有檔案時,需要對該檔案本身的寫入權限;若啟用備份功能,還需要能建立新檔案以保存修訂版本

Loco Translate 不會主動刪除檔案,除非使用者要求,或是在清除舊備份時例外

刪除檔案所需的權限與建立檔案相同,因為兩者都是在修改目錄內容

方式二:遠端檔案系統存取(Remote)

若某項寫入操作無法直接完成,Loco 會提示輸入遠端檔案系統的登入憑證(FTP、SFTP 或 SSH)

此流程與 WordPress 本身安裝外掛、佈景主題時使用的畫面相同

除非將憑證存入 WordPress 設定檔,或使用 Loco 設定中的 session 暫存選項,否則每次都需要重新輸入憑證

  1. 當系統跳出遠端連線視窗時,輸入 FTP、SFTP 或 SSH 的連線資訊

    img
    官方文件介面截圖:img

安全性與最佳做法

單純顯示翻譯內容並不需要可寫入的檔案系統,只有在需要更新翻譯時才需要

較安全的做法是在私人開發伺服器上執行 Loco Translate,再將唯讀的 MO 檔上傳到正式網站

已安裝檔案與 WordPress 更新的風險

WordPress 更新可能會修改某些檔案,若未留意,翻譯內容可能在不知情下被刪除,啟用自動更新時更要注意

不應直接編輯已安裝的翻譯檔案,建議的做法是將自訂翻譯覆寫存放在不會被更新刪除的安全位置

以下路徑都被視為「不安全」,不建議存放需要保留的檔案:wp-content/themes、wp-content/plugins、wp-content/languages 及其下的 themes、plugins 子資料夾

「不允許修改檔案」的訊息與處理

若看到「File modification is disallowed by your WordPress config」訊息,代表網站已明確封鎖對特定檔案的寫入存取

Loco Translate 會依照 wp_is_file_mod_allowed 函式的回傳結果運作,該函式又受 DISALLOW_FILE_MODS 設定影響

給多位翻譯者使用時的安全設定選項

可啟用「Prevent modification of installed translations」,讓受邀的翻譯者只能修改自訂翻譯檔案

可啟用「Prevent editing of POT files」,因為翻譯者通常不需要修改可用字串本身

可啟用「Restrict writeable directories」,預設為 wp-content,縮限為 wp-content/languages 可避免修改佈景主題與外掛內的翻譯

介面名稱對照

  • Direct filesystem access:直接透過 PHP 寫入磁碟的方式,是 Loco Translate 優先採用的寫入方法
  • Remote filesystem access:當直接寫入不可用時,透過 FTP、SFTP 或 SSH 憑證連線寫入檔案的方式
  • Prevent modification of installed translations:外掛設定選項,限制受邀翻譯者只能修改自訂翻譯檔案,不能改動已安裝的翻譯
  • Restrict writeable directories:限制 Loco Translate 可寫入的目錄範圍,預設為 wp-content,可縮限為 wp-content/languages
  • DISALLOW_FILE_MODS:WordPress 設定常數,用於封鎖檔案修改功能

注意事項

注意

請勿詢問 Loco Translate 官方需要哪些檔案權限或如何設定,這取決於伺服器環境,建議洽詢 IT 部門或主機商

注意

不建議儲存遠端連線密碼,也不建議在未啟用 SSL 的網站上傳送密碼

注意

請勿要求協助設定遠端伺服器存取,只有在了解安全風險並持有必要憑證時才使用此功能

注意

絕對不要編輯已安裝的翻譯檔案,否則可能在 WordPress 更新時被覆寫或刪除

注意

修改 file_mod_allowed 過濾器需格外謹慎,移除重要的檔案保護機制可能造成更大問題

常見問題

為什麼我的翻譯內容會被刪除?

若翻譯檔案存放在 WordPress 更新時會修改的位置(如佈景主題、外掛目錄或 wp-content/languages 下的 themes、plugins 子資料夾),這些檔案就有可能在更新過程中被覆寫或刪除。建議將自訂翻譯改存放在安全的位置。

看到「File modification is disallowed」訊息該怎麼辦?

這表示網站已透過 WordPress 設定(如 DISALLOW_FILE_MODS)明確封鎖檔案寫入,通常是刻意的安全措施,建議先與主機商討論,再決定是否要調整設定。

官方來源

還是卡住了?

先把問題問清楚,通常比直接開工單更快。複製下面的結構,補上你的情況後送出。

用 AI 先釐清問題

/ai 我正在閱讀「Loco Translate 檔案系統存取教學:直接寫入、遠端連線與安全設定」,目前卡在:

我已嘗試:

我看到的畫面/錯誤訊息:

請用一步一步的方式告訴我下一步。

需要我們實際進入網站調整設定、修改佈景主題或處理資料時,再建立 /task 工單。