phpcms英文二次開發(fā)之語言包詳解
phpcms英文的語言包使其成為國際化的cms,從PHPCMS v9.1開始,發(fā)布了英文版。但很遇憾的是,到目前為止,PHPCMS還沒有實(shí)現(xiàn)語言切換的功能,比如中英語言切換等。我認(rèn)為PHPCMS實(shí)現(xiàn)了語言的切換功能才能稱得上真正意義國際化cms。雖然如此,和國內(nèi)的其它CMS相比,PHPCMS已經(jīng)是最為國際化的了。
phpcms v9英語語言包位置:
1、phpcms\languages\zh-cn 中文語言包
2、phpcms\languages\en 英文語言包
phpcms v9英文語言包建立
在phpcms v9二次開發(fā)之模型類的應(yīng)用,講到了足球等級(jí)的模型類的應(yīng)用,現(xiàn)在為其添加一個(gè)中文語言包,其步驟如下:
1、phpcms\languages\zh-cn 目錄下新建一個(gè)文件level.lang.php,注意“level”與模塊名稱相對(duì)應(yīng)。
2、在level.lang.php寫上如下代碼:
<?php
$LANG['level_name'] = '等級(jí)';
$LANG['edit_level'] = '編輯等級(jí)';
$LANG['operations_manage'] = '管理操作';
$LANG['allselect'] = '全選';
$LANG['level_deleted'] = '等級(jí)批量刪除完成!';
?>
到此,一個(gè)語言包就建立完了,真的很簡單,接下來我我來看一下它的應(yīng)用。
模塊語言包一般是用在與之相應(yīng)的模塊的模板上,好比一個(gè)局部變量,系統(tǒng)語言包適用所有模塊模板,就像全局變量一樣。下面是足球級(jí)別后臺(tái)列表模板代碼片斷:
<thead>
<tr>
<th width="50" align="center"><input type="checkbox" value="" id="check_box" onclick="selectall('id[]');"><?php echo L('allselect')?></th>
<th align="center">id</th>
<th align="center"><?php echo L('level_name')?></th>
<th align="center"><?php echo L('operations_manage')?></th>
</tr>
</thead>
我們上面定義的語言包中"$LANG['level_name'] = '等級(jí)';",就是作為函數(shù)“ L('level_name')”的參數(shù),其輸出的數(shù)據(jù)為“等級(jí)”。
當(dāng)然,我們也不一定非要建立語言包,非正式的話也可以直接賦與參數(shù),如:
“<th align="center"><?php echo L('level_name')?></th>”,可以寫成“<th align="center"><?php echo L("等級(jí)")?></th>”,甚至可以更直接寫成<th align="center">等級(jí)</th>
phpcms v9英語語言包的作用
上面說過,語包的寫法和其它替代寫法,當(dāng)然,參數(shù)字節(jié)小的話可以直接給L()函數(shù)賦與參數(shù),但是如果參數(shù)字節(jié)太大呢?這樣在模板上就顯得凌亂了。語言包一經(jīng)定義,可以重復(fù)在多個(gè)模板上使用。前面也提到,甚至可以不用語言包和“L()"函,直接寫,不過不建議這樣,一般來說不會(huì)有什么問題,但我在調(diào)試過程中偶爾也會(huì)出現(xiàn)一些意想不到的亂碼。顯然語言的作用有:
1、開發(fā)國際版CMS
2、使模板整潔美觀
3、方便模板修改,減少工作量
4、杜絕因?yàn)榫幋a而引起的亂碼問題