您在這裡

使用者自訂介面語系失效

kiki's 的頭像
kiki 在 2008-05-14 (三) 16:14 發表

我安裝時是英文語系,然後下載 drupal.org 上的 1.1 版中文語系檔,解壓縮到 drupal 根目錄。
匯入語系一切都很正常,把預設語系從英文切換成中文也確實成功了。

但是 My account 裡面的 Language settings 卻失效了,不管我設成中文或英文,顯示的都是預設語系:

預設語系=英文, Language Settings=中文 --> 英文介面
預設語系=中文, Language Settings=英文 --> 中文介面

不知道是哪裡出問題了,我 Language 設定那邊是設成 None ,依據上面的說明,應該會以 My account 裡面設定的信件語系來決定介面語言才是。

嗯,的確,細看之下發現:

Language settings
Language:
Chinese, Traditional (繁體中文)
English
This account's default language for e-mails.

這裡的設定指的是 email 通知所使用的語系? 那使用介面的自訂語系跑到哪了呢???

但是在 Site configuration -> Languages -> Configure 這邊,可以看到選項的說明:

None. The default language is used for site presentation, though users may (optionally) select a preferred language on the My Account page. (User language preferences will be used for site e-mails, if available.)

嗯...我灌了日文也一樣@@

若是設定 Language negotiation:Path prefix only.
倒是可以透過不同網址來用不同的介面:
http://localhost/drupal-6.2/en
http://localhost/drupal-6.2/ja
http://localhost/drupal-6.2/zh-hant

可能要請多語大師 TKY 來說明一下...

最近在趕paper,現在才看到這個指名要回的回應。

根據tky這篇那篇文章,drupal 6對多語的支援已經非常好了。
(因為有段時間沒用,自己都忘了當初在寫什麼~~XD)
不過要在使用語系切換的時候,仍舊會發現一些小問題。

上面提到Language settings 部分,語系協商(轉換)的地方就不太靈光。
從說明看來,選項1是用個人設定檔的語系設定來切換介面語系
選項2則是根據路徑(加上語系前置詞)。
選項3則是併用前兩者。
選項4則是直接用網域去轉。
tky沒試過選項1. none,而是採用3.Path prefix with language fallback.

在選項3的部分,使用者設定檔的設定似乎也是部分無效的。
因為在匿名訪客進入沒有網址前置詞的網頁時,不管你的網站預設語言是那一種,語系一樣都是英文的(即使你的英文語系本身有前置詞也一樣)。

而且雖然選項3的說明中有提到「預設語系可以不需要設定前置詞」,但是如果真的沒有在中文的語系部分設定前置詞,按下「語系轉換」中的繁體中文連結,介面是不會轉成中文的。

這兩個失靈的部分,不曉得是bug還是怎麼回事。搞了好久還是不知道要怎麼解決。
雖然在這篇文章有提到

一但你設定中文為預設語系,登出時就會回到這個語系。
而如果網址不加前置詞、只打主網址時,會依照你上一次來這個網站時所使用的語系而自動轉換到該語系,或者就是預設語系

但是後來發現這只對「登入使用者」有效而已,對匿名訪客沒有用(一方面也是因為他們沒有個人設定檔的關係)。

所以Drupal 6的多語化支援已經堪用的結論,得修正一下。

tky

tky

我想對匿名訪客沒有記下最後選擇的語系,還是可以接受的。畢竟沒有使用者設定檔,要解決只能靠 cookie 。

至於 Language setting 那邊我認為很有可能有隻 bug 在...

不過理論上來說,主網域所連結的首頁應該要以預設的語系做為介面才是正常的。
按理講,訪客沒有設定檔也應該已預設語系為主才對。

所以tky認為總共應該是有兩個bugs。

tky

tky