国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SpringBoot集成國(guó)際化多語(yǔ)言配置

這篇具有很好參考價(jià)值的文章主要介紹了SpringBoot集成國(guó)際化多語(yǔ)言配置。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、開(kāi)發(fā)背景

在當(dāng)今全球化的環(huán)境下,為了更好地滿足用戶的多語(yǔ)言需求,越來(lái)越多的應(yīng)用程序需要支持國(guó)際化多語(yǔ)言配置。Spring Boot作為一種快速開(kāi)發(fā)框架,提供了方便的國(guó)際化支持,使得應(yīng)用程序可以輕松地適應(yīng)不同的語(yǔ)言環(huán)境。通過(guò)集成Spring Boot的國(guó)際化多語(yǔ)言配置,應(yīng)用程序可以根據(jù)用戶的語(yǔ)言環(huán)境自動(dòng)選擇相應(yīng)的語(yǔ)言資源,從而實(shí)現(xiàn)更好的用戶體驗(yàn)。這種配置方式不僅可以適應(yīng)不同語(yǔ)言環(huán)境,還可以為應(yīng)用程序提供更好的擴(kuò)展性和可維護(hù)性,是現(xiàn)代應(yīng)用程序開(kāi)發(fā)的必備技能之一。

二、多語(yǔ)言轉(zhuǎn)換工具類

1、LocaleMessageUtil(根據(jù)語(yǔ)言編碼查詢內(nèi)容)

import org.apache.commons.lang3.StringUtils;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

@Component
public class LocaleMessageUtil {

    @Resource
    private MessageSource messageSource;

    public LocaleMessageUtil() {
    }

    public String getMessage(String code) {
        return this.getConnectorMessage(code, null, null);
    }

    public String getMessage(String code, String param) {
        return this.getConnectorMessage(code, param, null);
    }

    public String getMessage(String[] codes) {
        return this.getConnectorMessage(null, null, codes);
    }

    private String getConnectorMessage(String code, String param, String[] codes) {
        StringBuilder stringBuilder = new StringBuilder();
        if (StringUtils.isNotEmpty(param)) {
            stringBuilder.append(param).append(":");
        } else if (StringUtils.isNotEmpty(code)) {
            stringBuilder.append(this.messageSource.getMessage(code, null, LocaleContextHolder.getLocale()));
        }
        if (null != codes) {
            for (String arr : codes) {
                stringBuilder.append(this.messageSource.getMessage(arr, null, LocaleContextHolder.getLocale())).append(";");
            }
        }
        return stringBuilder.toString();
    }

}

2、MessageLocaleResolver(國(guó)際化解析)

根據(jù)請(qǐng)求頭中攜帶的請(qǐng)求語(yǔ)言內(nèi)容,生成會(huì)話,解析內(nèi)容。

import org.apache.commons.lang3.StringUtils;
import org.springframework.web.servlet.LocaleResolver;

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

/**
 * 國(guó)際化解析
 */
public class MessageLocaleResolver implements LocaleResolver {

    private static final String LANG = "lang";

    private static final String LANG_SESSION = "lang_session";

    @Override
    public Locale resolveLocale(HttpServletRequest request) {
        Locale locale;
        String language = request.getHeader(LANG);
        //中文language=zh_CN
        if (StringUtils.isNotEmpty(language)) {
            locale = new Locale(language.toLowerCase());
        } else {
            locale = new Locale("zh_cn");
        }
        HttpSession session = request.getSession();
        session.setAttribute(LANG_SESSION, locale);
        return locale;
    }

    @Override
    public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {

    }

}

三、Spring Web Servlet注入多語(yǔ)言插件轉(zhuǎn)換Bean

WebMvcConfig

import com.zfsw.mall.common.utils.lang.MessageLocaleResolver;
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.WebMvcConfigurer;

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    @Bean
    public LocaleResolver localeResolver() {
        return new MessageLocaleResolver();
    }

}

四、配置文件修改

application.yml

spring:
    messages:
        basename: i18n.messages
        encoding: utf-8

五、多語(yǔ)言翻譯配置

1、resource目錄下,新建i18n目錄

使用idea右鍵在i18n目錄下,新建四個(gè)配置文件,分別為

  • messages.properties:默認(rèn)語(yǔ)言記錄,請(qǐng)求頭中不傳“l(fā)ang”取值
  • messages_en_us.properties:英文翻譯
  • messages_zh_cn.properties:中文簡(jiǎn)體翻譯
  • messages_zh_hant.properties:中文繁體翻譯

如圖:

springboot 多語(yǔ)言,Spring Boot,spring boot,后端,java

當(dāng)然了,如果以后需要其他語(yǔ)言,也可以繼續(xù)添加,比如韓語(yǔ)、日語(yǔ)、法語(yǔ)等。

2、配置文件內(nèi)容

