springboot 2.1 实践教程(八)-国际化

SpringBoot国际化配置流程(超详细) *** 国际化消息源*/@Resource/*** 区域解析器,供消息源@MessageSource根据不同的区域@java.util.Locale读取不同的properties文件*/@Bean// 设置默认区域:简体中文/*** 使用自定义LocalValidatorFactoryBean,* 设置Spring国际化消息源,用户jsr303验证信息实现自定义国际化*/@Bean: Locale对象表示特定的地理、政治或文化区域,用以区分区域。 阅读详情

Spring Boot支持本地化消息,以便您的应用程序可以满足不同语言首选项的用户。默认情况下,SpringBoot默认国际化文件为:classpath:message.properties,如果放在其它文件夹中,则需要在application.yml配置属性spring.messages.basename

 

spring.messages.basename=i18n/messages  #系统会在i118n目录下查找messages开头的文件
spring.messages.encoding =UTF-8

 

具体实现国际化的步骤非常简单,如下:

创建资源文件,在resources/i18n/messages目录下

message.properties (默认文件,当找不到语言的配置的时候,使用该文件进行展示)

user.name=用户名  
user.password=密码  
user.btn=登录 
weclome=欢迎 

messages_zh_CN.properties(中文)

user.name=用户名  
user.password=密码  
user.btn=登录
weclome=欢迎  

 messages_en_US.properties(英文)

user.name=UserName  
user.password=Password  
user.btn=Sign In
weclome=weclome

 

创建I18nConfig类

该类的作用是设置国际化相关的一些配置

自定义国际化配置的类主要包含的内容

1.设置以session 的方式获取local值

2.设置拦截器拦截请求中的特殊参数,根据参数的内容来改变用户的语言区域。

 

/**
 * 资源文件配置加载
 * 
 */
@Configuration
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)
    {
        registry.addInterceptor(localeChangeInterceptor());
    }
}

创建Controller

package org.learn.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class MyMessagesController {

    @GetMapping("/")
    public String hello() {
        return "hello";
    }
}

在页面上获国际化的值

前端页面使用的thymeleaf,后面的章节我们将会介绍该模板引擎,如果使用thymeleaf,我们在pom.xml引入相关jar包

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
  </dependency>

设置Tthymeleaf相关的配置信息

# 模板引擎
 spring.thymeleaf. mode = HTML
 spring.thymeleaf. encoding=utf-8
    # 禁用缓存
 spring.thymeleaf. cache = false

创建页面 hello.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<a href="/?lang=en_US">English(US)</a>
<a href="/?lang=zh_CN">简体中文</a>

<br />
<br />
<label th:text="#{user.name}"></label><input type="text"> <br />
<label th:text="#{user.password}"></label><input type="text"><br />
<input type="button" th:value="#{user.btn}"/>
</body>
</html>

thymeleaf 标签 是通过 #{}来获取语言文件的值

通过后端渲染国际化的方法

package org.learn.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.Locale;

@Controller
public class MyMessagesController {
    @Autowired
    private MessageSource messageSource;
    @GetMapping("/")
    public String hello(Model model) {

        Locale locale = LocaleContextHolder.getLocale();
        model.addAttribute("weclomeLang", messageSource.getMessage("weclome", null, locale));
        return "hello";
    }
}

后端controller 通过messageSource.getMessage获取本地化语言文件中的内容

前端页面则增加

<h2><span th:text="${weclomeLang}"></span></h2>

如上代码获取后端本地化的内容渲染到页面中,我们可以看到获取后端的内容通过${}获取的

以上就是Spring Boot 国际化的操作。

 

点击Englisn

 

 

点击简体中文时

 

整体工程目录结构如下

 

 

 

本章总结:

Spring Boot 对多语言的实现在步骤上简化了很多,首先设置好资源文件(messages.properties)系统可以通过资源文件的加载通过LocaleResolver去设置相关的配置信息。前台页面可以根据多语言参数的不同加载不同的语言文件,并可以通过模板引擎文件渲染出结果。

注意的地方:

1.当我们使用Thymeleaf等动态页面时,页面文件默认是在resources/templates目录下的。静态页面时在static目录下。

2.当系统没有找到对应的语言文件时,会默认加载messages.properties文件

 

 

 

 

 

 

 

 

 

springboot返回值国际化处理 一:启动类内配置 二:国际化文件 三,拦截器 package com.otcbi; import com.otcbi.common.dto.OperateResult; import com.otcbi.common.utils.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; ... 阅读详情

相关推荐

Springboot与国际化(i18n)

