Spring Bootではapplication.propertiesに設定を書けばMessageSourceクラスから多言語対応されたメッセージが返ってくるらしい。 ...が、どうもバリデーションエラーメッセージは多言語化してくれなかった。 簡単にやり方をメモっておく。 動作環境 Java 8 Spring Boot 1.3.2 実際に書いたコード 設定ファイルの用意 ほぼ初期設定のまま。言語ファイルはi18nの下に置きたかったのでそこだけ変更。
Spring Bootではapplication.propertiesに設定を書けばMessageSourceクラスから多言語対応されたメッセージが返ってくるらしい。 ...が、どうもバリデーションエラーメッセージは多言語化してくれなかった。 簡単にやり方をメモっておく。 動作環境 Java 8 Spring Boot 1.3.2 実際に書いたコード 設定ファイルの用意 ほぼ初期設定のまま。言語ファイルはi18nの下に置きたかったのでそこだけ変更。
i18nと呼ばれる多言語化の対応を行います。 今回はsrc/main/resourcesの配下にi18nフォルダを作成し、その中に翻訳ファイルを配置します。 SpringBootへ設定 SringBootはデフォルト設定で、src/main/resourcesの配下にあるmessages.propertiesファイルを見ます。 そのため、翻訳ファイルの配置先をapplication.ymlに設定します。 翻訳ファイルの配置 先ほど設定したフォルダに翻訳ファイルを配置します。 翻訳ファイルはmessages_言語.propertiesです。 例) messages_ja.properties この時、対象の言語ファイルがない場合用にデフォルト( messages.properties )を配置する必要があります。 画面へ設定 翻訳ファイルのプロパティ値を画面へ埋め込みます。 以下のように埋め
SpringBootでメッセージ国際化をしてみます 何をするかというと、HTML内に表示されるメッセージを一つのファイルにまとめておきます。 あとからの修正が楽になるなどのメリットがありサイトを多言語展開する場合などに役立ちます プロパティファイルに指定したメッセージは起動時に読み込まれ、インスタンス内にキャッシュされます キャッシュされる方を使いたい場合には、ResourceBundleMessageSourceを使います。 今回は リソースが変更されたらメッセージも変更される様にしたいのでReloadableResourceBundleMessageSourceをつかいます。 この機能はSpringの機能を利用する事になります。 必要なライブラリなどはなく、 1.ビーン登録 2.メッセージ用のpropertyファイルの配置 3.MessageSourceの継承 のみになります。 1.ビ
概要 Spring Framework (Spring Boot)のTipsです。随時更新していく予定です。 ある程度ボリュームのある内容は別記事として投稿し、そこへリンクしています。 また、最初のころのtipsは2015年投稿で使用バージョンが古く、現在では参考にならないかもしれませんのでご注意ください。 1. プロパティファイルの値をフィールドのデフォルト値に設定する 環境: Spring Boot 1.3.0.M5, Java 1.8.0_60 Valueアノテーション Valueアノテーションを使用してプロパティファイルの値をフィールドのデフォルト値とすることができます。 Annotation Type Value myapp: string: property: Some text propertyDefault: # propertyUnresolvable: int: pro
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く