‘liusuyi’
2023-11-02 d9aba78edd3f6343f00e1794422d26e28b1176f0
增加I18N业务适配后台管理国际化
已添加4个文件
161 ■■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/core/config/I18nConfig.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/i18n/messages_en_US.properties 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/filter/MyI18nInterceptor.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/core/config/I18nConfig.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
package com.ruoyi.web.core.config;
import com.ruoyi.common.filter.MyI18nInterceptor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import org.springframework.web.servlet.i18n.SessionLocaleResolver;
import java.util.Locale;
@Configuration
@Slf4j
public class I18nConfig implements WebMvcConfigurer {
    @Bean
    public LocaleResolver localeResolver()
    {
        SessionLocaleResolver slr = new SessionLocaleResolver();
        // é»˜è®¤è¯­è¨€
        slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE);
        return slr;
    }
    //@Bean
    //public LocaleChangeInterceptor localeChangeInterceptor()
    //{
    //    LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
    //    // å‚数名
    //    lci.setParamName("lang");
    //    return lci;
    //}
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // æ³¨å†Œæ‹¦æˆªå™¨
        MyI18nInterceptor myHandlerInterceptor = new MyI18nInterceptor();
        InterceptorRegistration loginRegistry = registry.addInterceptor(myHandlerInterceptor);
        // æ‹¦æˆªè·¯å¾„
        loginRegistry.addPathPatterns("/**");
    }
}
ruoyi-admin/src/main/resources/i18n/messages_en_US.properties
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
#\u9519\u8BEF\u6D88\u606F
not.null=* Mandatory
user.jcaptcha.error=Verification code error
user.jcaptcha.expire=The verification code has expired
user.not.exists=User does not exist/password error
user.password.not.match=User does not exist/password error
user.password.retry.limit.count=Password input error {0} times
user.password.retry.limit.exceed=Password input error {0} times, account locked for {1} minutes
user.password.delete=Sorry, your account has been deleted
user.blocked=The user has been banned. Please contact the administrator
role.blocked=The role has been banned. Please contact the administrator
user.logout.success=Exit successfully
length.not.valid=The length must be between {min} and {max} characters
user.username.not.valid=*Composed of 2 to 20 Chinese characters, letters, numbers, or underscores, and must start with a non numeric character
user.password.not.valid=*5-50 characters
user.email.not.valid=Email format error
user.mobile.phone.number.not.valid=Mobile number format error
user.login.success=Login successful
user.register.success=login was successful
user.notfound=Please log in again
user.forcelogout=Administrator forced exit, please log in again
user.unknown.error=Unknown error, please log in again
##\u6587\u4EF6\u4E0A\u4F20\u6D88\u606F
upload.exceed.maxSize=The uploaded file size exceeds the limit file size< The maximum allowed file size is: {0}MB !
upload.filename.exceed.length=The maximum length of the uploaded file name is {0} characters
##\u6743\u9650
no.permission=You do not have permission for data. Please contact the administrator to add permission [{0}]
no.create.permission=You do not have permission to create data. Please contact the administrator to add permissions [{0}]
no.update.permission=You do not have permission to modify data. Please contact the administrator to add permissions [{0}]
no.delete.permission=You do not have permission to delete data. Please contact the administrator to add permissions [{0}]
no.export.permission=You do not have permission to export data. Please contact the administrator to add permissions [{0}]
no.view.permission=You do not have permission to view data. Please contact the administrator to add permissions [{0}]
ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
#错误消息
not.null=* å¿…须填写
user.jcaptcha.error=验证码错误
user.jcaptcha.expire=验证码已失效
user.not.exists=用户不存在/密码错误
user.password.not.match=用户不存在/密码错误
user.password.retry.limit.count=密码输入错误{0}次
user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定{1}分钟
user.password.delete=对不起,您的账号已被删除
user.blocked=用户已封禁,请联系管理员
role.blocked=角色已封禁,请联系管理员
user.logout.success=退出成功
length.not.valid=长度必须在{min}到{max}个字符之间
user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成,且必须以非数字开头
user.password.not.valid=* 5-50个字符
user.email.not.valid=邮箱格式错误
user.mobile.phone.number.not.valid=手机号格式错误
user.login.success=登录成功
user.register.success=注册成功
user.notfound=请重新登录
user.forcelogout=管理员强制退出,请重新登录
user.unknown.error=未知错误,请重新登录
##文件上传消息
upload.exceed.maxSize=上传的文件大小超出限制的文件大小!<br/>允许的文件最大大小是:{0}MB!
upload.filename.exceed.length=上传的文件名最长{0}个字符
##权限
no.permission=您没有数据的权限,请联系管理员添加权限 [{0}]
no.create.permission=您没有创建数据的权限,请联系管理员添加权限 [{0}]
no.update.permission=您没有修改数据的权限,请联系管理员添加权限 [{0}]
no.delete.permission=您没有删除数据的权限,请联系管理员添加权限 [{0}]
no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}]
no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}]
ruoyi-common/src/main/java/com/ruoyi/common/filter/MyI18nInterceptor.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
package com.ruoyi.common.filter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;
@Slf4j
public class MyI18nInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        final String key = "language";
        String language = "en_US";//request.getHeader(key);
        // å‰ç«¯ä¼ é€’çš„language必须是zh-CN格式的,中间的-必须要完整,不能只传递zh或en
        log.info("当前语言={}",language);
        Locale locale = new Locale(language.split("_")[0],language.split("_")[1]);
        // è¿™æ ·èµ‹å€¼ä»¥åŽï¼ŒMessageUtils.message方法就不用修改了
        LocaleContextHolder.setLocale(locale);
        return true;
    }
    /**
     * è¯·æ±‚处理之后进行调用,但是在视图被渲染之前(Controller方法调用之后)
     */
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
    }
    /**
     * åœ¨æ•´ä¸ªè¯·æ±‚结束之后被调用,也就是在DispatcherServlet æ¸²æŸ“了对应的视图之后执行(主要是用于进行资源清理工作)
     */
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
    }
}