最近接到一個丟不掉的賽差,得讓一個網站有雙語切換的功能。本來以為說裝個 i18n 模組就可以搞定,卻沒想到前任網管使用的版型完全不支援語言轉換,主選單綁死無法切換,又缺乏相關的 CSS tag 可用,想把東西藏起來都辦不到。真的是(以下省略不雅語言 500 字....)
在不能換版型的情況下,基本上就是改版型程式碼,至少讓它在不同語系下可以在 body 處生出語系代碼,讓我可以用 CSS 來做簡易的 hack。
麻煩是,這網站是 D6 的
是 D6 的
是 D6 的
是 D6 的
是 D6 的
是 D6 的
是 D6 的
是 D6 的
是 D6 的
是 D6 的
..............
阿我早忘記 D6 該怎麼弄這部份了!
有沒有人知道這要怎麼處理,或者那兒有簡易教程呢? for D6 的喔。
Re: 如何修改 Drupal 6 版型,在 body 中插入語系的 class
這個可能可以 : https://www.drupal.org/project/language_sections
Re: 如何修改 Drupal 6 版型,在 body 中插入語系的 class
Danny,謝了,我會試試看。不過這模組看來是處理內容而非版型的。
我目前遇到的主要困難在於,版型把 menu 寫死在 page.tpl 裏面,選單項目又不支援語系轉換,所以切到英語版本的時候,中文選單仍會出現 Orz。
我希望透過 CSS 在英文版中把主選單隱藏起來,另外用區塊來顯示英語選單。(好啦,我知道這是一個很懶的作法....)
只是說這版型沒有在任何地方提供語系脈絡的 CSS 類別,讓我連這個作法都辦不到。
我需要的是在 page.tpl 中插入一小段程式碼,讓 body 可以隨語系轉換而有 zh-hant 或 en 這樣的 class 可用,如此就可以解決我的問題了。
有用過 Zen 的人一定可以明白我在講啥;習慣用 Zen 的人就可以知道我現在有多痛苦。
Re: 如何修改 Drupal 6 版型,在 body 中插入語系的 class
Here: https://api.drupal.org/api/drupal/developer%21globals.php/global/language/6
Re: 如何修改 Drupal 6 版型,在 body 中插入語系的 class
多謝 Kay 的幫忙。
不過我是編碼白痴,不是很確定要怎麼寫才能正確產生我要的結果。
是把 global $language; 插入到 page.tpl 就好嗎?
還是要新增一個 globals.php 檔案,然後放在....哪裡?
Re: 如何修改 Drupal 6 版型,在 body 中插入語系的 class
看第四行:
http://cgit.drupalcode.org/drupal/tree/themes/garland/page.tpl.php?h=6.x#n4
假如,你是使用了很隨便的版型,比如這樣的
你可以
language ?>">
--------------------------
假如是類似的:
http://cgit.drupalcode.org/drupal/tree/themes/garland/page.tpl.php?h=6.x...
應該更簡單,可以直接在 template.php 找相應的 FUNCTION 加進入
--------------------------
不需要理會 IE6 的更簡單:
[lang="zh-hant"] .here-is-the-menu-class-name { display:none }
Ref: http://caniuse.com/#feat=css-sel2
--------------------------
既然你的 MENU 寫死了,不如直接點
<?php
if($language->language != 'en') {
echo '中文';
}
else {
echo "ENG";
}
?>
Re: 如何修改 Drupal 6 版型,在 body 中插入語系的 class
Hi Tky,
你也可以用context 模組,裏面有一個reaction (HTML), 可以產生body class, context 的地方設定語言.
有了這個語言body class, 你應該就可以達到目的了。
Re: 如何修改 Drupal 6 版型,在 body 中插入語系的 class
突然想到你是版型問題,有可能上面的方式,還是不行。試試看,不行就只好改template了。
不過你也可以小改template 配合context 一起用,讓context可以加上 body class 就行了。
附註: zen theme, body class 的產生,不是在page.tpl, 所以如果你的問題在page.tpl, 用context 加上body class , 估計是可行的。
Re: 如何修改 Drupal 6 版型,在 body 中插入語系的 class
晚上回來看到 Kay 和 Danny 提供的一卡車解法,感動萬分。
每種方法我都會試試,結果如何會再回報給大家。
感謝兩位!
Re: 如何修改 Drupal 6 版型,在 body 中插入語系的 class
我最後是選用 Kay 所提供的方法:
language ?>">
這樣 body 就可以有語系代碼的 css class 了。
非常感謝!