1. 程式人生 > >spring boot 國際化

spring boot 國際化

正如標題 ,這裡主要向大家分享 spring boot 如何國際化

注意:四個檔案目錄結構

1.新建html 頁面:International.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>國際化</title>
</head>
<body>
<!--請求引數變化國際化-->
<a href="./international?language=zh_CN">簡體中文</a>
<a href="./international?language=en_US">美國英語</a>

</body>
</html>

 

2.新建國際化資原始檔

(1)international.properties

#中文:spring mvc 國際化
msg=Spring MVC \u56fd\u9645\u5316

(2)international_en_US.properties

#中文:spring mvc 國際化
msg=Spring MVC internationalization

(3)international_zh_EN.properties

#中文:spring mvc 國際化
msg=Spring MVC \u56fd\u9645\u5316

 

3.資源配置檔案:application.yml   (或application.properties 均可,兩者格式有所區別,需要開發者任意選擇)

spring:
  messages:
    #檔案編碼
    encoding: utf-8
    #國際化檔案基礎名稱
    basename: international
    #國際化訊息快取有效時間(單位 秒) 超時將重新載入
    cache-duration: 3600



4. 新增國際化解析器和攔截器  Config.java

package com.qimh.springdemo;

import org.springframework.web.servlet.LocaleResolver;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import org.springframework.web.servlet.i18n.SessionLocaleResolver;

import java.util.Locale;

/**
 * @author qiminhui
 * 新增國際化解析器和攔截器
 */
@Configuration
public class Config implements WebMvcConfigurer{
    //國際化攔截器
    private LocaleChangeInterceptor lci = null;


    /**
     *  國際化解析器 ,注意,這個 bean name 要為localeResolver
     */
    @Bean(name="localeResolver")
    public LocaleResolver initLocalResolver(){
       SessionLocaleResolver slr = new SessionLocaleResolver();
       slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE);
       return  slr;
    }

    /**
     * 建立國際化攔截器
     */
    @Bean
    public LocaleChangeInterceptor localeChangeInterceptor() {
        if (lci != null){
            return lci;
        }
        lci = new LocaleChangeInterceptor();
        //設定引數名稱
        lci.setParamName("language");

        return lci;
    }

    /**
     * 給處理器增加國際化攔截器
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry){
        //這裡將通過國際化攔截器的preHandle 方法 對請求的國際化區域引數進行修改
        registry.addInterceptor(localeChangeInterceptor());
    }
}

 

5.控制器:InternationalController.java

package com.qimh.springdemo;

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.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

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

/**
 * @author qiminhui
 */
@Controller
public class InternationalController {


    /**
     * 注入國際化訊息介面物件
     * ,此物件根據讀取國際化配置生成的
     */
    @Autowired
    private MessageSource messageSource;
    /**
     * 後臺獲取國際化資訊
     * @return
     */
    @GetMapping("international")
    @ResponseBody
    public String international(HttpServletRequest request){
        //後臺獲取國際化區域
        Locale locale = LocaleContextHolder.getLocale();
        //獲取國際化訊息
        String msg = messageSource.getMessage("msg",null,locale);
        System.out.println("msg:" + msg);
        return msg;
    }


}

 

6.啟動類:SpringDemoApplication.java

package com.qimh.springdemo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringDemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringDemoApplication.class, args);
	}

}

 

7.測試結果:

中文:

英文:

相關推薦

Spring-boot 國際化

ng- log 圖片 mage boot ext image 技術分享 分享圖片 在application.properties文件中配置 spring.message.basename=i18n.login 頁面使用 th:text="#{login.tip}" [[

Spring Boot 國際化(MessageSource)- 路徑配置之坑

腦洞大開,想著把專案老框架換成Spring Boot,在使用MessageSource進行國際化改造時遇神坑了(始終報:org.springframework.context.NoSuchMessageException: No message found un

Spring Boot 國際化設定

1、對你需要國際化的頁面,抽取國際化的資訊,編寫配置檔案,這裡我以簡單的登入頁做國際化為範例。 1)在resource下新建目錄,i18n 2)根據需要國際化的頁面,新建porperties配置檔案, en:語言 US:國家程式碼 3)書寫配置,進入任意國際化配置檔案

Spring Boot國際化支援

本章將講解如何在Spring Boot和Thymeleaf中做頁面模板國際化的支援,根據系統語言環境或者session中的語言來自動讀取不同環境中的文字。 國際化自動配置 Spring Boot中已經對國際化這一塊做了自動配置。 國際化自動配置類:

Spring Boot 國際化配置,訊息化引數

spirn boot 國際化配置,訊息化引數 1. 新增資原始檔 messages_zh_CN.properties # 註冊登入 userid.is.null= 請輸入使用者名稱!

