Skip to content

多语言

多语言概述

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,
];

配置要点

  1. 默认语言设置:通过 default_lang 配置项设置系统默认语言,默认为中文(zh-cn)

  2. 支持语言列表allow_lang_list 定义系统支持的所有语言,当前支持中文(zh-cn)和英文(en)

  3. 语言检测机制:系统支持多种语言检测方式,包括URL参数、Cookie和HTTP Header

  4. 语言自动转换:通过 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                             #表单验证错误提示语言文件

基于 MIT 协议发布