java后台返回前端页面的提示消息的中英日三国语配置

本文主要是介绍java后台返回前端页面的提示消息的中英日三国语配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

java后台返回前端页面的提示消息的中英日三国语配置

步骤:

  1. 配置文件:application.yml
    spring:
    messages:
    encoding: UTF-8
    basename: i18n/messages
server:port: 8082session-timeout: 30tomcat.max-threads: 0tomcat.uri-encoding: UTF-8#DB接続
spring:datasource:druid:
#qianyong数据库信息url: jdbc:sqlserver://localhost:1433;databasename=thermometerdriverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriverusername: xxpassword: xxxxinitialSize: 5max-active: 50min-idle: 5max-wait: 60000pool-prepared-statements: truemax-pool-prepared-statement-per-connection-size: 20validation-query: SELECT 1validation-query-timeout: 60000test-on-borrow: falsetest-on-return: falsetest-while-idle: truetime-between-eviction-runs-millis: 60000min-evictable-idle-time-millis: 100000#redisキャッシュredis:host: 127.0.0.1port: 6379password:timeout: 100000000msdatabase: 0lettuce:pool:max-active: 8max-wait: -1msmax-idle: 8min-idle: 0servlet:multipart:max-file-size: 200MBfile-size-threshold: 200MB#言語の国際化messages:encoding: UTF-8basename: i18n/messagesdata:solr:host: http://127.0.0.1:8080/solrcore: baidu#分页プラグイン
pagehelper:helper-dialect: SQLServerreasonable: truesupport-methods-arguments: trueparams: count=countSqlmybatis:type-aliases-package: com.monitor.domainmapper-locations: classpath:mapper/*.xmlconfiguration:map-underscore-to-camel-case: truemapper:not-empty: falseidentity: SQLServerweb:ignore:uri: /output/**#ログレベル
logging:level:root: info

2.写入国际化文件
根据上面的配置,在resouces-i18n下面加入Resource Bundle类型文件:
名称为messages,然后加入以下三种类型:
zh_CN 中文
en_US 英文
ja_Jp 日文

完成之后会生成下面三个文件:
【默认】messages.properties
【英文】messages_en_US.properties
【中文】messages_zh_CN.properties
【日文】messages_ja_JP.properties
在里面写入同样的字段:
HelloEveryone=祝大家2020年天天开心
具体过程
新建文件夹i18n
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
![S生成在这里插入图片描述](https://img-blog.csdnimg.cn/20200110141523594.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JqeF9TcGFuZ2U=,size_16,color_FFFFFF,t_70
生成好文件后的目录结构
在这里插入图片描述

**各个文件内容:messages.properties**
banner.charset=UTF-8
server.tomcat.uri-encoding=UTF-8
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.messages.encoding=UTF-8
HelloEveryone=祝大家2020年天天开心**messages_en_US.properties:**
banner.charset=UTF-8
server.tomcat.uri-encoding=UTF-8
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.messages.encoding=UTF-8
HelloEveryone=Happy every day in 2020**messages_ja_JP.properties**
banner.charset=UTF-8
server.tomcat.uri-encoding=UTF-8
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.messages.encoding=UTF-8
HelloEveryone=みんなが2020年毎日楽しいことを祈ります。**messages_zh_CN.properties**
banner.charset=UTF-8
server.tomcat.uri-encoding=UTF-8
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.messages.encoding=UTF-8
HelloEveryone=祝大家2020年天天开心

3.新建类
用底层的方法用了4个参数,这4个参数对应的都是地理位置等信息,但这类参数每次在Controller调用的时候都要放一遍,确实很不方便,因为我们只要传进的是code。和语言标识language
我们可以考虑让包装一个类去屏蔽这些参数。
当然,下面的例子是忽略地理位置信息的,如果需要带上地理位置信息,可以考虑使用拦截器方式通过前端传回语言信息,再去对应的地方拿对应的信息。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.stereotype.Component;@Component
public class MessageSourceUtil {@Autowiredprivate MessageSource messageSource;public String getMessage(String code, String language) {if ("en".equals(language)){return messageSource.getMessage(code, null, "", Locale.US);} else if("cn".equals(language)){return messageSource.getMessage(code, null, "", Locale.CHINA);} else if ("ja".equals(language)){return messageSource.getMessage(code, null, "", Locale.JAPAN);}return messageSource.getMessage(code, null, "", Locale.JAPAN);}
}

4.demo演示代码

import com.monitor.config.MessageSourceUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
public class ManyLanguageDemo {@Autowiredprivate MessageSourceUtil messageSourceUtil;@ResponseBody@PostMapping("/ManyLanguageDemo")public String ManyLanguageDemo(String language){String message = messageSourceUtil.getMessage("HelloEveryone", language);System.out.println(message);return message;}
}

5.postman演示效果图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这篇关于java后台返回前端页面的提示消息的中英日三国语配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/178883

相关文章

Java Stream流与使用操作指南

《JavaStream流与使用操作指南》Stream不是数据结构,而是一种高级的数据处理工具,允许你以声明式的方式处理数据集合,类似于SQL语句操作数据库,本文给大家介绍JavaStream流与使用... 目录一、什么是stream流二、创建stream流1.单列集合创建stream流2.双列集合创建str

springboot集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

SpringBoot中@Value注入静态变量方式

《SpringBoot中@Value注入静态变量方式》SpringBoot中静态变量无法直接用@Value注入,需通过setter方法,@Value(${})从属性文件获取值,@Value(#{})用... 目录项目场景解决方案注解说明1、@Value("${}")使用示例2、@Value("#{}"php

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。