spring-boot 國際化+使用者選擇國際化

1配置檔案 login.properties login.btn=登陸~ login.password=密碼~ login.username=使用者名稱~ login_en_US.pro

Spring Boot國際化(i18n)

國際化(internationalization)是設計和製造容易適應不同區域要求的產品的一種方式。它要求從產品中抽離所有地域語言,國家/地區和文化相關的元素。換言之,應用程式的功能和程式碼設計考慮在不同地區執行的需要,其程式碼簡化了不同本地版本的生產。開發這樣的程式的過

spring boot 國際化

正如標題 ,這裡主要向大家分享 spring boot 如何國際化 注意:四個檔案目錄結構 1.新建html 頁面:Int

spring boot 與 thymeleaf (1): 國際化

javaee 文件內容 裏的 auto 簡體 第一次 1.0 i18n 自定義顯示 在thymeleaf 裏面有個消息表達式: #{...} , 可以借此來實現國際化. 在我使用這個功能的時候, 碰到了一個問題, 按照 JavaEE開發的顛覆者 Spring Boot實戰

spring boot 語言國際化操作

        最近在學習spring boot的技術,這裡整理一下spring boot中的國際化,方便以後使用國際化時,可以直接呼叫或者加以參考,縮短開發時間。         首先是編寫國際化的資原始檔,通常將

Spring Boot REST國際化

本指南將向您展示如何輕鬆只需幾個簡單的步驟即可實現Spring Boot應用的國際化 我們將討論如何在現有的Spring Boot專案中新增國際化。當您處理應該為來自不同國家/地區的使用者提供不同語言服務的專案時,app國際化的問題變得很常見。比如,你需要向中國使用者提供中文回覆資訊,並向法國使用者提供法語

Spring Boot實戰系列《七》:實現登入國際化

Spring Boot實戰系列《七》:實現登入國際化 1.前言 上一篇文章說的是人事管理系統的登入設計,在設計好了登入頁面login.html的時候,不知道大家有沒有看到下方有一箇中文,英文按鈕。一般逼格高點的專案,都是需要國際化的。 那麼我們本篇文章就說一下關於spring b

spring boot中配置網頁語言國際化

專案地址:https://gitee.com/indexman/spring_boot_in_action   開發步驟 1.編寫國際化配置檔案 場景是給登入頁面 login.html新增國際化支援。   2.使用ResourceBundleMe

IDEA spring-boot簡單實現國際化

一、建立springboot專案 選擇web模組 模板引擎選擇 Thymeleaf,也可以自己在pom檔案中自己引用 二、新增Jquery,和Bootstrap 百度搜索webjar,進入官網 把依賴拷貝下來放在pom檔案中,當然可以選擇自己要

Spring Boot Thymeleaf 實現國際化

開發傳統Java WEB工程時,我們可以使用JSP頁面模板語言,但是在SpringBoot中已經不推薦使用了。SpringBoot支援如下頁面模板語言 Thymeleaf FreeMarker Velocity Groovy JSP 上面並沒有列舉所有SpringBoot支援的頁面模板技術。其中Thyme

一個簡單的示例在spring boot中實現國際化

最近在網上找了一個有關賬單管理的spring boot專案,其中有一部分是涉及顯示國際化資訊的,即將頁面上的中英文進行轉換。因為在這之前這部分內容沒有接觸過,所以在這記錄下過程。 中文效果圖如下所示: 英文效果圖如下所示:   從上面兩幅圖可以看出在切換中英文時有五個部分的內容傳送改變。分別是:使

Spring Boot 之annotation註解

頁面 osi 數據 加載 依賴註入 bsp 類型 數據庫 聲明 一:基於類的註解:(1)初始裝載@SpringBootApplication spring-boot程序入口標誌類@Configuration

Spring Boot 簡介

bsp 外部依賴 快速開發框架 開發框架 天然 servlet 版本 jdk 特點 Spring boot 是 Spring開源中的一個子項目,是一個快速開發框架。 他的一些特點: 1. 快速構建項目 2. 對主流的開發框架無配置集成 3. 項目可獨立運行,無須外部依賴

spring boot環境配置

project fda new 信息 fig 比較 fab imp image Eclipse+Maven創建webapp項目<一> 1、開啟eclipse,右鍵new——》other,如下圖找到maven project 2、選

Spring Boot的單元測試(Unit Test)

java spring boot unit test 最近做了一些Spring Boot單元測試方面的東西,總結一下。單元測試盡量要和Spring Boot框架減少耦合度,當你在測試某一項功能點是需要mock太多的對象時你就應該意識到這個功能點的耦合度太高了使用Constructor Inject