Laravel の多言語化対応をすることになったのですが、どうやら CakePHP とは違い標準で翻訳文字列を配列なり json なりで一括出力する方法は用意されていない模様。そんなことある…?
packagist で適当に「laravel trans」とか入れて検索し、適当にというか簡単に言語ファイルを出力できそうなパッケージを検索。それっぽいパッケージを見つけたので使いながらメモ。
kkomelin/laravel-translatable-string-exporter
インストール
通常、本番環境で使う事はないと思うのでオプション --dev でインストール
composer require kkomelin/laravel-translatable-string-exporter --dev
言語ファイルの出力
専用の artisan コマンドが使えるようになるので、そちらを実行する
php artisan translatable:export <lang>
# example
# 英語の言語ファイルを出力する
php artisan translatable:export en
実行後、Lang ディレクトリ下に en.json ファイルが出力される
{
"予約を受け付けました。": "予約を受け付けました。",
"予約番号を必ずお控えください。": "予約番号を必ずお控えください。",
"お客様の予約番号": "お客様の予約番号",
"予約番号": "予約番号"
}
どうやらキーバリューどちらも日本語文字列が入る模様。
空文字の方が嬉しかったのですがとりあえず簡単に使えそうです。
作者様ありがとうございます。
リンク
packagist
github