一、什么是国际化? 国际化就是在不修改内部代码的情况下,根据不同语言及地区显示相应的语言界面。 i18n的由来→internationalization,数一下,首字母i和末位字母之间有18个字母。类似的命名还有很多,例如k8s。 Springboot已经对i18n国际化做了自动配置,自动配置类。 org.springframework.boot.autoconfigure.context.MessageSourceAutoConfiguration 如果想自定义国际化,通过@Autow

追求幸福,探索未知的博客 2886

2021-10-13

国际化(Internationalization 简称 I18n,其中“I”和“n”分别为首末字符,18 则为中间的字符数)是指软件开发时应该具备支持多种语言和地区的功能。换句话说就是,开发的软件需要能同时应对不同国家和地区的用户访问,并根据用户地区和语言习惯,提供相应的、符合用具阅读习惯的页面和数据,例如,为中国用户提供汉语界面显示,为美国用户提供提供英语界面显示。 在 Spring 项目中实现国际化,通常需要以下 3 步: 编写国际化资源(配置)文件; 使用 ResourceBundleMessageS

caihuawei123的博客 399

SpringBoot系列之i18n国际化多语言支持教程

SpringBoot系统之i18n国际化语言集成教程 1、环境搭建 本博客介绍一下SpringBoot集成i18n,实现系统语言国际化处理,ok,先创建一个SpringBoot项目,具体的参考我的博客专栏:SpringBoot系列博客专栏链接 环境准备: IntelliJ IDEA Maven 项目集成: Thymeleaf(模板引擎,也可以选jsp或者freemark) SpringBoo...

Nicky's blog 1万+

springBoot深度解析-04springboot国际化功能解析

5. 国际化 此功能一般用于jsp页面,目前市场主流前后端分离不适用与此,国际化的主要作用是用于写完一套代码后能够支持不同国家的人能看到此页面信息 Spring Boot 支持本地化消息,以便您的应用程序可以满足不同语言偏好的用户。默认情况下,Spring Bootmessages在类路径的根目录中查找资源包的存在 当配置的资源包的默认属性文件可用时(messages.properties默认情况下),自动配置适用。如果您的资源包仅包含特定于语言的属性文件,则需要添加默认值。如果找不到与任何配置的

lijunliang2017的博客 1978

iOS 取证窍门:为什么要先从 Recovery 恢复模式开始?

未记录的 DFU 代表“设备固件升级”。与专为普通用户设计的恢复模式不同,DFU 模式从来都不是为公众设计的。Apple 知识库中的任何地方都没有关于 DFU 的文档。进入 DFU 的方法主要是通过按下、按住和释放按钮的复杂操作序列,并具有精确的时间限制。在多个步骤中的任何一个步骤中,如果时间错误,都会导致重新启动设备,而不是将其切换到 DFU。另外,设备屏幕上也没有 DFU 模式的指示。如果设备成功切换到 DFU,显示屏将保持黑色。即使对于专家来说,进入 DFU 模式也可能很困难。恢复模式是最容易解释的。

2302_82041293的博客 1198

R语言pls包实战:手把手教你用偏最小二乘(PLS)搞定高维数据回归(附完整代码与数据标准化避坑指南)

本文详细介绍了如何使用R语言的pls包进行偏最小二乘(PLS)回归分析,特别针对高维数据回归问题。通过完整的代码示例和数据标准化避坑指南,帮助读者掌握从数据预处理到模型优化的全流程,解决实际应用中的常见问题。

weixin_42662605的博客 347

配置spring.messages.basename笔记

如果是配置项目外的文件,应该像1中的写法,在路径开头以file:作为路径起始,如果是项目中,则可以是classpath:/path这样的写法,并且最后一定是要读取的文件的前缀,比如定义的是messages_en.properties,那么路径的最后一定是messages,像这样/parent-path/messages,不能写成/parent-path/项目中需要使用Spring框架的MessageSource实现国际化,由于一些要求,需要读取项目外的propertie文件,现在总结配置过程中的一些经验。

nicholas2487的博客 1179

PaddleOCR GPU部署:从环境配置到避坑实战指南

本文详细介绍了PaddleOCR GPU部署的全过程,从环境配置到避坑实战指南。通过分析常见的部署失败原因,提供硬件兼容性自查、软件环境精配方案以及路径配置的解决方案,帮助用户高效完成GPU加速的OCR任务部署,避免90%的常见错误。

weixin_30839881的博客 417

SpringBoot 消息国际化配置

一、目的 针对不同地区,设置不同的语言信息。 SpringBoot国际化配置文件默认放在classpath:message.properties,如果自定义消息配置文件,需要application.properties或application.yml中设置spring.messages.basename的值。 二、步骤 在src/main/resources 下建i18n文件夹 在i18n文件夹中建立messages.properties 找不到语言配置时,使用此文件 hello=你好_默..

一半的博客 2526

