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

springboot~國際化Locale正確的姿勢

這篇具有很好參考價值的文章主要介紹了springboot~國際化Locale正確的姿勢。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Java中的Locale.getDefault()獲取的是操作系統(tǒng)的默認(rèn)區(qū)域設(shè)置,如果需要獲取客戶端瀏覽器的區(qū)域設(shè)置,可以從HTTP頭中獲取"Accept-Language"的值來進(jìn)行解析。

使用說明

Java網(wǎng)站中實現(xiàn)國際化(多語言支持)通常需要涉及以下幾個方面:

  1. 為所有可見的文本(如按鈕、標(biāo)簽、提示等)都提供多語言的支持,遵循國際化的標(biāo)準(zhǔn),建議使用標(biāo)準(zhǔn)的屬性文件進(jìn)行配置。

  2. 根據(jù)用戶請求或瀏覽器設(shè)置來選擇合適的Locale,以便在數(shù)據(jù)保存和顯示時使用相應(yīng)的語言和地區(qū)格式。最常用的方法是使用Java的Locale類來獲取、設(shè)置當(dāng)前的Locale,可以通過調(diào)用Locale類的getAvailableLocales()方法獲取支持的區(qū)域列表,也可以根據(jù)用戶的請求或瀏覽器的設(shè)置來檢測用戶當(dāng)前所使用的Locale。

  3. 針對國際化后的日期、時間、數(shù)字等數(shù)據(jù)類型進(jìn)行格式化處理,以便在不同的語言、地區(qū)環(huán)境下使數(shù)據(jù)顯示更加友好和易讀??梢允褂肑ava的SimpleDateFormat類等進(jìn)行處理。

正確的姿勢

在Java Web應(yīng)用中使用MessageSource對象實現(xiàn)國際化功能時,可以通過以下步驟使用瀏覽器語言動態(tài)設(shè)置Locale區(qū)域。

  • 國際化文件在resources/i18n目錄,文件名是message_{語言}.properties
  • 通過MessageSource對象進(jìn)行國際化配置信息的管理
  1. 配置類
@Configuration
public class LocalMessageConfig {

   /**
    * 系統(tǒng)國際化文件配置
    * @return MessageSource
    */
   @Bean
   public MessageSource messageSource() {
      ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
      messageSource.setBasename("classpath:i18n/message");
      messageSource.setDefaultEncoding("UTF-8");
      return messageSource;
   }

}
  1. 靜態(tài)工具類
 /**
 * 國際化消息配置 LocalMessageConfig中配置了resources/i18n/messages_zh_CN.properties.
 * 通過 LocaleContextHolder.getLocale()獲取客戶端瀏覽器的語言環(huán)境,就是請求頭中的Accept-Language的值,再根據(jù)它進(jìn)行國際化消息的獲取。
 *
 * @UtilityClass所有的方法和屬性都會被加上static關(guān)鍵字,并且該類會創(chuàng)建一個私有的空參構(gòu)造器
 */
@UtilityClass
public class LocaleMessageUtils {

   /**
    * 通過code 獲取錯誤信息
    * @param code
    * @return
    */
   public String getMessage(String code) {
   return getMessage(code, null);
   }

   /**
    * 通過code 和參數(shù)獲取錯誤信息
    * @param code
    * @return
    */
   public String getMessage(String code, Object... objects) {
      MessageSource messageSource = SpringContextUtils.getBean("messageSource");
      Locale locale = LocaleContextHolder.getLocale();
      return messageSource.getMessage(code, null,locale);
   }

}
  1. 配置文件有中文和英文兩個版本
# message_en_US.properties
title=System
# message_zh_CN.properties
title=\u7cfb\u7edf # 中文咱們使用unicode編碼

  1. 在前臺控制器中獲取配置信息
	@GetMapping("get-title")
	public ResponseEntity title() {
		return ResponseEntity.ok(
				LocaleMessageUtils.getMessage("title")
		);
	}

  1. 通過切換瀏覽器的語言,來實現(xiàn)中文和英文的輸出
    springboot~國際化Locale正確的姿勢

springboot~國際化Locale正確的姿勢


springboot~國際化Locale正確的姿勢

springboot~國際化Locale正確的姿勢

通過這個國際化,我們可以更優(yōu)雅的實現(xiàn)多語言的系統(tǒng)設(shè)計了,不硬編碼在程序里是程序員永遠(yuǎn)追求的方向!文章來源地址http://www.zghlxwxcb.cn/news/detail-450575.html

