【メッセージファイルの管理】
はじめに
固定で頻繁に扱うようなメッセージは、あらかじめ決められた場所にメッセージファイルとして書き出す事が可能で、専用のコマンドを使ってスキャフォールディングできます。
ファイル形式やメッセージを取得するヘルパー関数(__)はLaravel環境に合わせてあるので(多言語対応やプレースホルダにも対応)、Laravelとの連携も容易にできます。
※Laravelとの連携方法の詳細については▶Laravelと連携するのページをご覧下さい。
メッセージファイルは以下のコマンドで作成できます。
メッセージ管理のコマンドは
例えば
ファイル形式やメッセージを取得するヘルパー関数(__)はLaravel環境に合わせてあるので(多言語対応やプレースホルダにも対応)、Laravelとの連携も容易にできます。
※Laravelとの連携方法の詳細については▶Laravelと連携するのページをご覧下さい。
メッセージファイルは以下のコマンドで作成できます。
> php worker craft:locale test
[success] メッセージファイルの生成に成功しました (test)
メッセージ管理のコマンドは
setting/app.php内のlocale設定項目と連動しますので多言語対応で管理できます。例えば
localeの項目がjaの場合で、test.phpというファイルを指定した場合は、locale/ja/test.phpというファイルが作成されます。メッセージの使い方
作成されたファイルには次の通り、空の配列のリターン値のみコーディングされています。
例えばtest_messageという設定名のメッセージを管理する場合は、以下のように記載します。
そしてメッセージが必要な時に
メッセージファイル内のメッセージを取得するヘルパー関数(__)はLaravelと同様に使えるように以下の仕様で実装しています
また、以下のようにプレースホルダも使えます。
例えば自己紹介の文章の中で、名前と年齢を置き換え可能にする場合、キーワードの先頭にコロン(:)を付けて以下のように記載します。
変数$messageには「私の名前は山田太郎です。年齢は20歳です。」という文字列が格納されます。
return [
];
例えばtest_messageという設定名のメッセージを管理する場合は、以下のように記載します。
return [
'test_message' => 'テストメッセージ'
];
そしてメッセージが必要な時に
__ヘルパー関数を使って以下のように取得できます。
$message = __('test.test_message');
メッセージファイル内のメッセージを取得するヘルパー関数(__)はLaravelと同様に使えるように以下の仕様で実装しています
【メソッド】__(string $p_key, array $p_placeholder = []): string
【パラメータ】
$p_key - string - 必須 - ファイル名を含めたキー名(ピリオド区切りで指定)
$p_placeholder - array - 任意 - プレースホルダに値を代入するための連想配列
【戻り値】string - 第一パラメータで指定されたキーに対応するメッセージ or メッセージが取得できなかった時は第一パラメータで指定されたキー名
また、以下のようにプレースホルダも使えます。
例えば自己紹介の文章の中で、名前と年齢を置き換え可能にする場合、キーワードの先頭にコロン(:)を付けて以下のように記載します。
return [
'test_message' => '私の名前は:nameです。年齢は:age歳です。'
];
$message = __('test.test_message', ['name' => '山田太郎', 'age' => 20]);
変数$messageには「私の名前は山田太郎です。年齢は20歳です。」という文字列が格納されます。