続・Laravel Jetstream + Vue の多言語対応(i18n)
そうだ、フォークしよう
前回(↑)の投稿後、また修正漏れを発見してしまい...
もうこの際だからちゃんと修正したやつ(それでもきっと完全ではないけど)のまとめを作ろうと思い立ちまして。公式からフォークしてインストールコマンドとスタブを書き換える!
2022/8/2 追記
Laravel 本体が v9.2 から Vite に対応したので、こちらも Vite で動くように変更しました。
Laravel Jetstream Inertia Localized
今回作ったリポジトリはこちら。inertia-i18n ブランチに修正をまとめてある。
※ Packagistには登録していませんが、リポジトリ自体は公開してあるので自己責任でご利用ください。
どういう修正をする?
Jetstream はインストールコマンドのオプションによってコピー元のファイルが変わるので、inertia が指定されたときのコピー元ファイルを書き換える。
インストールコマンドの中で vue-i18n と laravel-lang-publisher もインストールするようにする。
config/app.php のロケールとフォールバックロケールから必要な言語ファイルも取得してしまおう。
インストールの方法
-
まっさらな Laravel をインストールする(migrate はまだしない)
-
config/app.php の locale、fallback_locale を修正する(Jetstream インストール時に対応する言語ファイルを取得するため)
-
上記リポジトリの Localized 版 Jetstream をインストールする
-
composer.json に書き足し
composer.json"repositories": [ { "type": "vcs", "url": "https://github.com/blancpanda/jetstream" } ], "require": { "laravel/jetstream": "dev-inertia-i18n", }
-
更新
composer update laravel/jetstream
-
-
Jetstream のインストールコマンドを実行する
※ チーム機能を使う場合はオプション --teams をつける
php artisan jetstream:install inertia php artisan jetstream:install inertia --teams
-
コンパイルとマイグレーション
npm install npm run dev php artisan migrate
さらっと翻訳されているはず!!
言語ファイルについて
Laravel Lang Publisher を一緒にインストールするので、必要に応じて他の言語のファイルも取得できる。
Laravel Lang Publisher のガイド
例1 )フランス語の追加
php artisan lang:add fr
例2 )翻訳データの更新
php artisan lang:reset
苦労したところ
Laravel 9 から lang ディレクトリの位置が変更になったので、app.js からの相対パスを書き分けなきゃいけなくて、絶対パス2つから相対パスを得る処理をインストールコマンドに書き足した(stack overflow 様々)。
まだ不安だ…ちょいちょい更新しそうな感じ。
Discussion