thinkphp 外部js语言包

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);

输出:邮箱不能为空

原文地址:https://www.cnblogs.com/wesky/p/7454552.html