Support multiple languages with translation files, the __() helper, and locale switching.
Localization (i18n)
// lang/en/messages.php
return ["welcome" => "Welcome, :name!", "posts" => "{0} No posts|{1} One post|[2,*] :count posts"];
// lang/fr/messages.php
return ["welcome" => "Bienvenue, :name!"];
// Use in code
__("messages.welcome", ["name" => "Alice"]);
trans("messages.posts", ["count" => 5]);
// Pluralization
trans_choice("messages.posts", 5); // "5 posts"
// In Blade
{{ __("messages.welcome", ["name" => $user->name]) }}
@lang("messages.welcome")
// Switch locale
App::setLocale("fr");
app()->setLocale(auth()->user()->locale);