Springboot國際化可以幫助用戶在不同語言環境中建立應用程序,這樣應用程式可以有效地適應不同語言文化背景下的用戶需求。
此外,Springboot國際化也可以方便多語言應用程式重複使用和維護,從而減少了系統部署的時間成本和維護的費用。
要實現Springboot國際化應用,主要有三個步驟。
定義國際化資源文件,使用properties格式的文件,將不同的多國語言文字資源放在不同的文件中,每個文件的命名採【locale】 【messages】的方式,如zh_CN.properties、en_US.properties等。
message.properties檔案內容可為空。
message.en_US.properties內容範例:
40001=Hello
message.zh_CN.properties內容範例:
#40001=你好
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.i18n.LocaleChangeInterceptor; import org.springframework.web.servlet.i18n.SessionLocaleResolver; import java.util.Locale; @Configuration public class LocaleConfig { @Bean public SessionLocaleResolver localeResolver() { SessionLocaleResolver localeResolver = new SessionLocaleResolver(); localeResolver.setDefaultLocale(Locale.CHINA); return localeResolver; } @Bean public WebMvcConfigurer localeInterceptor() { return new WebMvcConfigurer() { @Override public void addInterceptors(InterceptorRegistry registry) { LocaleChangeInterceptor localeInterceptor = new LocaleChangeInterceptor(); localeInterceptor.setParamName("lang"); registry.addInterceptor(localeInterceptor); } }; } }
application.properties中新增以下內容
#i18n spring.messages.basename=i18n.messages spring.messages.cache-duration=3600 spring.messages.encoding=UTF-8
application.yml中添加如下內容
spring: messages: basename: i18n/messages
Springboot的國際化是透過一個稱為「messageSource」的bean實現的。
import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.MessageSource; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/test") public class TestControler { @Autowired private MessageSource messageSource; @GetMapping("/hello") public Map<Object, Object> test() { Map<Object, Object> result = new HashMap<Object, Object>(); result.put("code", 40001); result.put("msg", messageSource.getMessage("40001", null, LocaleContextHolder.getLocale())); return result; } }
Springboot國際化可以幫助用戶在不同語言環境中建立應用程序,這樣應用程式可以有效地適應不同語言文化背景下的用戶需求。
此外,Springboot國際化也可以方便多語言應用程式重複使用和維護,從而減少了系統部署的時間成本和維護的費用。要實現Springboot國際化應用,主要有三個步驟。
1.設定國際化屬性文件:要實現Springboot國際化,首先要準備一系列國際化屬性文件,包括語言和地區資訊。
2.註冊國際化訊息資源:將屬性檔案中的語言和地區資訊註冊到Springboot應用程式中,並指定預設值,以便在擴展多語言時可以快速、有效率地存取相關屬性資源。
3.定義多語言捆綁文件:將已定義的國際化屬性文件與應用程式結合起來,形成多語言捆綁文件,以便在使用者選擇不同語言時可以及時調整應用程式語言版本。
以上是SpringBoot如何實現前後端分離國際化的詳細內容。更多資訊請關注PHP中文網其他相關文章!