一条龙开发指南:MCP AI Agent 理论+项目实战开发你的MCP Server

MCP(Model Connection Protocol)是Anthropic于2024年推出的AI模型连接协议,旨在为AI模型提供开放、通用的标准化接口,类似于“USB-C”接口,使AI模型能够无缝连接各种数据源和工具。MCP通过标准化协议解决了AI系统集成中的碎片化问题,提升了开发效率和系统可靠性。开发者可以通过简单的配置,快速接入不同的MCP Server,实现AI模型的多样化应用。MCP支持多种协议,如Stdio、SSE等,并通过JSON-RPC格式进行数据传输。文章还以腾讯云代码助手为例,展示了

杨不易呀 3042

两万字硬核指南!Python爬虫requests库从入门到精通:新手也能搞定所有爬取场景(附实战案例+避坑大全)

请求头是客户端发送给服务器的额外信息,比如User-Agent(浏览器类型)、Referer(来源页面)、Cookie(登录凭证)、(编码方式)等。Cookie是服务器存储在客户端的小型文本文件,包含用户的登录凭证、偏好设置等信息。浏览器会在每次请求时自动携带Cookie,服务器通过Cookie识别用户身份。代理IP是一个中间服务器,你的请求先发送到代理IP,再由代理IP发送到目标网站,目标网站只能看到代理IP的地址,看不到你的真实IP。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1496

Spring Boot 实现国际化消息提示

Internationalization Spring Boot国际化信息(i18n)示例。 官方文档:boot-features-internationalization 默认国际化配置 SpringBoot提供了自动配置类org.springframework.boot.autoconfigure.context.MessageSourceAutoConfiguration。 可以看到自动配置类中提供的可配置参数为spring.messages,其中典型配置为: #默认配置国际化文件路径 spring.

wangzhihao的博客 3465

agent实战专栏|日程管理Agent:智能时间管家

在快节奏的现代生活中,时间管理已成为每个人面临的核心挑战。根据全球知名调研机构 Gallup 的统计数据,现代职场人平均每天仅能有效专注工作 2 小时 23 分钟,剩余时间被会议、邮件、碎片化事务大量占据。微软的另一项研究显示,知识工作者平均每天需要处理 200 多条日程相关的信息,包括会议邀请、日历变更、提醒通知等。传统的日历工具(如 Google Calendar、Outlook Calendar、Apple Calendar)虽然在可视化展示和基础提醒方面表现出色,但在智能化方面仍存在明显短板:日程管

2201_76125393的博客 52

SpringBoot——国际化

【4】去页面获取国际化值(红色部分,国际化用#{})(链接用@{表示}绿色部分):效果:根据浏览器语言的设置切换国际化。【6】当点击页面 “中文” or “English” 时切换中英文,页面参照4)信息。系统就会自动识别到是配置国际化。就会切换到国际化视图,可以右键。【5】浏览器切换,能够实现国际化的原理:国际化。自动配置好了管理国际化资源配置文件的组件;【2】如果有中文,需要设置编码格式。国际化默认配置文件,同时创建。【1】编写国际化配置文件;【7】将自己写的类,加入到。容器中,方法的名字必须是。

程序猿进阶 4766

把 sy-* 带进 ABAP CDS:ABAP 7.50 里的环境信息新姿势($session 与 @Environment.systemField 实战)

摘要:ABAP 7.50在CDS视图中引入两种获取环境信息的方式:1)直接使用$session会话变量读取用户、客户端和系统语言;2)通过@Environment.systemField注解参数,由Open SQL自动注入系统字段。$session方式简单但依赖Open SQL访问路径,非ABAP环境下可能失效;注解参数方案更工程化,依赖关系明确且支持测试。建议ABAP体系内优先使用$session,对外接口采用参数化方案。两种方式各有适用场景,正确选择可避免潜在风险。(148字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 150

YOLO车辆测距、车辆识别与单目测距

YOLO(You Only Look Once)是一种实时物体检测系统,能够识别视频或图像中的多个对象,并确定其位置。结合车辆识别与单目测距技术,YOLO可以用于交通监控、自动驾驶等应用场景,通过单个摄像头实现车辆的识别与距离测量。YOLO结合单目测距技术,在多个应用领域展现出巨大的潜力与灵活性。其实时性和准确性为智能交通、自动驾驶等领域提供了强有力的技术支持。

走向CTO的路上... 1663

springboot 2.1 实践教程目录导航

springboot 2.1 实践教程(一)-初识Spring Boot springboot 2.1 实践教程(二)-开发您的第一个Spring Boot应用程序 springboot 2.1 实践教程(三)-相关配置之.properties格式 springboot 2.1 实践教程(四)-相关配置.YAML格式 springboot 2.1 实践教程(五)-多环境配置 spring...

路人甲的专栏 394

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

springboot实现国际化

在springmvc中实现国际化的步骤一般分为以下几步: 1)、编写国际化配置文件; 2)、使用ResourceBundleMessageSource管理国际化资源文件 3)、在页面使用fmt:message取出国际化内容 在springboot中自动装配好了国际化的组件,我们只需要进行简单的配置和取值即可, 1)、编写国际化配置文件; 配置文件一共有三个,一个默认配置文件,一个英文,一个中文 ...

