laravel-lang/lang
Community-maintained localization files for Laravel. Install via Composer to add and update translations for Laravel’s core messages across many locales, with curated language packs and ongoing updates from the Laravel Lang project.
resources/lang, AppServiceProvider bootstrapping). Leverages Laravel’s translation loader (Illuminate/Translation/FileLoader) without requiring custom adapters.config('app.locale') or per-request overrides (app()->setLocale()). Supports regional variants (e.g., en_US, pt_BR).composer require laravel-lang/lang). No database migrations or schema changes needed.LangServiceProvider). No manual registration required beyond composer dump-autoload.es → en). Missing keys in the package default to Laravel’s built-in translations.sr_Latn_ME, zh_CN). Risk of untranslated strings in niche locales or newer Laravel features (e.g., passkey auth).
fallback_locale in config/app.php as a safety net.config('app.fallback_locale') and dynamic language switching.de_DE, fr_FR, es_ES thoroughly despite minor gaps.config/laravel-lang.php or custom language file structure.php artisan lang:test command to check for missing keys.pt_BR → pt → en). Document this in config/app.php.zh_CN’s missing "Export As CSV").json translation files for critical API responses (e.g., error messages, webhook payloads) in high-priority locales.Illuminate/Translation, AppServiceProvider.response()->json()) localized via trans() helpers.trans() in Blade templates or expose translations via API endpoints.__locale in shared data to dynamically switch UI languages.de_AT but the package lacks it).resources/lang/ to avoid duplication.composer require laravel-lang/lang --dev # or --prod if translations are critical
php artisan vendor:publish --provider="LaravelLang\Lang\LangServiceProvider" --tag="config"
config/laravel-lang.php (if customizing defaults).config/app.php:
'locale' => 'en',
'fallback_locale' => 'en',
app()->setLocale($request->locale);
php artisan lang:test --locale=es --locale=de
ar, he).pt_BR vs. pt_PT).- name: Test translations
run: php artisan lang:test --all
| Component | Compatibility | Notes |
|---|---|---|
| Laravel v8.x–v10.x | ✅ Full support | Test with your specific minor version (e.g., v10.10.x). |
| Jetstream/Fortify | ✅ Pre-translated auth flows | Covers login, registration, password resets. |
| Breeze/Cashier | ✅ Partial (check status.md for gaps) |
Example: zh_CN lacks "Export As CSV". |
| Nova | ✅ Admin panel translations | Includes CRUD actions, notifications. |
| Custom Packages | ⚠️ Manual validation required | Audit third-party packages for hardcoded strings (e.g., trans('vendor.key')). |
| Blade/Inertia | ✅ Dynamic language switching | Use __locale in shared data or middleware. |
| API Responses | ✅ JSON localization via trans() |
Example: response()->json(['error' => trans('validation.required')]). |
app.php, test default locale.lang:test for all target locales.laravel-lang/lang updates.fallback_locale or custom files for missing keys.zh_CN’s 19 missing strings).resources/lang/custom/ to avoid merge conflicts during updates.resources/
├── lang/
│ ├── custom/
│ │ ├── es/
│ │ │ └── validation.php
│
How can I help you explore Laravel packages today?