niucloud-admin框架内置多语言实现。多语言又包括两部分。
一部分为系统内置语言,一部分为第三方插件语言包。
系统会通过装载器自动加载系统内置语言,并会把已经安装的第三方插件语言包装载。
语言包的配置文件在niucloud\config\lang.php文件中
return [
// 默认语言
'default_lang' => env('lang.default_lang', 'zh-cn'),
// 允许的语言列表
'allow_lang_list' => ['zh-cn', 'en'],
// 多语言自动侦测变量名
'detect_var' => 'lang',
// 是否使用Cookie记录
'use_cookie' => true,
// 多语言cookie变量
'cookie_var' => 'lang',
// 多语言header变量
'header_var' => 'lang',
'extend_list' => [
],
// Accept-Language转义为对应语言包名称
'accept_language' => [
'zh-hans-cn' => 'zh-cn',
],
// 是否支持语言分组
'allow_group' => true,
];
具体的语言包的目录文件在niucloud\app\lang目录下,按照不同的语言建立对应的文件夹zh-cn, en。
api.php 中为在api接口使用时的多语言关键词定义
dict.php中为在系统配置数据字典中对多语言定义
validate.php中为验证类多语言定义
zh-cn.php(en.php)通过语言包装载器动态装载系统语言包,并对安装的第三方插件中定义的语言包进行加载。
在插件的addon\lang中建立与app\lang目录同等的目录文件结构,并参照app\lang目录下的文件命名,组织语言包内容,系统会自动加载本语言包,完成多语言切换。