国际化(SpringBoot+Thymeleaf)

1.什么是国际化?

国际化(Internationalization),通常缩写为"i18n",是指在设计和开发软件应用时,考虑并允许其适应不同的语言、地区和文化的过程。这旨在使应用程序能够轻松地适应各种语言和地区的用户,以提供更好的用户体验。

实现国际化通常涉及以下方面:

  • 文本外部化: 将应用中的文本、消息、标签等内容抽离到外部资源文件中,以便在运行时加载不同语言的资源。

  • 格式化和本地化: 对日期、时间、货币等格式进行本地化处理,以符合用户所在地区的文化习惯。

  • 字符编码和字体: 确保应用能够正确地处理不同字符编码,并选择适合不同语言的字体。

  • 图形和图标: 保证图形和图标在不同语言环境下能够正确呈现,并避免依赖语言特定的图形。

本次以文本外部化为例。

2.默认的LocaleResolver

效果图

进入到页面后,不需要任何点击,默认根据浏览器的语言进行显示,哪个语言在上就显示哪种文本。

 首选语言:中文简体

首选语言:英语美国 

步骤一:创建文件

resources目录下创建任意一个文件夹(这里创建的i18n),接下来创建XXX.properties,当创建到XXX_zh_CN.propertis时,会自动在i18n目录一下生成一个Resource Bundle 'XXX',最后再创建你需要的其他语言_国家的配置文件,进行编辑。

 步骤二:写入内容

打开properties文件,使用Resource Bundle可以很方便的进行配置。

默认配置:语言/国家不在你配置的范围内显示的内容。

如果打开properties文件发现没有Resource Bundle选项,可能是缺少插件。安装对应插件即可。

步骤三:在yaml文件中配置

spring:
  #  国际化
  messages:
    basename: i18n.index

目录.XXX

 步骤四:html中应用thymeleaf语法让其生效

语法:#{} 

 和properties中对应即可,IDEA会有对应的提示。

到此即可实现如效果图所示的结果。

3.自定义LocaleResolver

如果有自己的需求,例如通过点击页面上的超链接(如图,中文,English)来完成文本的转换,就需要自定义LocaleResolver了。

效果图

前四步和上面一样。

步骤五:实现LocaleResolver接口

实现LocaleResolver接口,重写对应的两个方法,根据请求所带的参数来确定语言和国家,前端传来的格式是l=语言_国家,因此使用”_“进行分割。

当然也可以按照自己的传参方式来,只要保证new Locale(语言,地区)即可。

package org.pq.boot_thymeleaf.component;

import org.springframework.util.StringUtils;
import org.springframework.web.servlet.LocaleResolver;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;

// 自定义地址解析器
public class MyLocaleResolver implements LocaleResolver {
    //根据传入的请求参数来确定地区
    @Override
    public Locale resolveLocale(HttpServletRequest request) {
        //和html中的超链接请求所带的参数对应
        String l = request.getParameter("l");
        //默认地区
        Locale locale = Locale.getDefault();
        System.out.println(locale);
        //如果传入了参数就覆盖
        if (!StringUtils.isEmpty(l)){
            String[] s = l.split("_");
            locale = new Locale(s[0],s[1]);
        }
        return locale;
    }

    @Override
    public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {

    }
}

步骤六:自动装配

在配置类中注入自己的LocaleResolver实现类,让其生效。

package org.pq.boot_thymeleaf.config;

import org.pq.boot_thymeleaf.component.MyLocaleResolver;
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.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration
public class MyMvcConfig extends WebMvcConfigurerAdapter {
    //导入自己的地区解析器
    @Bean
    public LocaleResolver localeResolver(){
        return new MyLocaleResolver();
    }
}

至此成功实现。

目录结构如图:

  • 17
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: SpringBoot是一个基于Spring框架的快速开发平台,它提供了诸如自动化配置、依赖管理、监控等快速开发功能,使得开发人员可以更加专注于业务逻辑的实现。 MyBatis是一个持久层框架,它通过XML或注解方式,将Java对象与SQL语句进行映射,实现了SQL和Java代码的解耦,简化了SQL语句的书写,提高了开发效率。 Thymeleaf是一种模板引擎,它可以与SpringBoot无缝集成,用于将数据渲染到HTML页面上。通过Thymeleaf的模板标签,我们可以将后端数据与HTML页面进行绑定,实现动态页面的展示。 HTML是一种标记语言,用于编写Web页面,它是构建Web页面的基础语言,我们可以通过HTML实现网页的布局、样式和交互效果。 综上所述,SpringBoot+MyBatis+Thymeleaf+HTML可以实现一个基于MVC架构的Web应用。其中,SpringBoot提供了快速开发的功能,MyBatis实现了数据库和业务逻辑之间的交互,Thymeleaf将数据和HTML页面进行绑定,实现了动态页面的展示,而HTML是构建Web页面的基础语言。这样,开发人员可以快速完成Web应用的开发,从而实现快速迭代和升级。 ### 回答2: Spring Boot 是一个用于创建独立的、基于 Spring 的应用程序的框架,MyBatis 是一种持久化框架,可以简化数据库操作,而 Thymeleaf 是一个用于 Web 和独立环境的现代服务器端 Java 模板引擎。 结合使用 Spring Boot、MyBatis 和 Thymeleaf,你可以更加轻松地开发 Web 应用程序。Spring Boot 可以帮助你快速创建基于 Spring 的应用程序,不需要进行大量的手动配置。MyBatis 还可以启动一个数据库的连接,使开发人员可以轻松地与数据库进行交互。而 Thymeleaf 则可以让你更轻松地创建并管理应用程序的前端部分。 具体地,你可以使用 Spring Boot 来开发 Web 应用程序,可以使用 MyBatis 来实现数据访问,而 Thymeleaf 则可以帮助你创建和管理用户界面(HTML)。Spring Boot 可以在 Web 应用程序中作为框架运行,而 MyBatis 可以让你轻松地与数据库进行交互,而不需要编写许多样板代码。最后,Thymeleaf 可以让你轻松地创建和管理 HTML 网页。 总之,Spring Boot、MyBatis 和 Thymeleaf 是三个非常流行的 Web 开发框架,可以帮助你更加快速地开发 Web 应用程序。无论你是初学者还是经验丰富的开发人员,这些框架都可以帮助你快速开发高品质的应用程序。 ### 回答3: Spring Boot 是一个基于 Spring 框架的快速开发框架,具有开箱即用的特点,可以降低开发者的工作量。MyBatis 是一种持久层框架,可以将 SQL 语句分离出来,使得代码更具可读性和可维护性。Thymeleaf 是一种模板引擎,可以在 HTML 页面中使用,使得前端开发人员也可以参与到后台代码的编写中。 Spring Boot 可以与 MyBatis 集成,使用 MyBatis-Spring 来管理数据源和事务,并通过注解的方式进行 SQL 语句的编写和映射,使得开发更加简化。同时,Spring Boot 还内置了 Tomcat、Jetty、Undertow 等 Web 容器,可以快速编写 RESTful API。 ThymeleafSpring Boot 集成,可以使用 Thymeleaf-Spring 库,实现数据绑定、语言国际化、表单处理等功能。同时,Thymeleaf 还支持标准的 HTML5 标签,使得模板编写更加直观和简单。 综上所述,Spring Boot、MyBatis 和 Thymeleaf 都是现代化的开发框架和工具,可以快速构建高效的 Web 应用。它们的优秀特性和丰富的生态系统,极大地提升了开发效率和代码质量,是现代 Web 开发人员不可或缺的利器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值