blocs/blocs: 多言語対応(data-lang)
blocs/blocs: 多言語対応(data-lang)
data-lang を使って、Laravelの多言語機能と連携し、言語ごとに異なるテキストを表示します。タグ記法・コメント記法の両方で使用可能です。
注: data-lang は data-notice のエイリアスです(No.2.1 参照)。テンプレート上はどちらの属性名でも同じ動作になります。
言語ファイルの準備
日本語ファイル(lang/ja.json)
{
"success:data_registered": "「{1}」を登録しました。"
}
英語ファイル(lang/en.json)
{
"success:data_registered": "{1} has been registered."
}
プレースホルダー({1})には、data-lang でコロンの後に指定した値が順番に挿入されます。
翻訳文字列は Laravel の lang/*.json に加え、テンプレートルート直下の lang.json(BLOCS_ROOT_DIR/lang.json)からも読み込めます。
サンプルコード
<div data-lang="success:data_registered:test"></div>
- 日本語表示: 「test」を登録しました。
- 英語表示: test has been registered.
コメント記法:
<!-- data-lang="success:data_registered:test" -->
QA
ツールチップで言語ごとの表示を切り替えたい
BLOCS の lang() 関数を使えば、翻訳ファイルから文字列を取得してツールチップに表示できます。
<span data-bs-toggle="tooltip" :data-bs-original-title=lang("template:admin_user_invalid_title")></span>
HTMLタグを含むツールチップ:
<span data-bs-toggle="tooltip" data-bs-html="true" data-bs-original-title="<i>ERROR</i>"></span>