发表于: 2020-08-03 22:25:37

1 1305


今天完成的事:

学习关于页面的国际化

首先要将字符编码改为UTF-8


这里先展示下效果

点击中文显示中文




点击English显示英文


下面大致说下步骤

在resources目录下新建一个i18n的文件夹

新建三个porperties文件,然后idea自动识别我们要做国际化操作,文件夹变了

然后我们点击resources bundle编写配置


我们在config文件夹下编写国际化的配置解析

在Spring中有一个国际化的Locale (区域信息对象);里面有一个叫做LocaleResolver (获取区域信息对象)的解析器!我们需要实现它

public class MycaleResolver implements LocaleResolver {

//解析请求
   @Override
   public Locale resolveLocale(HttpServletRequest httpServletRequest) {
String language = httpServletRequest.getParameter("l");
       Locale locale = Locale.getDefault();//如果没有就使用默认的

       if (!StringUtils.isEmpty(language)){
//zh_CN
           String[] split = language.split("_");
           //国家,地区
           locale = new Locale(split[0],split[1]);
       }
return locale;

   }

@Override
   public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {

}
}


去页面获取国际化的值,查看Thymeleaf的文档,找到message取值操作为:#{...}。我们去页面测试下:

<form class="form-signin" th:action="@{/user/login}">
        <img class="mb-4" th:src="@{/img/bootstrap-solid.svg}" alt="" width="72" height="72">
        <h1 class="h3 mb-3 font-weight-normal" th:text="#{login.tip}">Please sign in</h1>
<!--         如果msg的值为空则不显示消息-->
        <p style="color: red" th:text="${msg}" th:if="${not #strings.isEmpty(msg)}"></p>
        <label class="sr-only" th:text="#{login.username}"></label>
        <input type="text" name="username" class="form-control" th:placeholder="#{login.username}" required="" autofocus="">
        <label class="sr-only" th:text="#{login.password}"></label>
        <input type="password" name="password" class="form-control" th:placeholder="#{login.password}" required="">
        <div class="checkbox mb-3">
           <label>
         <input type="checkbox" value="remember-me"> [[#{login.remember}]]
</label>
        </div>
        <button class="btn btn-lg btn-primary btn-block" type="submit" th:text="#{login.btn}">Sign in</button>
        <p class="mt-5 mb-3 text-muted">© 2017-2018</p>
        <a class="btn btn-sm" th:href="@{/index.html(l='zh_CN')}">中文</a>
        <a class="btn btn-sm" th:href="@{/index.html(l='en_US')}">English</a>
     </form>


页面跳转链接

<a class="btn btn-sm" th:href="@{/index.html(l='zh_CN')}">中文</a>
<a class="btn btn-sm" th:href="@{/index.html(l='en_US')}">English</a>


ok,大致流程就是这样


明天计划的事:

遇到的困难:

收获:





返回列表 返回列表
评论

    分享到