Drupal 核心採用「介面翻譯」機制,語言包為 .po 格式(Gettext 可攜對象)。本文覆蓋 Drupal 6 至 10 全版本,提供後台在線導入、離線手動導入、Drush 命令行、Composer 管理四種方式,並解決 Windows 環境、權限不足、緩存失效等常見坑點。
.po 文件Admin → Site building → Modules (admin/build/modules) 勾選 LocaleAdmin → Extend (/admin/modules) 勾選 Interface Translation(核心內建)Admin → Configuration → Regional and language → Languages (/admin/config/regional/language)/admin/config/regional/translate/import).po 文件Admin → Configuration → Performance → Clear all cachesAdmin → Configuration → Development → Performance → Clear all caches 或 drush cr# 下載並導入簡體中文(以 Drupal 9/10 為例)
drush language-add zh-hans
drush language-import zh-hans /path/to/drupal-10.0.zh-hans.po
drush config-set system.site default_langcode zh-hans -y
drush cr
將 .po 文件放入對應目錄,Drupal 會自動掃描導入:
| 版本 | 放置目錄 | 說明 |
|---|---|---|
| Drupal 6/7 | sites/default/files/translations/ | 需手動創建目錄,權限 755 |
| Drupal 8/9/10 | ../translations/(項目根目錄) | Composer 模板預設目錄,drush locale-check 可驗證 |
| 現象 | 可能原因 | 解決 |
|---|---|---|
| 導入後介面仍為英文 | 未設為 Default / 未清緩存 | 勾選 Default + drush cr |
| 導入進度條卡住/報 500 | PHP max_execution_time / memory_limit 不足 | 臨時調大 php.ini 或分批導入 |
| 部分字符顯示亂碼 | .po 文件非 UTF-8 / 資料庫非 utf8mb4 | 轉碼 .po、資料庫 CHARSET=utf8mb4 |
| Windows 下 Drush 提示找不到 php | PATH 未加入 PHP 目錄 | 環境變量添加 C:\php |
Drupal 多語言核心機制穩定,Locale/Interface Translation 模組 + 官方 .po 文件 + 清緩存 是萬能公式。現代項目建議採用 Composer 管理 + Drush 自動化,將語言包納入版本控制,實現「基礎設施即代碼」。Windows 環境重點關注編碼、權限、路徑三大塊,即可無痛完成漢化。