您在這裡

Drupal 6.1 試用報告:多語化

tky's 的頭像
tky 在 2008-03-31 (週一) 13:33 發表

由於cck和views都出了6.x版本了,這兩個星期試圖直接使用Drupa 6.1來架構新的網站。一試之下,真是驚歎連連,因為有太多曾經想要的「額外」功能,現在都變成「預設」功能了。

值得一提的是支援多語化的部分。views還不是很清楚,但cck的欄位標籤目前已經可以完全用locale介面來翻譯,搭配Localization client來進行直接翻譯,那真的只有一個爽字了得。不過前題是,你得先用英文來做cck的欄位標籤名稱,再翻成中文。在管理介面並不會顯示出翻譯,只會顯示在node那邊。

目前6.x版本只有i18n,也就是Internationalization這個模組支援多語轉換和翻譯。這次支援的部分除了最一般的node、taxanomy、menu之外,還包括了content type以及profile標籤。最特別的是,如果你的預設語言是中文,i18n的翻譯方式不是傳統的「英翻中」,而是「中翻英」。反倒是你要先建立本地語系的標籤和名稱之後,透過locale模組去抓出這些標籤,輸入英文的字串。輸入英文字串?沒錯,tky當初還真愣了好久一會兒弄懂作者的意思。

這部分真的蠻妙的,在「網站建置」>>「翻譯」的地方,可以看到字串查詢的地方多了類型的選項,可以針對taxanomy、menu、content type以及profile等等項目做查詢,甚至匯出這部分的po檔去翻譯。不過po檔匯出翻譯完之後,匯回來也沒用:因為只能匯到「繁體中文」的語系去,但重點是「中翻英」,應該匯到英文語系那裡去才對!奇怪的是沒有這個選項,害tky白忙一場,還搞亂了中文語系。目前似乎只能透過查詢、鍵入的方式來做中翻英的工作,Localization client也派不上用場,因為它只能「英翻中」。

特別的地方是,i18n之前為人所詬病的「完全用建立來進行翻譯」的模式,已經進步到有「多語系node共用同一個類別或者選單標籤名稱,而這個標籤可以透過locale來翻譯」的選項,甚至可以位特定的語系建立它獨特的類別辭彙和選單。

令一個特別但值得改進的地方就是,在各個項目的管理介面中,翻譯過的標籤都不會有任何改變,只有在node顯示和編輯的頁面中會隨著語系變化。tky一開始還搞不清楚到底有效還是沒效。

目前,就cck和i18n的表現來看,可以說能夠做到完全的多語化介面。另一方面,除了網站資訊這方面尚不能自訂語系內容之外,i18n的表現已經逼近Localizer能做到的事情了,感覺進步很多(但是仍然有進步空間)。

最重要的是,由於content type是結合cck和i18n的地方,翻譯的工作得分兩部分進行:預設的類型名稱、標題和內文,得透過i18n處理過的Drupal翻譯介面去查找翻譯成英文;新增的cck欄位則得先建立英文標籤,再透過翻譯介面或者Localization client去翻成中文。

以上是一些經驗談,分享給想要在Drupal 6.x之中建立多語網站的朋友。
下次等資料庫建好之後,再來談談views和cck之間的合作無間(讓tky流下兩行淚的大躍進)。

tky

接你個頭啦!XD
主要是看到cck和views兩者已經內建views field模組的功能,想起之前為了做出同樣的效果,試了好久才搞定;沒想到現在居然是內建的功能,世界的變化真是大啊~~(菸)

然而,views 6.x目前還是alpha版本,尚無法完全整合其他模組,例如cck的多值文字欄位,明明有多個值,列出來就只有一個,而且還是最後面的值。完全不聽使喚。最奇怪的是,欄位或者過濾器的設定中,沒有「分類」這一項,任何一種都沒有。真給他打敗;Taxonomy不是核心模組嗎?
以前常見的Distinct過濾器也不知道跑那裡去的,表格設定上會變得很麻煩。

但總得來講,views這次的設定介面改善非常多,改用Javascrip的方式顯示,又炫又簡便,還有預覽畫面讓你直接看到效果,不用像以前「存檔、看一下、修改、存檔、再看一下」這樣繁複的手續了。

光這點就值得一行淚了:以前咱們是那樣苦過來的啊~~(菸)

tky

tky

今天在試用 Drupal 6 + 多語系功能
發現 Drupal 6 預設的多語系只有 Content 的部份
其他(區塊、選單、Taxonomy 等等)沒有支援多語系
查了之前的討論以後拿 i18n module 來用
可是啟用了 Multilingual Menu 之後,Primary Link 會落掉一些項目
可是我每一個項目都已經設成 All Language 了
例如 Primary Link 有「首頁」、「公司簡介」、「技術資料」、「產品特性」
語系有「简体中文」、「繁體中文」、「English」

可是在 /en/node => 「首頁」 、「產品特性」
/zh-hans/node => 「首頁」、「公司簡介」、「技術資料」
/zh-hant/node => 「首頁」、「公司簡介」、「技術資料」
不過想去檢查設定進到 /admin/build/menu-customize/primary-links 的時候
又突然每個選項都出現了.. 我真的是 Orz

第二個問題,我已經在 [網站設定]/[語系] ( /admin/settings/language ) 把預設語系設成 zh-hant 了
可是從首頁連, (不帶有 /en, /zh-hant, /zh-hans 的 prefix) 這時他還是使用英文語系
我也沒看到有像 5.x 的 Localizer 那樣可以設定要偵測 Broser Setting 的地方

我用的是 Drupal 6.4 + i18n 6.x-1.0-beta3,感覺好像不太穩定啊

分享一下TKY的經驗:
1.關於多語menu的部份,TKY也碰到和sylin一樣的問題。語系轉換時會掉item。
這方面TKY認為i18n應該是有bugs。
所以TKY只好設定兩個menu,並且使用nice menu區塊,然後在區塊那裡作多語設定。這樣比較快。

2.多語node和menu的連結部份也是有些問題。
在node編輯表單中,可以設定menu item出現在在特定語系的menu中;但是如果node有牽涉到翻譯多語的部份,menu item一律會跳到導覽menu那裡,還得打開menu item的編輯表單去作設定,很麻煩。

3.多語網址前置詞的部份,不曉得是不是跟最近的更新有關,如果在多語系統那邊的設定,將多語轉換的設定改為第二項,也就是只用前置詞來轉換多語網頁,那麼在預設語系網頁,網址就不會出現前置詞(不過你得去預設語系那邊設定一個前置詞,不然轉換會失敗),在其他語系的網頁才會出現。

TKY試了老半天,確定只有選第二項才會有這樣的效果。

建置全多語網站真不是那麼容易,還有很多需要考慮的地方,給大家作個參考

tky

tky

非常困難

明明在測試網頁上(語系/僅使用路徑前導字元)

切換首頁 www.a.com 以及按下語系選單 變成 www.a.com/tw ,測試網站是可行的,切換首頁是正常的

一換到正式上線的網站,切換就整個毀滅了,一直出現 403 找不到就是找不到,到現在還沒解決...