Ho'oponopono Cleaning Tool

熱門文章

2011年1月4日 星期二

解決Moodle block顯示的中文亂碼問題及中文字串如何對應到lang目錄

今天終於了解Moodle block內的中文字串顯示變亂碼,
及中文字串, 如何對應到lang目錄內的php檔.

在我的 block php程式 (block_ge.php) 的 init() function內,
使用 get_string() function 取得我要顯示的變數對應的中文字串. 如:


//get_string('在block_ge.php lang file 中定義的中文字串變數名稱(此處是newpost)','block檔名')
 $this->newpost = get_string('newpost','block_ge');   

然後, 在 get_content() function內, 叫出中文字串:
$this->content->items[]='<a href="'.$CFG->wwwroot.'/blog/edit.php?userid='.$USER->id.'&amp;action=add'.'">'.$this->newpost.'</a>';

而在 lang 目錄下, 建立一個 zh_tw_utf8 的繁體中文目錄, 其下放置
相同檔名的 block_ge.php 檔. 內容是使用到的中文字串及英文變數的對應.
其內容如下:


          <?PHP // $Id$
$string['ge'] = '我的區塊標題'; //這是block的標題
$string['newpost'] = '新增文章'; //這個就是我設的中文字串; 變數就是 newpost
$string['blockname'] = 'ge';
?>

另外, 在不同的 block 內仍可抓取對應到別的 block 的中文字串喔! 為什麼呢?
因為在 get_string() 內有指定 block 的名稱 (此處範例的 block名稱是: block_ge,
 也就是 block_ge.php,  我在 block_bbb.php 抓取 block_ge.php 的 editpost 對應
的中文字串)

$this->editpost = get_string('editpost','block_ge');

這樣在Moodle上, 我的block顯示出來的中文就不是亂碼了! 耶! 成功!

沒有留言:

Ho'oponopono Cleaning Tool Locations of visitors to this page