Thinkphp php文件也外部js文件公用同一个语言包
一 . php语言包转json数据格式
1.新建验证字段的语言包 applicationcommonlangvalidate-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);
输出:邮箱不能为空