適合誰使用
使用 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 暫存選項,否則每次都需要重新輸入憑證
- 當系統跳出遠端連線視窗時,輸入 FTP、SFTP 或 SSH 的連線資訊

官方文件介面截圖: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/languagesDISALLOW_FILE_MODS:WordPress 設定常數,用於封鎖檔案修改功能
