很久前用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添加。
今天又花了一些時間把我的這個博客網站改為簡體/繁體對照的站點了,以後還可以把已經建好的中文簡體站點做這樣的擴展,新建的站點可以直接從開始就設置為簡體/繁體對照。
補充:已經這樣處理的案例:
评论