You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.7 KiB
3.7 KiB
多语言API接口文档
概述
本系统已实现完整的中英双语多语言支持,所有API接口都支持通过HTTP头动态语言切换。
支持的语言
zh-CN: 简体中文(默认)en: 英文
语言切换方式
通过HTTP头切换
# 设置Accept-Language头为中文
Accept-Language: zh-CN
# 设置Accept-Language头为英文
Accept-Language: en
接口示例
门岗端接口
获取拜访列表(中文)
GET /api/gate/visits?date=2024-01-15
Accept-Language: zh-CN
响应:
{
"code": 200,
"message": "success",
"data": {
"current_page": 1,
"data": [...],
"total": 10
}
}
获取拜访列表(英文)
GET /api/gate/visits?date=2024-01-15
Accept-Language: en
后台管理接口
获取拜访日志列表(中文)
GET /api/admin/visit-logs/index?token=your_token
Accept-Language: zh-CN
获取拜访日志列表(英文)
GET /api/admin/visit-logs/index?token=your_token
Accept-Language: en
错误消息多语言
所有错误消息都支持多语言:
中文错误消息
{
"code": 400,
"message": "拜访ID不能为空",
"data": null
}
英文错误消息
{
"code": 400,
"message": "Visit ID is required",
"data": null
}
语言文件结构
lang/
├── zh-CN/
│ ├── common.php # 通用消息
│ ├── gate.php # 门岗端消息
│ ├── visit.php # 拜访相关消息
│ ├── visit_log.php # 拜访日志消息
│ └── ...
└── en/
├── common.php # Common messages
├── gate.php # Gate interface messages
├── visit.php # Visit related messages
├── visit_log.php # Visit log messages
└── ...
测试多语言功能
可以通过设置不同的Accept-Language头来测试多语言功能:
# 测试中文响应
curl -H "Accept-Language: zh-CN" http://your-domain/api/gate/visits
# 测试英文响应
curl -H "Accept-Language: en" http://your-domain/api/gate/visits
中间件说明
系统使用 SetLocale 中间件自动处理语言切换:
- 检查HTTP头
Accept-Language - 验证语言是否支持(zh-CN, en)
- 默认使用
zh-CN
前端集成建议
JavaScript示例
// 请求时设置Accept-Language头
function fetchVisits(lang = 'zh-CN') {
return fetch('/api/gate/visits', {
headers: {
'Accept-Language': lang
}
}).then(response => response.json());
}
// 使用
fetchVisits('en');
Vue.js示例
// 在Vue组件中
export default {
data() {
return {
currentLang: 'zh-CN'
}
},
methods: {
switchLanguage(lang) {
this.currentLang = lang;
},
async fetchData() {
const response = await this.$http.get('/api/gate/visits', {
headers: {
'Accept-Language': this.currentLang
}
});
return response.data;
}
}
}
注意事项
- 所有API接口都支持多语言,无需额外配置
- 通过设置
Accept-LanguageHTTP头来指定语言 - 不设置语言头则使用默认语言(zh-CN)
- 错误消息和成功消息都会根据当前语言返回对应文本
- 支持的语言:zh-CN(中文)、en(英文)
扩展新语言
如需添加新语言支持:
- 在
lang/目录下创建新的语言文件夹 - 复制现有语言文件并翻译内容
- 在
SetLocale中间件中添加新语言到$supportedLocales数组