主题切换
🌍 国际化(i18n)配置指南
📖 功能介绍
TIP
国际化(i18n)功能支持系统提供多语言界面和消息提示,提升全球用户的使用体验。
⚙️ 配置说明
1. 请求头配置
参数名 | 说明 | 示例 |
---|---|---|
wueasy-language | 语言标识 | zh, en |
2. 默认语言设置
yaml
wueasy:
i18n:
defaultLanguage: zh # 设置默认语言为中文
📝 语言包配置
1. 文件结构
在项目的 resources
目录下创建 i18n
文件夹,包含以下文件:
resources/
└── i18n/
├── messages_zh.properties # 中文语言包
└── messages_en.properties # 英文语言包
2. 中文语言包示例 (messages_zh.properties)
properties
# 系统错误
ERROR=很抱歉,系统繁忙,请稍后再试!
SERVER_PARAM_ERROR=参数格式错误!
# 验证码相关
CAPTCHA_SEND_OFTEN=验证码发送频繁,请稍后再试!
CAPTCHA_SEND_LIMIT_IP=当前ip发送验证码超出限额,请明天再试!
CAPTCHA_SEND_LIMIT_CODE=当前号码发送消息超出限额,请明天再试!
CAPTCHA_EMPTY=验证码未发送或已过期,请重新发送!
CAPTCHA_MISMATCHING=验证码不匹配!
# 文件操作
FILE_MAX_SIZE=文件大小超出限制!
FILE_IO_ERROR=上传失败!
FILE_DOWN_ERROR=下载失败!
FILE_NOT_EXIST_ERROR=文件不存在!
FILE_EMPTY=文件不能为空!
FILE_EXTNAME=禁止上传文件类型!
# 加密解密
CRYPTO_ENCRYPT_ERROR=加密失败!
CRYPTO_DECRYPT_ERROR=解密失败!
# 分页相关
MIN_PAGE_NUM_ERROR=页码最小值为1!
MAX_PAGE_SIZE_ERROR=每页数量最大值为1000!
MIN_PAGE_SIZE_ERROR=每页数量最小值为1!
3. 英文语言包示例 (messages_en.properties)
properties
# System Errors
ERROR=Sorry, the system is busy. Please try again later!
SERVER_PARAM_ERROR=Parameter format error!
# Captcha Related
CAPTCHA_SEND_OFTEN=Verification code sent too frequently, please try again later!
CAPTCHA_SEND_LIMIT_IP=IP verification code limit exceeded, please try tomorrow!
CAPTCHA_SEND_LIMIT_CODE=Phone number message limit exceeded, please try tomorrow!
CAPTCHA_EMPTY=Verification code not sent or expired, please resend!
CAPTCHA_MISMATCHING=Verification code does not match!
# File Operations
FILE_MAX_SIZE=File size exceeds limit!
FILE_IO_ERROR=Upload failed!
FILE_DOWN_ERROR=Download failed!
FILE_NOT_EXIST_ERROR=File does not exist!
FILE_EMPTY=File cannot be empty!
FILE_EXTNAME=File type not allowed!
# Encryption/Decryption
CRYPTO_ENCRYPT_ERROR=Encryption failed!
CRYPTO_DECRYPT_ERROR=Decryption failed!
# Pagination
MIN_PAGE_NUM_ERROR=Minimum page number is 1!
MAX_PAGE_SIZE_ERROR=Maximum page size is 1000!
MIN_PAGE_SIZE_ERROR=Minimum page size is 1!
💡 使用示例
1. 参数验证国际化
java
@Data
public class BasePageDto {
/**
* 页码
*/
@Min(value = 1, message = "MIN_PAGE_NUM_ERROR")
private long pageNum = 1;
/**
* 每页数量
*/
@Max(value = 1000, message = "MAX_PAGE_SIZE_ERROR")
@Min(value = 1, message = "MIN_PAGE_SIZE_ERROR")
private int pageSize = 20;
}
2. 业务异常国际化
java
@Service
public class UserService {
public void login(LoginDto dto) {
if (!"admin".equals(dto.getAccountNo()) ||
!"123456".equals(dto.getPassword())) {
throw new InvokeException(-1, "USER_OR_PASSWORD_ERROR");
}
}
}
⚠️ 注意事项
命名规范
- 语言文件必须遵循
messages_{语言代码}.properties
格式 - 错误码建议使用大写字母和下划线组合
- 语言文件必须遵循
编码设置
- 属性文件必须使用 UTF-8 编码
- 注意特殊字符的转义
维护建议
- 保持各语言文件的同步更新
- 定期检查缺失的翻译项
- 注意信息的语义准确性
🔍 常见问题
消息未国际化
- 检查语言标识是否正确
- 验证属性文件编码格式
- 确认消息键是否存在
默认语言不生效
- 检查配置文件设置
- 验证语言文件是否存在
- 确认文件命名是否正确