🌐 多语言包管理
ThinkAdmin 基于 ThinkPHP 提供完善的多语言包管理功能,支持国际化应用开发。
🚀 主要功能
- 多语言支持: 支持多种语言包切换
- 分层管理: 全局、应用、动态三种语言包类型
- 灵活配置: 支持动态配置语言参数
- 数据字典: 支持数据库存储的动态语言包
- 自动加载: 自动加载对应语言包文件
- 缓存优化: 支持语言包缓存提升性能
📋 语言包类型
全局语言包
- 作用范围: 所有应用都可以使用
- 文件位置:
/lang/LANG.php
或 ThinkLibrary 中定义 - 命名规则: 文件名称需要与配置名一致
- 使用场景: 通用语言包,如系统提示、错误信息等
应用语言包
- 作用范围: 仅在当前应用有效
- 文件位置:
app/MODULE/lang/LANG.php
- 命名规则: 文件名称需要与配置名一致
- 使用场景: 应用特定的语言包
动态语言包
- 存储方式: 存储在数据字典中
- 内置语言包: "英文字典"、"英文菜单"
- 自定义支持: 支持自定义读取规则
- 使用场景: 方便后期修补错漏的语言包
⚙️ 配置说明
基础配置
- 默认语言:
zh-cn
(中文) - 配置文件:
config/lang.php
- 切换方式: 后台系统参数配置
- 缓存机制: 支持语言包缓存提升性能
- 自动检测: 支持浏览器语言自动检测
语言包文件
- 全局语言包:
/lang/LANG.php
- 应用语言包:
app/MODULE/lang/LANG.php
- 动态语言包: 数据字典存储
- 文件格式: 支持 PHP 数组格式
- 编码要求: 建议使用 UTF-8 编码
语言切换
- 实时切换: 支持运行时动态切换语言
- 用户偏好: 支持用户个人语言偏好设置
- 会话保持: 语言设置在用户会话中保持
- 默认回退: 支持语言回退到默认语言
性能优化
- 缓存机制: 语言包自动缓存减少文件读取
- 懒加载: 按需加载语言包内容
- 内存优化: 优化语言包内存使用
- 文件监控: 支持语言包文件变更监控
全局语言包
顾名思义,全局语言包可以在所有应用使用,例如在 ThinkLibrary 中定义的通用语言包。
在框架根目录 /lang/LANG.php
也可以定义指定语言 LANG
的全局语言包,文件名称需要与配置名一致。
应用语言包
仅在当前应用有效,在应用目录下的 app/MODULE/lang/LANG.php
定义,如 app/admin/lang/en-us.php
,文件名称需要与配置名一致。
动态语言包
动态语言包是写在数据字典,方便后期修补错漏的语言包,已内置的语言包有 "英文字典"、"英文菜单",其他语言包需要自行编写读取规则。
参照代码:案例