溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Spring Boot國(guó)際化配置指南

發(fā)布時(shí)間:2024-11-15 11:42:03 來(lái)源:億速云 閱讀:78 作者:小樊 欄目:編程語(yǔ)言

Spring Boot 提供了強(qiáng)大的國(guó)際化(i18n)支持,使得開(kāi)發(fā)者可以輕松地實(shí)現(xiàn)多語(yǔ)言應(yīng)用程序。下面是一份詳細(xì)的 Spring Boot 國(guó)際化配置指南:

1. 添加依賴

首先,在你的 pom.xml 文件中添加 Spring Boot 的國(guó)際化依賴:

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

2. 配置國(guó)際化資源文件

src/main/resources 目錄下創(chuàng)建國(guó)際化資源文件。Spring Boot 支持多種文件格式,包括 .properties、.yml.xml。

示例 .properties 文件

創(chuàng)建一個(gè)名為 messages.properties 的文件,并添加一些國(guó)際化文本:

hello.world=Hello, World!
welcome.message=${welcome.message}

示例 .yml 文件

創(chuàng)建一個(gè)名為 messages.yml 的文件,并添加一些國(guó)際化文本:

hello:
  world: Hello, World!
welcome:
  message: ${welcome.message}

3. 配置 LocaleResolver 和 MessageSource

Spring Boot 默認(rèn)使用 AcceptHeaderLocaleResolverResourceBundleMessageSource。你可以在 application.propertiesapplication.yml 中進(jìn)行配置。

配置 AcceptHeaderLocaleResolver

application.properties 中添加以下配置:

spring.mvc.locale=en_US
spring.mvc.locale-resolver=org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver

或者在 application.yml 中添加以下配置:

spring:
  mvc:
    locale: en_US
    locale-resolver: org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver

配置 ResourceBundleMessageSource

application.properties 中添加以下配置:

spring.messages.basename=messages

或者在 application.yml 中添加以下配置:

spring:
  messages:
    basename: messages

4. 使用國(guó)際化文本

在你的控制器或服務(wù)類中使用 @Value 注解讀取國(guó)際化文本。

示例控制器

創(chuàng)建一個(gè)名為 HomeController 的控制器:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HomeController {

    @Value("${hello.world}")
    private String helloWorld;

    @GetMapping("/")
    public String index(Model model) {
        model.addAttribute("helloWorld", helloWorld);
        return "index";
    }
}

5. 配置請(qǐng)求路徑和文件名

Spring Boot 支持根據(jù)請(qǐng)求路徑和文件名自動(dòng)選擇合適的國(guó)際化資源文件。你可以在 application.propertiesapplication.yml 中進(jìn)行配置。

配置請(qǐng)求路徑

application.properties 中添加以下配置:

spring.mvc.locale-path-pattern=/i18n/{locale}/{basename}

或者在 application.yml 中添加以下配置:

spring:
  mvc:
    locale-path-pattern: /i18n/{locale}/{basename}

6. 使用 LocaleContextHolder

你還可以使用 LocaleContextHolder 來(lái)手動(dòng)設(shè)置和獲取當(dāng)前的語(yǔ)言環(huán)境。

設(shè)置語(yǔ)言環(huán)境

import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.stereotype.Service;

@Service
public class LocaleService {

    public void setLocale(String locale) {
        LocaleContextHolder.setLocale(new Locale(locale));
    }
}

獲取語(yǔ)言環(huán)境

import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.stereotype.Service;

@Service
public class LocaleService {

    public String getLocale() {
        return LocaleContextHolder.getLocale().getLanguage();
    }
}

總結(jié)

通過(guò)以上步驟,你已經(jīng)成功配置了 Spring Boot 的國(guó)際化功能。你可以根據(jù)需要?jiǎng)?chuàng)建多個(gè)資源文件,并根據(jù)用戶的語(yǔ)言環(huán)境自動(dòng)選擇合適的資源文件。希望這份指南對(duì)你有所幫助!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI