多语言
多语言概述
niucloud-admin框架内置完善的多语言实现机制,支持系统界面和内容的多语言切换。系统多语言体系包括两大部分:系统内置语言包和第三方插件语言包,通过统一的语言装载器实现自动加载和管理。
多语言配置管理
配置文件
多语言的核心配置位于 niucloud/config/lang.php 文件中。
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 目录下,按照不同语言建立对应的文件夹:
plaintext
niucloud/app/lang/
├── en.php #英文包
├── zh-cn.php #中文包
├── en #英文具体语言文件目录
│ api.php #系统返回值语言文件
│ dict.php #枚举类型语言文件
│ validate.php #表单验证错误提示语言文件
└── zh-cn #中文具体语言文件目录
│ api.php #系统返回值语言文件
│ dict.php #枚举类型语言文件
│ validate.php #表单验证错误提示语言文件插件多语言扩展
插件语言包结构
在插件目录下创建与系统语言包结构一致的目录和文件,例如:
plaintext
addon/cms/app/lang/
├── en #英文具体语言文件目录
│ api.php #系统返回值语言文件
│ dict.php #枚举类型语言文件
│ validate.php #表单验证错误提示语言文件
└── zh-cn #中文具体语言文件目录
│ api.php #系统返回值语言文件
│ dict.php #枚举类型语言文件
│ validate.php #表单验证错误提示语言文件