配置文件的內(nèi)容可以理解為一個(gè)key-value數(shù)據(jù)類型,key是自己系統(tǒng)內(nèi)定語(yǔ)言編碼,在解析器工具類中使用,value是翻譯后的內(nèi)容。如果想翻譯幾個(gè)就在幾個(gè)配置文件里加。例如:

  • messages.properties
weather.is.nice=今天天氣不錯(cuò)
  • messages_en_us.properties
weather.is.nice=The weather is nice today
  • messages_zh_cn.properties
weather.is.nice=今天天氣不錯(cuò)
  • messages_zh_hant.properties
weather.is.nice=今天天氣不錯(cuò)

六、測(cè)試效果

寫一個(gè)控制器,驗(yàn)證一下

TestLangController

import com.zfsw.mall.common.utils.lang.LocaleMessageUtil;
import io.swagger.annotations.ApiOperation;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

@RestController
@RequestMapping("/api/user")
@ApiOperation(value = "多語(yǔ)言測(cè)試")
public class TestLangController {

    @Resource
    private LocaleMessageUtil messageUtil;

    @GetMapping("/lang/test")
    @ApiOperation(value = "多語(yǔ)言測(cè)試")
    public ResponseEntity<String> langTest() {
				//語(yǔ)言編碼
        String langCode = "weather.is.nice";
				//翻譯內(nèi)容
        String message = messageUtil.getMessage(langCode);
        return ResponseEntity.ok().body(message);
    }

}

啟動(dòng)項(xiàng)目,試一下

  1. 請(qǐng)求頭不加lang參數(shù)
    springboot 多語(yǔ)言,Spring Boot,spring boot,后端,java

  2. 英文翻譯
    springboot 多語(yǔ)言,Spring Boot,spring boot,后端,java

  3. 中文簡(jiǎn)體翻譯
    springboot 多語(yǔ)言,Spring Boot,spring boot,后端,java

  4. 中文繁體翻譯
    springboot 多語(yǔ)言,Spring Boot,spring boot,后端,java

七、前端

前端增加切換語(yǔ)言按鈕,中英文切換后,請(qǐng)求頭發(fā)生變動(dòng)即可!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-731975.html

config.headers["lang"] = store.getters.local || "zh-hant";

