及中文字串, 如何對應到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.'&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顯示出來的中文就不是亂碼了! 耶! 成功!
沒有留言:
張貼留言