当前位置: 代码网 > it编程>编程语言>Java > springboot国际化多语言配置方式

springboot国际化多语言配置方式

2024年05月15日 Java 我要评论
概要项目中有时候会用到多语言的业务场景;一般来说都是通过后端实现的,将先有内容替换为适用的环境语言;springboot项目为例1 新建路径/文件新建路径static/i18n新建文件: messag

概要

项目中有时候会用到多语言的业务场景;

一般来说都是通过后端实现的,将先有内容替换为适用的环境语言;

springboot项目为例

1 新建路径/文件

  • 新建路径static/i18n
  • 新建文件: messages.properties messages_en_us.properties messages_zh_cn.properties

效果图

内容

文件内容如下:

demo=登录demo=login

2 新建两个配置类

localconfig 配置默认语言解析, 指定获取参数名

@configuration
public class localconfig {

    /**
     * 默认解析器 其中locale表示默认语言
     */
    @bean
    public localeresolver localeresolver() {
        sessionlocaleresolver localeresolver = new sessionlocaleresolver();
        localeresolver.setdefaultlocale(locale.china);
        return localeresolver;
    }

    /**
     * 默认拦截器 其中lang表示切换语言的参数名
     */
    @bean
    public webmvcconfigurer localeinterceptor() {
        return new webmvcconfigurer() {
            @override
            public void addinterceptors(interceptorregistry registry) {
                localechangeinterceptor localeinterceptor = new localechangeinterceptor();
                localeinterceptor.setparamname("lang");  //拦截lang参数
                registry.addinterceptor(localeinterceptor);
            }
        };
    }

}

localutil 将springbean获取并用于静态方法,方便后续调用

@component
public class localutil {

    private static messagesource messagesource;

    public localutil(messagesource messagesource) {
        localutil.messagesource = messagesource;
    }

    /**
     * 获取单个国际化翻译值
     */
    public static string get(string msgkey) {
        try {
            return messagesource.getmessage(msgkey, null, localecontextholder.getlocale());
        } catch (exception e) {
            return msgkey;
        }
    }
}

搞一个控制器测试

@restcontroller
@requestmapping("lang")
public class langcontroller {

    @requestmapping("get")
    public string get(){
        return localutil.get("demo");
    }
}

咱们直接访问这个接口看效果

  • 直接访问,返回登录(默认解析)
  • 传参数en_us,返回 login (英文)
  • 传参数zh_cn,返回登录(中文)

三种效果图

总结

如此做之后,就可以实现,多语言了,不过要做的事情还很多,相当于你所有页面要展示的词汇,都需要放到这里三个配置文件中搞一遍,才可以

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com