mcpField
L
laravel-i18n

laravel-i18n

github.com/fusengine開発3456 回インストール2 週間前に更新
リポジトリ

laravel-i18n について

Laravel で多言語アプリを実装する開発者向けのローカライズスキルです。翻訳ファイル、ロケール処理、書式設定、パッケージ翻訳に加え、Laravel 13 のキュージョブへのロケール伝播も扱います。

主な機能

  1. 01PHP・JSON 翻訳ファイルの指針
  2. 02複数形と Blade 翻訳ヘルパー
  3. 03ロケール検出ミドルウェアのパターン
  4. 04日付・数値・通貨の書式設定
  5. 05Laravel 13 のキュージョブへのロケール伝播

活用シーン

  1. 01Laravel アプリの翻訳を設定
  2. 02複数形の文言と動的プレースホルダーを処理
  3. 03要求されたロケールを検出・検証
  4. 04キュージョブでロケール設定を維持

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/fusengine/agents --skill laravel-i18n

インストール後、Claude Code で/laravel-i18nを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
best-practices.md
blade-translations.md
formatting.md
localization.md
middleware.md
packages.md
pluralization.md
references/templates/
lang-files.md
LocaleRoutes.php.md
LocaleServiceProvider.php.md
SetLocaleMiddleware.php.md

詳細

Laravelのローカライズについて説明します。PHPとJSONの翻訳ファイル、複数形のルール、Bladeの翻訳ヘルパー、ロケール検出ミドルウェア、日付・数値・通貨のフォーマット、ベンダーパッケージの翻訳、大規模アプリ向けの翻訳の整理を取り上げます。Laravel 13での`Context::add()`を使った、キューで安全にロケールを伝播する方法も含まれます。

Laravelの国際化

エージェントのワークフロー(必須)

実装を始める前に、次の3つのエージェントをそれぞれ1回のAgent呼び出しで、並行して起動してください。各呼び出しにはnameを指定します。

  1. fuse-ai-pilot:explore-codebase - 既存の翻訳パターンを確認します
  2. fuse-ai-pilot:research-expert - Context7を使ってLaravelのi18nのベストプラクティスを確認します
  3. mcp__context7__query-docs - Laravelのローカライズに関するドキュメントを確認します

実装後、検証のためにfuse-ai-pilot:sniperを実行してください。


概要

機能PHPファイルJSONファイル
キー短い(messages.welcome)全文
ネスト対応フラットのみ
最適な用途構造化された翻訳大規模アプリ

重要なルール

  1. 文字列を連結しないでください - :placeholderによる置換を使います
  2. 複数形ではゼロを必ず処理してください
  3. 機能ごとにグループ化してください - auth.login.title、auth.login.button
  4. 文字列は早めに抽出してください - ビューにハードコードしたテキストを残さないでください
  5. ロケールを検証してください - enumまたは許可リストを使います

選択ガイド

Translation task?
├── Basic string → __('key')
├── With variables → __('key', ['name' => $value])
├── Pluralization → trans_choice('key', $count)
├── In Blade → @lang('key') or {{ __('key') }}
├── Locale detection → Middleware
├── Format date/money → LocalizationService
└── Package strings → trans('package::key')

リファレンスガイド

概念(理由とアーキテクチャ)
トピックリファレンス参照するタイミング
セットアップlocalization.md初期設定
複数形pluralization.md数に応じた翻訳
Bladeblade-translations.mdビューの翻訳
ミドルウェアmiddleware.mdロケール検出
フォーマットformatting.md日付・数値・通貨
パッケージpackages.mdベンダー翻訳
ベストプラクティスbest-practices.md大規模アプリの整理
テンプレート(コード全体)
テンプレート使用するタイミング
SetLocaleMiddleware.php.mdURL/セッションによるロケール検出
lang-files.md翻訳ファイルの例
LocaleServiceProvider.php.mdローカライズサービスの一元管理
LocaleRoutes.php.mdURLプレフィックスによるロケールルーティング

クイックリファレンス

// Basic translation
__('messages.welcome')

// With replacement
__('Hello :name', ['name' => 'John'])

// Pluralization
trans_choice('messages.items', $count)

// Runtime locale
App::setLocale('es');
App::currentLocale();  // 'es'

ベストプラクティス

推奨事項
  • 動的な値には:placeholderを使います
  • 複数形ではゼロの場合を処理します
  • キーを機能モジュールごとにグループ化します
  • 型安全性のためにLocale enumを使います
  • ミドルウェアでCarbonのロケールを設定します
非推奨事項
  • 翻訳済みの文字列を連結しないでください
  • ビューにテキストをハードコードしないでください
  • 検証せずに任意のロケールを受け入れないでください
  • DBベースの翻訳を作成しないでください(ファイルを使います)

Laravel 13に関する注意事項

ローカライズAPI(__()、trans_choice()、App::setLocale())はLaravel 13でも変更されていません。具体的な注意点は次のとおりです。

  • Context::add('locale', $locale)はキューに登録されたジョブへロケールを伝播します(ShouldQueueジョブでロケールが失われていたL12のバグを修正します)
  • cache.serializable_classes(L13ではデフォルトでfalse):Localeオブジェクトをキャッシュする場合は、一覧に追加してください
  • SetLocaleミドルウェアは、[[laravel-auth]]の新しいPreventRequestForgeryミドルウェアと互換性があります
// app/Jobs/SendNotification.php
public function handle(): void
{
    App::setLocale(Context::get('locale', 'en'));
    Notification::send($this->user, new OrderShipped());
}

コメント