Repolode
mcamara

mcamara/laravel-localization

Laravel向けのi18n URLローカライズパッケージ。ロケール付きルート、ブラウザー言語の検出、翻訳可能なルートスラッグ、言語セレクター用ヘルパーを提供します。

スター
3,558
フォーク
505
未解決の Issue
11
最終コミット
3 か月前

これは何?

Laravel Localizationは、Laravelアプリケーションに多言語URLの処理を追加します。ルートはロケールプレフィックス付きのグループ内で一度だけ定義でき、URLのセグメントに応じてアプリケーションのロケールが設定されます。そのため、/en/aboutと/es/acercaは同じコントローラーに解決され、App::getLocale()には現在の言語が反映されます。

ブラウザーのAccept-Languageヘッダーから訪問者の言語を検出し、選択したロケールをセッションまたはCookieに保存して、ローカライズされたURLへリダイレクトできます。また、URLでデフォルトロケールを省略したり、langファイルを使ってルートセグメントを翻訳したりできます。言語セレクターやロケールに応じたリンクの作成には、localizeUrl、getSupportedLocales、getCurrentLocaleDirectionなどのヘルパーを利用できます。

ルートはリクエストごとに生成されるため、デフォルトではphp artisan route:cacheはサポートされません。キャッシュにはLoadsTranslatedCachedRoutes traitとroute:trans:cacheコマンドが用意されています。またREADMEでは、ネイティブのルートキャッシュが必要な新規プロジェクト向けに、後継パッケージのniels-numbers/laravel-localizerを推奨しています。

主な機能

  • 01すべての言語のルートを一度だけ定義できる、ロケールプレフィックス付きルートグループ。
  • 02Accept-Languageヘッダーによるブラウザー言語の検出。
  • 03セッションやCookieを利用したロケールリダイレクトミドルウェア。
  • 04lang/**/routes.phpファイルで定義する、翻訳可能なルートセグメント。
  • 05ローカライズされたURL、ロケール名、各言語での名称、文字方向、文字体系に対応するヘルパー。
  • 06URLでのデフォルトロケールの省略と、ロケールごとのカスタムURLマッピングに対応。

ユースケース

  • 言語ごとに異なるURLプレフィックスを使い、複数言語のコンテンツを配信するLaravelサイトの構築。
  • 各ページの他ロケール版にリンクする言語セレクターの追加。
  • SEOに適した多言語サイトで、/en/article/...や/es/articulo/...のような翻訳済みスラッグを提供。

クイックスタート

  1. 1

    Composer でパッケージをインストールします

    composer require mcamara/laravel-localization
  2. 2

    設定ファイルを公開します

    php artisan vendor:publish --provider="Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider"
  3. 3

    routes/web.php でローカライズされたルートを LaravelLocalization::setLocale() のルートグループで囲みます

使う前に知っておきたいこと

  • ルートはリクエストごとに生成されるため、php artisan route:cache は標準ではサポートされていません。
  • Laravel と PHP のバージョンサポートは、互換性テーブルに記載されている特定のパッケージバージョンに依存します。

トピック

よくある質問

laravel-localization とは?
Laravel向けのi18n URLローカライズパッケージ。ロケール付きルート、ブラウザー言語の検出、翻訳可能なルートスラッグ、言語セレクター用ヘルパーを提供します。 Laravel Localizationは、Laravelアプリケーションに多言語URLの処理を追加します。ルートはロケールプレフィックス付きのグループ内で一度だけ定義でき、URLのセグメントに応じてアプリケーションのロケールが設定されます。そのため、/en/aboutと/es/acercaは同じコントローラーに解決され、App::getLocale()には現在の言語が反映されます。
laravel-localization は無料で使えますか?ライセンスは?
laravel-localization は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
laravel-localization は今もメンテナンスされていますか?
半年以内に更新あり。laravel-localization の最終コミットは 2026年8月24日 です。
laravel-localization は何に使えますか?
言語ごとに異なるURLプレフィックスを使い、複数言語のコンテンツを配信するLaravelサイトの構築。 各ページの他ロケール版にリンクする言語セレクターの追加。 SEOに適した多言語サイトで、/en/article/...や/es/articulo/...のような翻訳済みスラッグを提供。
laravel-localization のインストール方法は?
Composer でパッケージをインストールします: composer require mcamara/laravel-localization 設定ファイルを公開します: php artisan vendor:publish --provider="Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider" routes/web.php でローカライズされたルートを LaravelLocalization::setLocale() のルートグループで囲みます
laravel-localization はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/mcamara/laravel-localization

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト