Spring Bootで多言語対応の手順
Spring Bootにはデフォルトで多言語の機能(i18n)がついています。その機能を利用すれば多言語化対応は簡単にできます。
本記事ではSpring Bootの多言語対応の手順について紹介します。
[手順1] 多言語ファイルの作成
今回は日本語と英語の多言語ファイルを作成します。
src.main.resources配下に、日本語と英語用のプロパティファイルを作成します。
※Springのデフォルトの配置場所がsrc.main.resources配下です。
[messages_ja.properties]
hello=こんにちは世界!!
[messages_en.properties]
hello=Hello World!!
_jaや_enが言語を表す部分です。
[手順2] 多言語ファイルの読み込み
次に多言語ファイルを読み込みます。
package com.example.demo.controller;
import java.util.Locale;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
* HelloWorld Controller
*/
@Controller
public class HelloWorldController {
/**
* メッセージ管理
*/
@Autowired
private MessageSource messageSource;
/**
* HelloWorld表示
* @param model Model
* @return HelloWorld表示画面
*/
@RequestMapping(value = "/", method = RequestMethod.GET)
public String helloWorld(Model model) {
String[] param = new String[] {};
model.addAttribute("message",messageSource.getMessage("hello", param, Locale.JAPAN));
return "index";
}
}
messageSource.getMessage("hello", param, Locale.JAPAN) を使用して多言語ファイルを読み込みます。
- 第一引数:キー値
- 第二引数:動的パラメータ
- 第三引数:言語
第三引数の言語により、読み込むファイルの切り分けを行います。読み込むファイルが存在しない場合は、システムのデフォルト言語のファイルを読み込みます。
これで多言語化は終了です。クライアントからHTTPヘッダに表示する言語を含ませて、サーバ側では、HTTPヘッダに記載されている言語で返却するような流れが、よくある流れです。
多言語ファイルに動的パラメータを設定する方法
言語ファイルに動的パラメータを設定する方法は以下の通り。
言語ファイルに動的パラメータが入る場所の指定をします。指定方法は{数値}の形式で指定します。※数値は0から順番に設定
[messages_ja.properties]
hello=こんにちは世界!!{0}{1}
言語ファイルを読み込む処理では、messageSource.getMessageメソッドの第二引数に動的パラメータを設定します。
String[] param = new String[] {"動的パラメータ1","動的パラメータ2"};
model.addAttribute("message",messageSource.getMessage("hello", param, Locale.JAPAN));
helpful
この記事は役に立ちましたか?