到了這里,關(guān)于SpringBoot集成國(guó)際化多語(yǔ)言配置的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SpringBoot復(fù)習(xí):(36)國(guó)際化

    SpringBoot復(fù)習(xí):(36)國(guó)際化

    一、Resources目錄下建立一個(gè)目錄(比如international)來(lái)存儲(chǔ)資源文件 message.properties 空的,但不能沒(méi)有 message_zh_CN.properties message_en_us.properties 二、自動(dòng)配置類MessageSourceAutoConfiguration 常量MESSAGE_SOURCE_BEAN_NAME為messageSource,也就是有這個(gè)名字的bean,則自動(dòng)配置失效。 因?yàn)橛蠤Conditional(R

    2024年02月13日
    瀏覽(29)
  • Android 實(shí)現(xiàn)資源國(guó)際化(多語(yǔ)言)

    Android 實(shí)現(xiàn)資源國(guó)際化(多語(yǔ)言)

    目錄 一、介紹 二、字符串資源 三、圖片資源 四、日期和時(shí)間格式 五、其他 六、應(yīng)用內(nèi)切換語(yǔ)言 七、資源文件命名規(guī)則 ????????Android國(guó)際化(多語(yǔ)言)是一種開(kāi)發(fā)技術(shù),旨在使Android應(yīng)用程序能夠在 「不同語(yǔ)言和文化環(huán)境」 下運(yùn)行,并為用戶提供本地化的體驗(yàn)。這是為了

    2024年02月04日
    瀏覽(25)
  • Flutter之國(guó)際化(多語(yǔ)言處理)

    Flutter之國(guó)際化(多語(yǔ)言處理)

    項(xiàng)目?jī)?nèi)最近加入國(guó)際化內(nèi)容,那么我們需要轉(zhuǎn)化對(duì)應(yīng)語(yǔ)言內(nèi)容,來(lái)展示UI App國(guó)際化開(kāi)發(fā)主要包括: 文本國(guó)際化 Widget顯示的國(guó)際化 某些文本在對(duì)應(yīng)語(yǔ)言環(huán)境下應(yīng)該顯示為所選擇語(yǔ)言內(nèi)容; 目前我項(xiàng)目?jī)?nèi)使用的是: Flutter Intl 插件: 1.安裝 Flutter Intl 插件 在Android studio內(nèi)直接搜

    2024年02月14日
    瀏覽(35)
  • WPF本地化/國(guó)際化,多語(yǔ)言切換

    WPF本地化/國(guó)際化,多語(yǔ)言切換

    之前寫過(guò)winformwinform使用本地化,中英文切換_winform 中英文切換_故里2130的博客-CSDN博客 基本的技術(shù)差不多,但是后來(lái)又發(fā)現(xiàn)了一個(gè)ResXManager工具,可以更好方便快捷的使用。 首先下載,網(wǎng)絡(luò)不好的話,去官網(wǎng)下載,然后安裝,重啟vs即可 wpf做多語(yǔ)言切換 有很多種,可以使用

    2024年02月11日
    瀏覽(27)
  • SpringBoot第13講:SpringBoot接口如何參數(shù)校驗(yàn)國(guó)際化

    本文是SpringBoot第13講,上文我們學(xué)習(xí)了如何對(duì)SpringBoot接口進(jìn)行參數(shù)校驗(yàn),但是如果需要有國(guó)際化的信息(比如返回校驗(yàn)結(jié)果有中英文),應(yīng)該如何優(yōu)雅處理呢? 軟件的國(guó)際化 :軟件開(kāi)發(fā)時(shí),要使它能同時(shí)應(yīng)對(duì)世界不同地區(qū)和國(guó)家的訪問(wèn),并針對(duì)不同地區(qū)和國(guó)家的訪問(wèn),提供相

    2024年02月12日
    瀏覽(21)
  • springboot~國(guó)際化Locale正確的姿勢(shì)

    springboot~國(guó)際化Locale正確的姿勢(shì)

    Java中的Locale.getDefault()獲取的是操作系統(tǒng)的默認(rèn)區(qū)域設(shè)置,如果需要獲取客戶端瀏覽器的區(qū)域設(shè)置,可以從HTTP頭中獲取\\\"Accept-Language\\\"的值來(lái)進(jìn)行解析。 Java網(wǎng)站中實(shí)現(xiàn)國(guó)際化(多語(yǔ)言支持)通常需要涉及以下幾個(gè)方面: 為所有可見(jiàn)的文本(如按鈕、標(biāo)簽、提示等)都提供多語(yǔ)言

    2024年02月05日
    瀏覽(23)
  • 【Unity Localization】基礎(chǔ)教程-帶你入門Unity官方國(guó)際化本地化多語(yǔ)言插件Localization 單獨(dú)修改配置文件即可一體化控制全局文本實(shí)現(xiàn)多語(yǔ)言轉(zhuǎn)換

    【Unity Localization】基礎(chǔ)教程-帶你入門Unity官方國(guó)際化本地化多語(yǔ)言插件Localization 單獨(dú)修改配置文件即可一體化控制全局文本實(shí)現(xiàn)多語(yǔ)言轉(zhuǎn)換

    Unity Localization 基礎(chǔ)教程 隨著經(jīng)濟(jì)全球化的趨勢(shì),游戲也逐漸變的不分國(guó)界。在進(jìn)行游戲內(nèi)文本的國(guó)際化本土化多語(yǔ)言切換時(shí)往往是需要制作組耗費(fèi)大量精力,那么今天要學(xué)習(xí)的這款Unity官方推出的國(guó)際化本地化插件 Localization 就可以進(jìn)行多語(yǔ)言文本的全局管理達(dá)到快速切換文

    2024年02月03日
    瀏覽(19)
  • SpringBoot - SpringBoot整合i18n實(shí)現(xiàn)消息國(guó)際化

    SpringBoot - SpringBoot整合i18n實(shí)現(xiàn)消息國(guó)際化

    在我們開(kāi)發(fā)WEB項(xiàng)目的時(shí)候,項(xiàng)目可能涉及到在國(guó)外部署或者應(yīng)用,也有可能會(huì)有國(guó)外的用戶對(duì)項(xiàng)目進(jìn)行訪問(wèn),那么在這種項(xiàng)目中, 為客戶展現(xiàn)的頁(yè)面或者操作的信息就需要根據(jù)客戶系統(tǒng)的環(huán)境來(lái)使用不同的語(yǔ)言,這就是我們所說(shuō)的項(xiàng)目國(guó)際化。 1. MessageSource源碼 Spring中定義了

    2024年02月03日
    瀏覽(38)
  • vue2+element-ui使用vue-i18n進(jìn)行國(guó)際化的多語(yǔ)言/國(guó)際化

    vue2+element-ui使用vue-i18n進(jìn)行國(guó)際化的多語(yǔ)言/國(guó)際化

    注意:vue2.0要用8版本的,使用9版本的會(huì)報(bào)錯(cuò) 在src目錄下,創(chuàng)建新的文件夾,命名為i18n zh.js en.js index.js main.js 使用方式一 效果圖 使用方式二 效果圖 使用方式三,在 效果圖 ` 注意:這種方式存在更新this.$i18n.locale的值時(shí)無(wú)法自動(dòng)切換的問(wèn)題,需要刷新頁(yè)面才能切換語(yǔ)言。解

    2024年02月07日
    瀏覽(25)
  • SpringBoot+Vue前后端分離項(xiàng)目國(guó)際化支持

    SpringBoot+Vue前后端分離項(xiàng)目國(guó)際化支持

    i18n.js文件 language.en_US.js文件 language.zh_CN.js文件 messages_en_US.properties文件 messages_zh_CN.properties文件

    2024年02月04日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包