thinkphp 外部js語言包
阿新 • • 發佈:2017-08-30
常用 pat 導入 for div clas emp 全局 clu
Thinkphp php文件也外部js文件公用同一個語言包
一 . php語言包轉json數據格式
1.新建驗證字段的語言包 application\common\lang\validate-cn.php
<?php // 驗證字段語言包 中文 return [ ‘validate‘=>[ ‘name‘ => [ ‘empty‘=> ‘用戶名不能為空‘, ‘length‘ => ‘用戶名長度6-20字符‘ ], ‘email‘ => [‘empty‘ => ‘郵箱不能為空‘, ‘format‘ => ‘郵箱格式不對‘ ], ‘password‘=>[ ‘empty‘ => ‘密碼不能為空‘, ‘format‘ => ‘密碼長度為6-20字符‘ ], ] ];
2.zh-cn 導入語言包validate-cn.php數據
<?php /** * 全局語言包 * zh-cn * */ $lang = include(APP_PATH . ‘common/lang/validate-cn.php‘);; $data = [ ‘success‘ =>‘執行成功 ^_^‘, ‘error‘ => ‘執行失敗 (┬_┬)‘, ‘confirm‘ =>[ ‘1‘ => ‘是‘, ‘2‘ => ‘否‘, ], ‘check‘ =>[ ‘1‘ => ‘已審核‘, ‘2‘ => ‘未審核‘, ‘3‘ => ‘禁用‘ ], ‘sex‘ =>[ ‘1‘ => ‘保密‘,‘2‘ => ‘男‘, ‘3‘ => ‘女‘ ] ]; return array_merge($lang,$data);
這麽做的目的是把“常用語言包”和“字段驗證語言包”方在不同的文件裏,然後合並數據。在Thinkphp方法裏面或者初始化的地方轉json數據
public function _initialize() { // 實例化驗證語言包 $lang = lang(‘validate‘); $validate = json_encode($lang); // 轉json字符串 $this->assign(‘validate‘,$validate); }
並且把變量進行實例化,下面html頁面會把實例化的變量傳遞個js (建議放在全局共享html頁面),加入以下代碼
<script> // Thinkphp 語言包 傳遞個js var language = ‘{$validate}‘; </script>
二. 外部js接收php的json語言包數據 common.js
var lang=eval(‘(‘+language+‘)‘); alert(lang.email.empty);
輸出:郵箱不能為空
thinkphp 外部js語言包