Spring Boot のローカライズの問題
Spring Bootでは、以下の手順により、ローカライズの問題を解決できます。
- リソースフォルダー(src/main/resources)に messages というフォルダーを作成し、多言語のローカライズリソースファイルを格納します。
- messages フォルダに、作成する言語ごとに messages_言語コード.properties という名前のリソースファイルを作成します。例えば、英語と中国語に対応させたい場合は、messages_en.properties と messages_zh_CN.properties を作成します。
- リソースファイルにキー-値のペアを定義します (例:)
greeting=Hello
greetingはキーで、Helloはそれに対応する値です。必要に応じて、さらに多くのキーバリューペアを定義できます。
- Spring Bootのコンフィグファイル(application.propertiesまたはapplication.yml)に以下の内容を追加します。
spring.messages.basename=messages/messages
spring.messages.encoding=UTF-8
ここでspring.messages.basenameがリソースファイルのベースネーム、spring.messages.encodingがリソースファイルのエンコード方式を示しています。
- MessageSource
- メッセージソース
@Autowired
private MessageSource messageSource;
messageSource.getMessage(key, args,locale)メソッドを使用することで、ローカライズされたテキストを取得できます。ここで、keyはリソースファイルで定義されたキー、argsはテキスト内のパラメーターの置換、localeは取得する言語です。
String greeting = messageSource.getMessage("greeting", null, locale);
ここのローケルは必要に応じて設定でき、ユーザの設定言語または他の方法によって使用する言語を決定できます。
上記の手順に従うことで、Spring Boot のローカライズ機能を実現できます。さまざまな言語環境において、リソースファイルを置き換えることで対応するローカライズされたテキストを取得できます。