19.国际化语言

国际化语言

语言配置目录app/lang

app(应用根目录)
    common
    config
    controller
    email
    lang(语言配置目录)
        en.php(英文)
        zh_cn.php(中文)
        zh_cn.tips.php(提示文件)
    static
    utils
    views

组件配置

可配置属性

/**
 * 设置语言,zh_cn,zh_tw,en
 * 
 * @var string
 */
public $lang="zh_cn";
/**
 * 默认语言
 * 如果当前语言找不到键值的话,从默认语言中获取
 *
 * @var string
 */
public $langDef="zh_cn";
/**
 * lang 目录名称
 * 
 * @var string
 */
public $langDir='lang';

配置

'lang'=>
[
    'class'=>'\qing\lang\Lang',
    'lang'=>'en',
    'langDef'=>'zh_cn'
],

语言内容格式

zh_cn.php

return
[
    'title_reg'     =>'用户注册',
    'title_login'   =>'用户登录',
    'qingmvc_info'  =>'QingMVC 口号:%s 版本: %d ',
];

附加参数

传入附加参数的方式

数组或者函数参数形式

语言提示文件

//zh_cn.tips.php
<?php
exit('do not use it! only for tip! '.__FILE__);
class L extends \qing\lang\L{
     public static function title_reg(){ return '用户注册'; }
     public static function title_login(){ return '用户登录'; }
     public static function qingmvc_info(){ return 'QingMVC 口号:%s 版本: %d '; }
}    

使用方法

//#函数方法
L('qingmvc_info',['QING IS NOT SIMPLE',1]);//有附加参数
//QingMVC 口号:QING IS NOT SIMPLE 版本: 1
L('title_reg');//无附加参数
//用户注册
L('title_login');
//用户登录

//#静态方法
//只支持静态方法,不支持静态成员
L::qingmvc_info('QING IS NOT SIMPLE',1);//有附加参数
L::title_reg();//无附加参数
L::title_login();
L::$title_login;//静态成员不支持,这种用法是错误的!

//#对象方法
//##主动创建实例
$L=new L();
$L->qingmvc_info('QING IS NOT SIMPLE',1);//有附加参数
$L->title_reg();//无附加参数
$L->title_login;//无附加参数,可使用成员方法

//##L()方法返回实例
L()->qingmvc_info('QING IS NOT SIMPLE',1);
L()->title_reg();
L()->title_login;

静态方法

//#静态方法
//只支持静态方法,不支持静态成员
L::qingmvc_info('QING IS NOT SIMPLE',1);//有附加参数
L::title_reg();//无附加参数
L::title_login();
L::$title_login;//静态成员不支持,这种用法是错误的!

对象方法

//#对象方法
//##主动创建实例
$L=new L();
$L->qingmvc_info('QING IS NOT SIMPLE',1);//有附加参数
$L->title_reg();//无附加参数
$L->title_login;//无附加参数,可使用成员方法

//##L()方法返回实例
L()->qingmvc_info('QING IS NOT SIMPLE',1);
L()->title_reg();
L()->title_login;

更多案例

//使用实例访问常量
(new L())->qingmvc;
L()->qingmvc;

L::qingmvc(111,222);
L()->qingmvc(111,222);

//'login_fail'  =>'登录失败  %s %s %d ',
dump(L()->login_fail('user','pwd',123));
dump(L('login_fail',['user','pwd',123]));
dump(L::login_fail('user','pwd',123));