# API 文档:修改语言接口 ## 元数据 - **需求编号**:2026-01-26-002-08-04 - **创建时间**:2026-01-26 - **创建人**:SSOT 架构师 - **父需求**:2026-01-26-002-08-语言管理功能 - **状态**:已完成 ## 功能概述 修改已有的语言信息。 ## 接口信息 ### 基本信息 - **接口名称**:修改语言 - **接口功能**:更新已存在的语言信息 - **请求方式**:PUT - **请求路径**:`/system/language` - **权限要求**:`system:language:edit` ### 请求参数 | 参数名 | 类型 | 必选 | 说明 | 示例值 | |--------|------|------|------|--------| | id | Long | 是 | 语言 ID | 2 | | langCode | String | 是 | 语言代码 | en-US | | langName | String | 是 | 语言名称 | 英语(美国) | | langNameEn | String | 是 | 语言英文名称 | English (United States) | | sortOrder | Integer | 否 | 排序 | 2 | | status | String | 否 | 状态(0正常 1停用) | 0 | ### 响应参数 | 参数名 | 类型 | 说明 | |--------|------|------| | code | Integer | 状态码(200 成功) | | msg | String | 提示信息 | ### 请求示例 ```http PUT /system/language Content-Type: application/json { "id": 2, "langCode": "en-US", "langName": "英语(美国)", "langNameEn": "English (United States)", "sortOrder": 2, "status": "0" } ``` ### 响应示例 ```json { "code": 200, "msg": "修改成功" } ``` ## 错误码 | 错误码 | 说明 | 处理建议 | |--------|------|----------| | 400 | 请求参数错误 | 检查请求参数是否正确 | | 401 | 未登录或登录已过期 | 重新登录 | | 403 | 无权限访问 | 联系管理员分配权限 | | 404 | 语言不存在 | 检查语言 ID 是否正确 | | 409 | 语言代码已存在 | 使用不同的语言代码 | | 500 | 服务器内部错误 | 联系技术支持 | ## 业务规则 1. **唯一性规则**: - 语言代码(langCode)必须唯一 - 不能修改为已存在的语言代码(除自己外) 2. **必填规则**: - 语言 ID(id)为必填项 - 语言代码(langCode)为必填项 - 语言名称(langName)为必填项 - 语言英文名称(langNameEn)为必填项 3. **数据权限**: - 需要登录用户 - 需要具备 `system:language:edit` 权限 4. **修改后处理**: - 清除语言列表缓存 - 清除语言详情缓存 - 记录操作日志 5. **特殊限制**: - 不能修改默认语言的 ID - 不能修改语言代码为系统保留的代码(如 zh-CN、en-US) ## 缓存策略 - **缓存类型**:Redis - **缓存更新**: - 修改语言后清除该语言的缓存 - 清除所有语言列表缓存 - 清除缓存键模式:`system:language:*` ## 注意事项 1. 修改语言代码会影响所有使用该语言的用户,建议谨慎操作 2. 修改语言名称不会影响语言代码,前端显示的语言名称会立即更新 3. 修改语言状态后,停用的语言不会在前端语言选择列表中显示 4. 修改排序字段会影响语言在前端的显示顺序 5. 修改语言信息后,建议刷新国际化资源缓存以确保翻译内容生效