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' => false,
// 多语言cookie变量
'cookie_var' => 'lang',
// 多语言header变量
'header_var' => 'lang',
'extend_list' => [
],
// Accept-Language转义为对应语言包名称
'accept_language' => [
'zh-hans-cn' => 'zh-cn',
],
// 是否支持语言分组
'allow_group' => true,
];
默认语言设置:通过 default_lang 配置项设置系统默认语言,默认为中文(zh-cn)
支持语言列表:allow_lang_list 定义系统支持的所有语言,当前支持中文(zh-cn)和英文(en)
语言检测机制:系统支持多种语言检测方式,包括URL参数、Cookie和HTTP Header
语言自动转换:通过 accept_language 配置可将浏览器发送的 Accept-Language 头转换为系统支持的语言包
系统核心语言包文件存放于 niucloud/app/lang 目录下,按照不同语言建立对应的文件夹:
niucloud/app/lang/
├── en.php #英文包
├── zh-cn.php #中文包
├── en #英文具体语言文件目录
│ api.php #系统返回值语言文件
│ dict.php #枚举类型语言文件
│ validate.php #表单验证错误提示语言文件
└── zh-cn #中文具体语言文件目录
│ api.php #系统返回值语言文件
│ dict.php #枚举类型语言文件
│ validate.php #表单验证错误提示语言文件
在插件目录下创建与系统语言包结构一致的目录和文件,例如:
addon/cms/app/lang/
├── en #英文具体语言文件目录
│ api.php #系统返回值语言文件
│ dict.php #枚举类型语言文件
│ validate.php #表单验证错误提示语言文件
└── zh-cn #中文具体语言文件目录
│ api.php #系统返回值语言文件
│ dict.php #枚举类型语言文件
│ validate.php #表单验证错误提示语言文件