今年5月份寫了一篇《Drupal的多語言網站搭建和設置》,嘗試着用Drupal的多語言功能來搭建網站,後來更是添加了手機版,又記錄了一篇《網站擴展100倍:50種語言x(電腦版+手機版)》,這些設置都成功了,隻是在建立更多的系列網站時依然覺得有些麻煩,經過一段時間的摸索,又積累了一些經驗,讓後面系列網站搭建起來效率更高,按照搭建的步驟,一些地方記錄如下:
系統基本安裝:
- 可從一開始就用drush來安裝:選擇語言、選擇配置、設置數據庫參數、設置更新參數、添加管理員及密碼、設置時區信息等都可以通過簡單的腳本實現;
- 添加更多管理員帳号、關閉匿名用戶注冊權限、開啟mobile主題、設置各種主題中共用的logo和favicon、緩存設置、cron設置等,能用drush的地方盡量用drush來設置;
- 設置模塊,關閉不需要的模塊,下載和安裝需要的模塊,特别是多語言支持所用的i18n及部分子模塊(最初是多數都打開,後來改為隻有需要的幾個打開)、l10n_update翻譯自動更新模塊等,添加50種語言,都可以通過drush來進行設置;
原始數據導入:
- 分析原始數據,對于需要做出分類的字段,在Taxonomy中添加Vocabulary;
- 設置Content Type,整個系列都用一個ALL類型,便于設置和維護管理,添加需要的Field,分類做成Autocomplete Term并與Vocabulary對應,設置full和tease的顯示字段;
- 設置Feeds的來源,上傳導入文件xxx.csv到public://feeds/目錄下,設置mapping關系,注意添加GUID以便以後修改導入,Title可以用ZIP字段,以後通過模闆修改顯示的Title;
- 開始導入數據至結束;
顯示模闆修改:
- 通過在sites/all/themes/bartik中添加node--all.tpl.php來控制頁面顯示,包括full和teaser兩種顯示;
- 通過在sites/all/themes/mobile/templates中添加node--all.tpl.php來控制手機版頁面顯示,也可以用軟鍊接的方式共用電腦版的node--all.tpl.php,程序中判斷是否手機版來區别顯示;
- html.tpl.php來添加頁面頂部和底部共同的代碼;
- page.tpl.php中修改main menu中Home的多語言翻譯顯示;
- node--all.tpl.php中對讀出的字段标題進行t函數翻譯,以便不需要設置内容類型的多語言及翻譯支持;
自定義模塊:
- 将block、views和home頁三項做成一個custom module:all_postcodebase_com;
- all_postcodebase_com.module中定義各種需要的block;
- all_postcodebase_com.module中定義首頁home,針對不同的站點和版本處理顯示;
- views文件all_postcodebase_com.views_default.inc中可以根據需要添加一些判斷;
- 在block設置中對電腦版和手機版兩種主題進行各自的blocks enable和disable設置及順序調整;
多語言翻譯:
- 将50種語言的.po翻譯文件都放置在sites/translations目錄下,全部都是添加的内置文本及翻譯,命名為模塊名+版本号+語言縮寫.po,例如all_postcodebase_com-7.x-0.1.ar.po;
- 在all_postcodebase_com.info文件中定義project=all_postcodebase_com及版本号version="7.x-0.1",以便l10n_update找到sites/translations目錄下的對應翻譯文件;
- 第一次添加all_postcodebase_com模塊時自動導入對于的翻譯文件;
- 翻譯有添加和更改時編輯.po文件然後上傳覆蓋,以後用l18n_update中的檢查和更新功能來更新翻譯信息;
其它雜項設置:
- 設置i18n中可以翻譯的變量,特别是site name,以便在site information中可以設置50種語言的網站名稱,front page設置為custom module中的home;
- 修改performance中的cache設置;
- 修改search設置,運行cron或者drush來生成内部搜索索引,修改search-result.tpl.php來去掉搜索結果中的作者和日期信息;
- 設置xml sitemap,添加50種語言的站點地圖,注意默認語言的站點地圖需要選擇English然後保存一次,否則找不到文件,rebuild後将桌面版和手機版都提交google webmaster tools;
- 修改cron設置,關閉網站上的cron周期性運行,改用Linux的crontab來控制。
因為做系列網站,所以希望能盡量精簡步驟,也确實經過摸索減少了好些環節,不過上面還是寫了好長,以後再有新改進的時候還會更新。對于以前沒有接觸過Drupal多語言網站的朋友可能還是無法通過本文了解清楚,可以多在Google中搜索遇到的問題,我自己也都是這樣一點一點弄出來的,累啊!😭
用上面辦法搭建的一個新例子是:Afghanistan Postcode ,首頁截圖如下:
近期Google的人聯系我要做一個AdSense的案例宣傳單頁,我也是提供的上面這個截圖,正好是多語言、手機版及各種AdSense廣告形式都有。 😄
评论3
Drupal 7使用Drush添加多語言的腳本
下面是添加50種語言的例子,shell循環腳本:
注意,運行前需要安裝Drush Language Commands的插件支持(運行一句"drush dl drush_language"就可以了)。
Drupal 7中添加50種語言的xmlsitemap
需要先開啟XML sitemap internationalization這個模塊,然後在數據庫中(可以在phpmyadmin界面中)執行:
就可以添加50種語言的sitemap,然後再運行:
就可以生成50中語言的sitemap。
用Drush來添加50種語言的xmlsitemap
也是直接操作數據庫,效果與上面一樣,隻是可以在Drush中運行,不用在phpmyadmin中去運行:
後面還是一樣運行: