caouecs/laravel-lang
Laravel Lang provides ready-made translation files for Laravel's validation, authentication, password reset, and pagination messages in dozens of languages. Drop in the locales you need and your app speaks your users' language out of the box.
Architecture fit
validation.php, auth.php, passwords.php, pagination.php) plus JSON attribute-name files for ~80 locales, consumed by Laravel's native Translator. No service provider, no runtime hooks, no middleware — it either works transparently or does nothing.Integration feasibility
composer require, then copy or publish locale directories into the app. On Laravel ≤8 the target is resources/lang/; on Laravel 9+ it is lang/.caouecs/laravel-lang is the legacy name; the actively maintained line is laravel-lang/lang and laravel-lang/common (which provides php artisan lang:add). Verify the canonical Composer package name and its Laravel support matrix before pinning. Depending on the legacy package is a one-way door into an unsupported branch.Technical risk
composer update will not refresh them, creating a false sense of currency.Key questions
vendor/? Who owns the diff review on upgrade?laravel-lang/common the intended long-term dependency rather than the legacy caouecs package?Stack fit
__(), @lang, trans_choice, validation messages, and coexists with spatie/laravel-translation-loader or DB-backed translation if we later move.Migration path
composer require --dev laravel-lang/common, then php artisan lang:add {locale} for only the locales we ship.composer require caouecs/laravel-lang:~7.0 (Laravel 6–8 era), then copy src/{locale} into resources/lang. This is a supported-today, stranded-tomorrow path — plan the rename now.Compatibility
resources/lang → lang in Laravel 9 is the main breakage. Decide once: adopt lang/ and delete the custom path binding in AppServiceProvider.{locale}.json the app uses — reconcile keys rather than overwriting.Sequencing
en and each supported locale.locale / fallback_locale and locale-switching tests.caouecs path.Maintenance
Support
caouecs namespace is legacy and effectively superseded; there is no security patching requirement, but also no guarantee of future fixes. Internal support cost sits entirely with the team that owns i18n.Scaling
Failure modes
composer update doesn't touch them, so staleness is undetectable by tooling alone.Ramp-up
How can I help you explore Laravel packages today?