到了這里,關(guān)于springboot~國際化Locale正確的姿勢的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • SpringBoot第13講:SpringBoot接口如何參數(shù)校驗國際化

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

    2024年02月12日
    瀏覽(20)
  • SpringBoot+Vue前后端分離項目國際化支持

    SpringBoot+Vue前后端分離項目國際化支持

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

    2024年02月04日
    瀏覽(25)
  • SpringBoot - SpringBoot整合i18n實現(xiàn)消息國際化

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

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

    2024年02月03日
    瀏覽(38)
  • 【國際化】文段中的HTML標(biāo)簽(JQuery-i18next)

    【國際化】文段中的HTML標(biāo)簽(JQuery-i18next)

    javascript - HTML tags in i18next translation - Stack Overflow 問題: 解決方法: 源碼: src/index.js · xlieee/jquery-i18next - 碼云 - 開源中國 (gitee.com) 文檔: jquery-i18next: i18next plugin for jquery usage (gitee.com)

    2024年02月19日
    瀏覽(20)
  • TDengine 資深研發(fā)整理:基于 SpringBoot 多語言實現(xiàn) API 返回消息國際化

    TDengine 資深研發(fā)整理:基于 SpringBoot 多語言實現(xiàn) API 返回消息國際化

    作為一款在 Java 開發(fā)社區(qū)中廣受歡迎的技術(shù)框架,SpringBoot 在開發(fā)者和企業(yè)的具體實踐中應(yīng)用廣泛。具體來說,它是一個用于構(gòu)建基于 Java 的 Web 應(yīng)用程序和微服務(wù)的框架,通過簡化開發(fā)流程、提供約定大于配置的原則以及集成大量常用庫和組件,SpringBoot 能夠幫助開發(fā)者更快

    2024年02月08日
    瀏覽(15)
  • SpringBoot 國際化(i18n) 支持中文鍵(KEY)的解決方法

    前言: 項目中要解決“中英文”切換的問題,想法是輸入key例如“你好”,然后去國際化文件找對應(yīng)的中文key,然后進(jìn)行輸出,如果沒有定義這個key,則輸出“你好”。但是中文key在properties文件中會已unicode編碼輸出,使用中文key時獲取不到對應(yīng)的value。 解決方法: 重構(gòu)$.

    2024年02月16日
    瀏覽(31)
  • 48、springboot 的國際化之讓用戶在程序界面上弄個下拉框,進(jìn)行動態(tài)選擇語言

    48、springboot 的國際化之讓用戶在程序界面上弄個下拉框,進(jìn)行動態(tài)選擇語言

    上一篇是直接改瀏覽器的支持語言。 在瀏覽器上面直接改國際化語言 這次要實現(xiàn)的功能是直接在程序界面動態(tài)選擇語言。 Locale 代表語言、國家。 應(yīng)用之所以能動態(tài)呈現(xiàn)不同的語言界面,其實關(guān)鍵在于如何確定客戶端的Locale(代表語言、國家信息) ——Spring Boot應(yīng)用使用L

    2024年02月09日
    瀏覽(19)
  • 【國際化Intl】Flutter 國際化多語言實踐

    【國際化Intl】Flutter 國際化多語言實踐

    提示:這里參考一下幾個鏈接 例如: https://github.com/ThinkerWing/language https://juejin.cn/post/6844903823119482888 這篇也很詳細(xì),還有包括兼容中文的繁體簡體… 可以看看 該分支對應(yīng)的提交是使用Android Studio 和 Flutter Intl插件 并根據(jù)掘金這篇文章的實踐,兼容漢字簡體和繁體字 https://g

    2023年04月23日
    瀏覽(39)
  • hyperf 十四 國際化

    官方網(wǎng)址:Hyperf 文件結(jié)構(gòu): ????????/storage/languages/en/messages.php ????????/storage/languages/zh_CH/messages.php 創(chuàng)建文件 /config/autoload/translation.php。 多語言的調(diào)用從注入開始,即HyperfTranslationTranslator::__construct(TranslatorLoaderInterface $loader, string $locale)方法。根據(jù)配置文件Translato

    2024年02月11日
    瀏覽(24)
  • C++國際化編程

    字節(jié)(octet)是一個八位的存儲單元,取值范圍一定是0~255。而字符(character,或者word)為語言意義上的符號,范圍就不一定了。例如在UCS-2中定義的字符范圍為0~65535,它的一個字符占用兩個字節(jié)。 字符0xabcd如果存儲為 AB CD,則稱為Big Endian;如果存儲為 CD AB,則稱為Litt

    2024年02月10日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包