Springboot の国際化は、ユーザーがさまざまな言語環境でアプリケーションを構築するのに役立ち、アプリケーションがさまざまな言語や文化的背景のユーザーのニーズに効果的に適応できるようになります。
さらに、Springboot の国際化により、多言語アプリケーションの再利用とメンテナンスも容易になり、システム導入の時間コストとメンテナンス コストが削減されます。
Springboot 国際アプリケーションを実装するには、主に 3 つの手順があります。
国際リソース ファイルを定義し、プロパティ形式ファイルを使用し、異なる多言語テキスト リソースを異なるファイルに配置し、各ファイルに名前を付けます [ロケール] [メッセージ] を使用しますzh_CN.properties、en_US.properties などのメソッド。
message.properties ファイルの内容は空にすることもできます。
message.en_US.properties コンテンツの例:
##message.zh_CN.properties コンテンツの例: #40001=Hello40001=Hello
2. パーサーとインターセプターを作成します
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); } }; } }
#i18n spring.messages.basename=i18n.messages spring.messages.cache-duration=3600 spring.messages.encoding=UTF-8
次のコンテンツを application.yml
spring: messages: basename: i18n/messagesに追加します
4. コントローラーの例
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; } }
5. 概要
さらに、Springboot の国際化により、多言語アプリケーションの再利用とメンテナンスも容易になり、システム導入の時間コストとメンテナンス コストが削減されます。 Springboot 国際アプリケーションを実装するには、主に 3 つの手順があります。
1. 国際プロパティ ファイルの設定: Springboot の国際化を実装するには、まず言語と地域情報を含む一連の国際プロパティ ファイルを準備する必要があります。
2. 国際化されたメッセージ リソースの登録: プロパティ ファイル内の言語と地域の情報を Springboot アプリケーションに登録し、デフォルト値を指定することで、多言語に拡張するときに関連するプロパティ リソースに迅速かつ効率的にアクセスできるようになります。 . .
3. 多言語バンドル ファイルの定義: 定義された国際化プロパティ ファイルをアプリケーションと結合して多言語バンドル ファイルを形成し、ユーザーが別の言語を選択したときにアプリケーションの言語バージョンを調整できるようにします。 。
以上がSpringBoot がフロントエンドとバックエンドを分離して国際化を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。