菜鸟的自我素养的博客 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SpringBoot-国际化

1. 国际化 1.1 国际化是什么 国际化(Internationalization,简称i18m):指软件开发应当具备支持多种语言和地区的功能。也就是说能够具备切换页面显示语言的功能。 i18n,其中“I”和“n”分别为首末字符,18 则为中间的字符数 2. 实现国际化 在 Spring Boot 实现国际化的步骤如下: 编写国际化资源(配置)文件 利用thymeleaf修改页面 区域化信息配置 2.1 编写资源文件 资源文件格式:基本名_语言代码_国家或地区代码 我们需要的资源文件包括: me

weixin_47243236的博客 6879

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

(详细教程)Springboot 支持国际化

Springboot 支持国际化顾名思义就是除了支持中文字体还支持英文字体及其他 上图便于理解 可以发现,我点击下方的english标签则整体字体切换为英文 点击下方的中文标签则整体字体切换为中文 此篇文章就是来实现这个功能的,具体怎么做,我们一步一步做。 第一步:编写国际化配置文件 1.首先我们先解决idea的properties的编码问题 如下图所示设置 2.在resources资源文件下......

WormholeStack 9654

八、springboot国际化

使用SpringMVC的步骤: 编写国际化的配置文件 使用ResourceBundleMessageSource管理国际化资源文件 在页面使用fmt:message取出国际化内容 使用SpringBoot的步骤: 编写国际化配置文件,抽取页面需要显示的国际化消息 创建步骤: 在resource文件夹下创建i18n文件夹,然后创建login_zh_CN.properties文件,创建好之后会自动变成国际化视图,出现“Resource Bundle ‘login’”,这时候可以右键“Resource

weixin_53107227的博客 319

SpringBoot国际化

Spring Boot Validation起初其并不直接支持读取Spring Boot自身的国际化配置(通过spring.messages进行配置),而是需要在resources/ValidationMessages.properties中进行配置的国际化属性才会生效,而后续在Spring Boot 2.6+版本才支持Validation与Spring Boot自身的国际化配置相结合。当我们在开发国际化的网站时,后端接口的信息需要根据用户所使用的语言返回对应的内容。

夏壹分享 3640

springboot国际化i18n

springboot国际化 支持多国语言展示 1、自动式国际化:通过浏览器发送请求头携带的信息自动使用国际化 2、手动式国际化:通过点击按钮,动态更改国际化 由于springboot自动配置中已集成国际化,直接使用即可 1、创建语言包:(文件编码为:ascii) /src/main/resources/ static/i18n/messages.properties 默认配置 static/i18n/messages_zh_CN.prope...

qq_36521848的博客 4万+

springboot2国际化配置

SpringBoot2 国际化配置 原来用SpringBoot1的时候,配置自定义国际化位置的时候,直接使用spring.messages.basename属性就可以,但是在使用SpringBoot2的时候发现该属性不生效了,后来经过多方查阅,发现springboot2的默认的配置不生效,无论怎么配置都会走默认的messages,这个时候就需要重新定义messageSource,定义代码如下: @...

清涵 1116

springBoot2.0 国际化

SpringBoot2.0—国际化国际化源码解析如何编写我们自己的国际化源码地址: 国际化源码解析 1.查看MessageSourceAutoConfiguration类,springBoot已经默认自动配置好了管理国际化资源文件的组件; @Bean @ConfigurationProperties( prefix = "spring.messages" ) 默认配置文件为mes...

qq_42903086的博客 735

SpringBoot 中 实现国际化

这里写目录标题SpringBoot 中 localeResolver 的实现原理方式一,什么都不用配置,使用默认的 LocaleResolver 的实现逻辑效果展示方式二,使用自己创建的 LocaleResolver 来创建自己的逻辑,去实现国际化实现逻辑创建 地域解析器国际化配置文件application.yml 配置文件中,指出 我们国际化相关文件的位置Html 页面效果展示参考目录 SpringBoot 中 localeResolver 的实现原理 WebMvcAutoConfiguration

norang的博客 9417
上一篇: springboot 2.1 实践教程(七)-开发Web应用
下一篇: LayUI面板组件动态拼接后,失效的问题解决方案
不善^
博客等级 码龄18年 635粉丝 235原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值