Laravelで多言語対応のWebサイトやアプリを作るとき、resources/lang にロケールJSONファイルを作成する作業が意外と面倒だと感じたことはありませんか?
- Bladeファイルからテキストを抜き出すのが大変
- ページが複数あると翻訳対象が膨大
- 翻訳を複数言語で揃えるのも手間
そんな課題を一気に解決できるのが、CLIでテキストを抽出して一括翻訳するパッケージです。
例: Bladeファイル内の翻訳対象テキスト
<p>{{ __("Laravel has an incredibly rich ecosystem. We suggest starting with the following.") }}</p>
このような __() 関数の中のテキストを自動で抽出し、複数言語のJSONファイルに変換します。
Locale Generatorとは?
Locale Generator は、
- Bladeファイルから翻訳テキストを自動抽出
- 複数ロケールのJSONファイルを自動生成
- Google Translate または DeepL API を使って即翻訳
ができる便利なCLIツールです。
インストール手順
1. インストール
composer install eii/locale-generator
2. 設定ファイルを公開
php artisan vendor:publish --tag=config
3. resources/lang フォルダを作成
(既に存在する場合はスキップ)
mkdir resources/lang
Google Translate APIの設定方法
Google Translateを使うには、Google Cloud Consoleでサービスアカウントを作成し、APIキーを取得します。
手順
-
Google Cloud Consoleへアクセス
https://console.cloud.google.com/
Googleアカウントでログインします。 -
新しいプロジェクトを作成
- 上部のプロジェクトセレクタから「新しいプロジェクト」を選択
- 名前を入力し、組織を選択(必要な場合)
-
翻訳APIを有効化
- ナビゲーションメニュー → 「APIとサービス」 → 「ライブラリ」
-
Cloud Translation API
を検索して有効化します
-
サービスアカウントを作成
- 「IAMと管理」 → 「サービスアカウント」
- 「サービスアカウントを作成」をクリック
- 名前・説明を入力し「作成」
- ロールは
プロジェクト > 編集者
またはCloud Translation API ユーザー
を選択 - 作成後「完了」
-
認証キー(JSON)を作成
- 作成したサービスアカウントをクリック
- キー」タブ → 「鍵を追加」 → 「新しい鍵を作成」
- JSON形式を選択しダウンロード
- このファイルを
storage/app/google-credentials.json
に保存
-
.envに設定を追加
GOOGLE_TRANSLATE_KEY_FILE=storage/app/google-credentials.json GOOGLE_PROJECT_ID=your-project-id
※ your-project-id
はGoogle CloudのプロジェクトIDと一致させてください。
DeepL APIの設定方法
DeepLを使う場合は、公式サイトからAPIキーを取得します。
手順
-
DeepL公式サイト にアクセス
無料または有料のアカウントを作成します。 - ログイン後、アカウントページへ移動
「アカウント」 → 「API Keys & Limits」へ - 「APIキーを生成」ボタンをクリックし、発行されたキーをコピー
-
.env
に設定を追加
DEEPL_API_KEY=your-deepl-api-key
使い方
翻訳したいBladeファイルを含むページ名を指定してコマンドを実行します。
例:welcome
ビュー内のテキストを日本語・スペイン語・ドイツ語に翻訳
php artisan lang:extract welcome --locales=ja,es,de --translate=deepl
-
--locales
: 生成する言語コード(カンマ区切り) -
--translate
: 使用する翻訳サービス(deepl
またはgoogle
)
実行後、resources/lang
に以下のファイルが生成されます:
ja.json
es.json
de.json
各ファイルには翻訳済みのテキストが含まれます。
対応言語コード例
-
ja
: 日本語 -
en
: 英語 -
es
: スペイン語 -
de
: ドイツ語 -
fr
: フランス語
まとめ
このCLIツールを使えば、
- Bladeからのテキスト抽出
- 複数ロケールのJSON生成
- 翻訳サービスによる自動翻訳
がすべて1コマンドで完了します。
大規模な多言語サイト開発の初期翻訳作業が圧倒的に楽になります。
ヒント: 自動翻訳後は必ずネイティブチェックを行うことをおすすめします。