9.基于SpringBoot3+I18N实现国际化
2023-12-13 04:57:14
1. 新建资源文件
在resources目录下新建目录i18n, 然后
新建messages_en.properties文件
user.login.error=account or password error!
新建messages_zh_CN.properties文件
user.login.error=帐户或密码错误!
2. 新建LocaleConfig.java文件
@Configuration
public class LocaleConfig {
@Bean
public ResourceBundleMessageSource messageSource() {
Locale.setDefault(Locale.CHINA);
ResourceBundleMessageSource source = new ResourceBundleMessageSource();
//设置国际化文件存储路径和名称 i18n目录,messages文件名
source.setBasenames("i18n/messages", "i18n/error", "i18n/message-system");
//设置根据key如果没有获取到对应的文本信息,则返回key作为信息
source.setUseCodeAsDefaultMessage(true);
//设置字符编码
source.setDefaultEncoding("UTF-8");
return source;
}
}
3. 新建Utils.java文件
@Component
public class Utils implements ApplicationContextAware {
private static ApplicationContext applicationContext;
/**
* 获取国际化信息
*
* @param key
* String :传入的国际化key
* @param obj
* Object :传入的国际化参数
* @return String 返回国际化信息
*/
public static String getI18n(String key, Object[] obj) {
// 目前我在Utils中写死中文,具体使用时请可配置化
Locale locale = Locale.CHINA;
String menuName = applicationContext.getMessage(key, obj, "", locale);
return menuName;
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
if (Utils.applicationContext == null) {
Utils.applicationContext = applicationContext;
}
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
}
4. 改造登录接口
public ResponseVo login(UserDto userDto) {
// 判断是否存在该用户
if (user == null) {
return ResponseVo.error(Utils.getI18n("user.login.error", null));
}
}
5. 启动项目验证
如果出现乱码情况,请将文件设置为UTF-8即可
文章来源:https://blog.csdn.net/SJshenjian/article/details/134834140
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!