【メッセージファイルの管理】
はじめに
固定で頻繁に扱うようなメッセージは、あらかじめ決められた場所にメッセージファイルとして書き出す事が可能で、専用のコマンドを使ってスキャルフォールディングできます。
ファイル形式やメッセージを取得するヘルパー関数(__)は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歳です。」という文字列が格納されます。