lang:publish — 言語ファイルを公開するコマンド

artisan

php artisan lang:publish は、Laravel パッケージからアプリケーションへ翻訳ファイル(ローカリゼーション)をコピーするための Artisan コマンドです。

パッケージの resources/lang ディレクトリにある言語ファイルを、プロジェクトの resources/lang/vendor/{vendor}/{package} に出力します。


コマンド概要

項目内容
コマンド名php artisan lang:publish
実行場所アプリケーションルート(./
主な目的パッケージ翻訳ファイルを resources/lang/vendor/{vendor}/{package} へコピー

オプション

オプション必須デフォルト説明
--provider=stringいいえなし翻訳ファイルを持つパッケージの ServiceProvider を指定。複数指定可。
--locale=stringいいえすべてコピー対象のロケール。enja などを指定。
--forceflagいいえなし既存ファイルを上書き。

注意
--provider が省略されると、プロジェクトに登録済みのすべての ServiceProvider から翻訳ファイルをコピーします。


典型的な使い方

# 1. パッケージをインストール
composer require vendor/package

# 2. パッケージの翻訳ファイルをコピー
php artisan lang:publish --provider="Vendor\Package\ServiceProvider" --locale=ja

# 3. 必要なら既存ファイルを上書き
php artisan lang:publish --provider="Vendor\Package\ServiceProvider" --locale=ja --force

出力例

Publishing translations for `Vendor\Package`…
✔ 5 translations published

実務上の落とし穴

ケース何が起きるか対処
lang:publish./lang にファイルを置くように見えるLaravel は resources/lang を参照するため、コピー先が誤っているresources/lang/vendor/... へ正しくコピーされているか確認
既存ファイルがあるそのままでは上書きされず、古いファイルが残る--force を付与
--locale を指定しないすべてのロケールがコピーされる必要なロケールだけを指定して無駄なファイルを省く
複数パッケージを同時に公開出力先が混乱しやすい--provider を複数列挙し、順序を明示

参考情報

リンク内容
Laravel Docs – lang:publishコマンドの詳細とオプション
GitHub Issue: lang:publish bug既知のバグと回避策
Laravel Lang – Package Publisherパッケージ翻訳ファイルの自動更新方法

まとめ
php artisan lang:publish はパッケージの翻訳ファイルを手軽にプロジェクトへ持ち込む便利なツールです。

  • --provider で対象パッケージを絞る
  • --locale で必要なロケールだけをコピー
  • --force で既存ファイルを上書き
    を活用して、翻訳管理をスムーズに行いましょう。
レン (Wren)

こんにちは。レンです。

Laravelのコードの森に住んでいる、小さな案内役です。
ルーティングの枝やクラスの影を歩きながら、コードの流れや仕組みを眺めています。

このサイトでは、Laravelの基本から実装のコツまで、開発で役立つポイントを静かに整理しています。
難しいことを増やすのではなく、コードの見通しが少し良くなるヒントを届けるのが役目です。

「この処理はどこに書くのがいいのか」
「Laravelではどう考えると整理できるのか」

そんな疑問に、小さなメモを残すような気持ちで記事を書いています。

コードを書いている途中で迷ったとき、
このサイトが少し立ち止まって整理できる場所になればうれしいです。

レン (Wren)をフォローする