您在這裡

Drupal中文網站簡體版本自動生成一個對應的繁體版本

James Qi 在 2017年3月3日 - 14:14 發表

  很久前用MediaWiki網站的時候發現中文Wiki站有一個很方便的簡體/繁體轉換功能,是MediaWiki自帶的,我們用這種辦法做了好幾個站的繁體版本,還獲得了不少港台海外用戶來訪問。

  轉用Drupal後,Drupal有更強大、更通用的多語言支持,但沒有中文Wiki站那樣的簡體/繁體自動轉換功能,我們自己也一直沒有嘗試做這種轉換。

  在商量準備做更多的實用查詢詞典類網站的時候,想到要是Drupal站也有簡體/繁體轉換這個功能就好了,這兩天花了一些時間來嘗試,還基本上可以成功!現在記錄一些步驟和要點:

  • 在一個現有的中文Drupal站中增加繁體正體語言(管理 » 配置 » 地區和語言);
    批量設置的時候用drush dl drush_language添加drush language命令,然後用drush language-add zh-hant添加;
  • 簡體中文依然是默認,English設置為不啟用;
    批量設置辦法:drush language-disable en;
  • 簡體中文的設置“路徑前綴語言代碼”設置為空;
    批量設置辦法:drush language-prefix zh-hans ''
  • 繁體中文的設置“路徑前綴語言代碼”設置為zh-hant;
    批量設置辦法:無需設置
  • “管理 » 配置 » 地區和語言 » 語言”設置“用戶界面文本語言檢測”,勾選“網址”;
    批量設置辦法:drush ev '$negotation = array(  LOCALE_LANGUAGE_NEGOTIATION_URL => 2);language_negotiation_set(LANGUAGE_TYPE_INTERFACE, $negotation);'
  • 配置“網址”的“URL片段确定語言”為“路徑前綴”(默認就是這樣);
    批量設置辦法:無需設置
  • 如果安裝了語言更新模塊,可以使用“管理 » 配置 » 地區和語言 » 語言”的“更新翻譯”功能來添加繁體翻譯;
    批量設置辦法:drush en l10n_update -y(如果一個系列網站共用翻譯庫則隻安裝在一個站)
  • 修改内容類型設置,将“多語言支持”設置為“已啟用”(如果是批量導入的内容類型,默認裡面内容都是“不區分語種”,可以不改這裡);
    批量設置辦法:drush vset language_content_type_page 1
  • 查看“内容”,要把“簡體中文”内容修改為“不區分語種”,頁面數量少可以直接編輯修改,如果頁面數量太多可以在數據庫中批量修改(UPDATE `node`  SET `language` ='und' WHERE `language` = 'zh-hans';UPDATE `url_alias`  SET `language` ='und' WHERE `language` = 'zh-hans';);
  • 修改“區塊”設置,添加“語言切換器(用戶界面文本)”都合适的位置。
    批量設置辦法:drush sql-query "update block set status='1', region='sidebar_first', weight='-20' where module ='locale' and delta = 'language' and theme = 'responsive_bartik';"

   這樣就完成了基本設置,另外還有一個重要工作是修改顯示模闆,用php來對簡體的内容進行轉換,這個有點複雜,我是在自建的“中文簡體繁體轉換的模塊”中添加一個轉換函數,然後在各個地方調用這個函數(PHP程序請看我另外一篇博文《一個獨立可用的中文簡體繁體轉換PHP程序》)。

  還剩下一些細節,例如:

  • html.tpl.php修改:$head_title, <link rel="alternate" hreflang=...;
    • page.tpl.php修改:對html.tpl.php進行全面轉換後,本文件可以不改;
    • node.tpl.php修改:對html.tpl.php進行全面轉換後,本文件可以不改;
    • Block的修改:對html.tpl.php進行全面轉換後,可以不改;
    • Views的修改:對html.tpl.php進行全面轉換後,可以不改;
  • xmlsitemap修改:xmlsitemap.page.inc,<xhtml:link rel="alternate" hreflang=...;
  • robots.txt處理;
  • 自動識别跳轉;
  • 百度站長、Google Webmaster Tools添加。

  今天又花了一些時間把我的這個博客網站改為簡體/繁體對照的站點了,以後還可以把已經建好的中文簡體站點做這樣的擴展,新建的站點可以直接從開始就設置為簡體/繁體對照。


  補充:已經這樣處理的案例:

發表新回應

Plain text

  • 不允許使用 HTML 標籤。
  • 自動將網址與電子郵件地址轉變為連結。
  • 自動斷行和分段。