国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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ó)家法律
贵阳市| SHOW| 佛冈县| 蛟河市| 安平县| 吉林省| 司法| 金川县| 桂东县| 贵溪市| 永康市| 文水县| 盐池县| 林周县| 通许县| 霍林郭勒市| 新郑市| 内丘县| 兴安县| 和林格尔县| 读书| 彭州市| 卓资县| 芦山县| 同江市| 凤冈县| 庆阳市| 明溪县| 元谋县| 包头市| 呼玛县| 炉霍县| 天祝| 嘉善县| 双峰县| 女性| 油尖旺区| 上杭县| 卢氏县| 攀枝花市| 桃园县|