Phpcms之L()函數


phpcms v9的語言包使其成為國際化的cms,從PHPCMS v9.1開始,發布了英文版。但很遇憾的是,到目前為止,PHPCMS還沒有實現語言切換的功能,比如中英語言切換等。我認為PHPCMS實現了語言的切換功能才能稱得上真正意義國際化cms。雖然如此,和國內的其它CMS相比,PHPCMS已經是最為國際化的了。 

phpcms v9
語言包位置: 

1
phpcms\languages\zh-cn    中文語言包
2
phpcms\languages\en    英文語言包 

phpcms v9
語言包建立 

phpcms v9二次開發之模型類的應用,講到了足球等級的模型類的應用,現在為其添加一個中文語言包,其步驟如下:
1
phpcms\languages\zh-cn  目錄下新建一個文件level.lang.php,注意"level"與模塊名稱相對應。
2
、在level.lang.php寫上如下代碼:

  1.  
  2. <?php
  3.  
  4. $LANG['level_name']   = '等級';
  5. $LANG['edit_level']    = '編輯等級';
  6. $LANG['operations_manage']        =     '管理操作';
  7. $LANG['allselect']    = '全選';
  8. $LANG['level_deleted']   = '等級批量刪除完成!';
  9.  
  10. ?>
  11.  

復制代碼

到此,一個語言包就建立完了,真的很簡單,接下來我我來看一下它的應用。 

phpcms v9
語言包應用 

模塊語言包一般是用在與之相應的模塊的模板上,好比一個局部變量,系統語言包適用所有模塊模板,就像全局變量一樣。下面是足球級別后台列表模板代碼片斷:

  1.  
  2. <thead>
  3.           <tr>
  4.            <th width="50" align="center"><input type="checkbox" value="" id="check_box" onclick="selectall('id[]');"><?php echo L('allselect')?></th>
  5.           <th  align="center">id</th>        
  6.           <th  align="center"><?php echo L('level_name')?></th>                        
  7.          <th  align="center"><?php echo L('operations_manage')?></th>
  8.     </tr>
  9.   </thead>
  10.  

復制代碼

我們上面定義的語言包中"$LANG['level_name'] = '等級';",就是作為函數" L('level_name')"的參數,其輸出的數據為"等級"
如上面的列表模板片斷其對應的網頁如截圖紅色框 



當然,我們也不一定非要建立語言包,非正式的話也可以直接賦與參數,如:
"<th  align="center"><?php echo L('level_name')?></th>"
,可以寫成"<th  align="center"><?php echo L("等級")?></th>",甚至可以更直接寫成<th  align="center">等級</th> 

phpcms v9
語言包的作用 
上面說過,語包的寫法和其它替代寫法,當然,參數字節小的話可以直接給L()函數賦與參數,但是如果參數字節太大呢?這樣在模板上就顯得凌亂了。語言包一經定義,可以重復在多個模板上使用。前面也提到,甚至可以不用語言包和"L()"函,直接寫,不過不建議這樣,一般來說不會有什么問題,但我在調試過程中偶爾也會出現一些意想不到的亂碼。顯然語言的作用有:
1
、開發國際版CMS
2
、使模板整潔美觀
3
、方便模板修改,減少工作量
4
、杜絕因為編碼而引起的亂碼問題 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM