最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Spring Boot 教程:國(guó)際化

2020-09-10 14:37 作者:信碼由韁  | 我要投稿

【注】本文譯自: https://www.tutorialspoint.com/spring_boot/spring_boot_internationalization.htm

? ? 國(guó)際化是一種處理機(jī)制,使得你的應(yīng)用可以適配不同的語(yǔ)言和區(qū)域而無(wú)需更改源代碼。換言之,國(guó)際化是為本地化而準(zhǔn)備。

? ? 本文將帶你學(xué)習(xí)在?Spring Boot 中如何實(shí)現(xiàn)國(guó)際化的細(xì)節(jié)。

依賴

? ? 在?Spring Boot 中開(kāi)發(fā) web 應(yīng)用,我們需要依賴?Spring Boot Starter Web 和 Spring Boot Starter Thymeleaf 依賴項(xiàng)。

Maven

<dependency>

???<groupId>org.springframework.boot</groupId>

???<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

???<groupId>org.springframework.boot</groupId>

???<artifactId>spring-boot-starter-thymeleaf</artifactId>

</dependency>

Gradle

compile('org.springframework.boot:spring-boot-starter-web')

compile?group:?'org.springframework.boot',?name:?'spring-boot-starter-thymeleaf'

LocaleResolver

? ? 要確定你的應(yīng)用的缺省本地化,需要在 Spring Boot 應(yīng)用中 增加?LocaleResolver bean。

@Bean

public?LocaleResolver?localeResolver()?{

???SessionLocaleResolver?sessionLocaleResolver?=?new?SessionLocaleResolver();

???sessionLocaleResolver.setDefaultLocale(Locale.US);

???return?sessionLocaleResolver;

}

LocaleChangeInterceptor

? ??LocaleChangeInterceptor 用于根據(jù)請(qǐng)求所帶的語(yǔ)言參數(shù)來(lái)切換新的本地化。

@Bean

public?LocaleChangeInterceptor?localeChangeInterceptor()?{

???LocaleChangeInterceptor?localeChangeInterceptor?=?new?LocaleChangeInterceptor();

???localeChangeInterceptor.setParamName("language");

???return?localeChangeInterceptor;

}

? ? 要把?LocaleChangeInterceptor 加到應(yīng)用注冊(cè)攔截器中才能生效。這個(gè)配置類應(yīng)當(dāng)繼承 WebMvcConfigurerAdapter 類且重載 addInterceptors() 方法。

@Override

public?void?addInterceptors(InterceptorRegistry?registry)?{

???registry.addInterceptor(localeChangeInterceptor());

}

消息資源

? ??Spring Boot 應(yīng)用默認(rèn)從?classpath 路徑下的?src/main/resources?文件夾獲取消息源。缺省本地化消息文件名應(yīng)當(dāng)是?message.properties,每個(gè)本地化文件名應(yīng)當(dāng)類似??messages_XX.properties。“XX” 代表本地化代號(hào)。

? ??所有的消息屬性應(yīng)當(dāng)以鍵值方式表達(dá)。如果任意屬性沒(méi)有在本地化中找到,應(yīng)用就從 messages.properties 文件中獲取缺省值。

? ? 缺省?messages.properties?如下所示:

welcome.text=Hi Welcome to Everyone

? ? 法語(yǔ)?messages_cn.properties 如下所示:

welcome.text=Salut Bienvenue à tous

注意消息源文件應(yīng)當(dāng)以 “UTF-8” 格式存儲(chǔ)。

HTML 文件

? ??在 HTML 文件中,使用?#{key}?語(yǔ)法來(lái)顯示屬性文件中獲取的消息。

<h1 th:text = "#{welcome.text}"></h1>

? ??完整的代碼如下:

Maven – pom.xml

<?xml?version="1.0"?encoding="UTF-8"?>

<project?xmlns="http://maven.apache.org/POM/4.0.0"?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"?xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

http://maven.apache.org/xsd/maven-4.0.0.xsd">

???<modelVersion>4.0.0</modelVersion>

???<groupId>com.tutorialspoint</groupId>

???<artifactId>demo</artifactId>

???<version>0.0.1-SNAPSHOT</version>

???<packaging>jar</packaging>

???<name>demo</name>

???<description>Demo?project?for?Spring?Boot</description>

???<parent>

??????<groupId>org.springframework.boot</groupId>

??????<artifactId>spring-boot-starter-parent</artifactId>

??????<version>1.5.8.RELEASE</version>

??????<relativePath?/>

???</parent>

???<properties>

??????<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

??????<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

??????<java.version>1.8</java.version>

???</properties>

???<dependencies>

??????<dependency>

?????????<groupId>org.springframework.boot</groupId>

?????????<artifactId>spring-boot-starter-web</artifactId>

??????</dependency>

??????<dependency>

?????????<groupId>org.springframework.boot</groupId>

?????????<artifactId>spring-boot-starter-test</artifactId>

?????????<scope>test</scope>

??????</dependency>

??????<dependency>

?????????<groupId>org.springframework.boot</groupId>

