メッセージ管理方針⚓︎
メッセージ文字列は、表記の統一を図ることを目的にプロパティファイルで管理します。 メッセージは用途に応じて以下の 2 種類に分類します。
-
業務メッセージ
業務ロジックで使用されるエラーメッセージや警告文など。
-
UI メッセージ
ラベル、ボタン名、画面固有の文言といった画面表示用のメッセージ。
メッセージの管理単位⚓︎
以下のように、業務メッセージと UI メッセージを分割して各サブプロジェクトで管理します。 業務メッセージに関しては、複数の処理で共通に使用することが考えられるため、 1 つのプロパティファイルで一括管理します。 UI メッセージに関しては、プロパティファイルと HTML ファイルについてはフォルダー構造で 1 対 1 に対応させ、画面単位でのメッセージ定義および管理を容易にします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
プロパティファイルの管理⚓︎
プロパティファイルでは、以下のようにメッセージ文字列を識別するメッセージコードとメッセージ文字列本体をペアで管理します。
業務メッセージ⚓︎
業務メッセージの管理方針については、こちら を参照してください。
UI メッセージ⚓︎
メッセージコードは、アプリケーション内で重複しないように設定する必要があるため、以下のように <機能名>.<画面名>.<項目名> で設定します。
| register_ja.properties | |
|---|---|
1 | |
| edit_ja.properties | |
|---|---|
1 | |
多言語対応⚓︎
多言語対応するために利用する機能は以下の通りです。
ブラウザーの言語取得⚓︎
Spring Framework で提供されている AcceptHeaderLocaleResolver を利用して、ブラウザーの言語設定を取得します。
対応していない言語の場合は、 AcceptHeaderLocaleResolver の setDefaultLocale メソッドを利用して日本語を使用するようにします。
プロパティファイルの読み込み⚓︎
Spring Framework で提供されている PathMatchingResourcePatternResolver を利用して、プロパティファイルを読み込みます。
また、 MessageSource で提供されている機能を利用して、プロパティファイルの末尾に _ja や _en のような接尾辞を付与します。 これにより、ブラウザーの言語設定に応じて読み込むプロパティファイルを切り替えます。
HTML とのバインディング⚓︎
テンプレートエンジンである Thymeleaf の機能を利用して、 #{} 構文によってメッセージを参照します。 以下のように、構文内にはプロパティファイルで定義したメッセージコードを記述します。
1 | |