?????????<artifactId>spring-boot-starter-thymeleaf</artifactId>

??????</dependency>

???</dependencies>

???<build>

??????<plugins>

?????????<plugin>

????????????<groupId>org.springframework.boot</groupId>

????????????<artifactId>spring-boot-maven-plugin</artifactId>

?????????</plugin>

??????</plugins>

???</build>

</project>

Gradle – build.gradle

buildscript?{

???ext?{

??????springBootVersion?=?'1.5.8.RELEASE'

???}

???repositories?{

??????mavenCentral()

???}

???dependencies?{

??????classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")

???}

}

apply?plugin:?'java'

apply?plugin:?'eclipse'

apply?plugin:?'org.springframework.boot'

group?=?'com.tutorialspoint'

version?=?'0.0.1-SNAPSHOT'

sourceCompatibility?=?1.8

repositories?{

???mavenCentral()

}

dependencies?{

???compile('org.springframework.boot:spring-boot-starter-web')

???compile?group:?'org.springframework.boot',?name:?'spring-boot-starter-thymeleaf'

???testCompile('org.springframework.boot:spring-boot-starter-test')

}

? ??主 Spring Boot 應(yīng)用類文件如下:

package?com.tutorialspoint.demo;

import?org.springframework.boot.SpringApplication;

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

@SpringBootApplication

public?class?DemoApplication?{

???public?static?void?main(String[]?args)?{

??????SpringApplication.run(DemoApplication.class,?args);

???}

}

? ?控制類文件如下:

package?com.tutorialspoint.demo.controller;

import?org.springframework.stereotype.Controller;

import?org.springframework.web.bind.annotation.RequestMapping;

@Controller

public?class?ViewController?{

???@RequestMapping("/locale")

???public?String?locale()?{

??????return?"locale";

???}

}

? ? 支持國(guó)際化的配置類

package?com.tutorialspoint.demo;

import?java.util.Locale;

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.InterceptorRegistry;

import?org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import?org.springframework.web.servlet.i18n.LocaleChangeInterceptor;

import?org.springframework.web.servlet.i18n.SessionLocaleResolver;

@Configuration

public?class?Internationalization?extends?WebMvcConfigurerAdapter?{

???@Bean

???public?LocaleResolver?localeResolver()?{

??????SessionLocaleResolver?sessionLocaleResolver?=?new?SessionLocaleResolver();

??????sessionLocaleResolver.setDefaultLocale(Locale.US);

??????return?sessionLocaleResolver;

???}

???@Bean

???public?LocaleChangeInterceptor?localeChangeInterceptor()?{

??????LocaleChangeInterceptor?localeChangeInterceptor?=?new?LocaleChangeInterceptor();

??????localeChangeInterceptor.setParamName("language");

??????return?localeChangeInterceptor;

???}

???@Override

???public?void?addInterceptors(InterceptorRegistry?registry)?{

??????registry.addInterceptor(localeChangeInterceptor());

???}

}

? ??消息源 – messages.properties 如下:

welcome.text = Hi Welcome to Everyone

? ??消息源 – message_fr.properties 文件如下:

welcome.text = Salut Bienvenue à tous

? ??HTML 文件 locale.html 應(yīng)當(dāng)放在 classpath 路徑下的 templates 目錄,如下所示:

<!DOCTYPE?html>

<html>

???<head>

??????<meta?charset?=?"ISO-8859-1"/>

??????<title>Internationalization</title>

???</head>

???<body>

??????<h1?th:text?=?"#{welcome.text}"></h1>

???</body>

</html>

? ?使用 Maven 或 Gradle 命令創(chuàng)建可執(zhí)行?JAR 文件并運(yùn)行

Spring Boot 應(yīng)用:

? ?Maven 命令如下:

mvn clean install

? ?在 “BUILD SUCCESS” 之后,你可以在 target 目錄下找到 JAR 文件。

? ?Gradle 可以使用以下命令:

gradle clean build

? ?在 “BUILD SUCCESSFUL” 之后,你可以在?build/libs 目錄下找到?JAR 文件。

? ?現(xiàn)在,使用以下命令運(yùn)行 JAR 文件:

java –jar <JARFILE>

? ? 應(yīng)用已在?Tomcat 8080 端口啟動(dòng),如下圖所示:

? ? 在瀏覽器輸入 URL?http://localhost:8080/locale?可以看到如下輸出:

? ??URL?http://localhost:8080/locale?language=fr?輸出如下:


Spring Boot 教程:國(guó)際化的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
巴里| 平湖市| 焦作市| 阿克| 枣强县| 济宁市| 梧州市| 江门市| 新丰县| 杭锦旗| 安吉县| 南漳县| 枣庄市| 丁青县| 滁州市| 曲松县| 遂溪县| 云霄县| 凉城县| 页游| 南丰县| 正阳县| 汝城县| 金塔县| 建水县| 孙吴县| 牟定县| 武隆县| 南木林县| 梁河县| 龙江县| 柳林县| 林西县| 托里县| 馆陶县| 双鸭山市| 陇西县| 崇文区| 上饶县| 虹口区| 威信县|