Normalement, les projets Laravel n’incluent pas de fichiers de langue, car ils ne sont pas souvent utilisés. C’est pourquoi, dans Laravel 11, le dossier “lang” n’est pas présent par défaut. Cependant, si vous en avez besoin, vous pouvez l’ajouter en utilisant cette commande :
Commande pour publier le répertoire lang dans Laravel 11
php artisan lang:publish
Commande pour publier le répertoire lang si vous avez déjà un dossier lang existant
php artisan lang:publish --existing
Après l’exécution de cette commande, vous verrez le dossier lang
Une fois le dossier lang publié, vous pouvez gérer plusieurs langues dans votre projet Laravel.
Table des matières : [Masquer]
Ajouter des fichiers de traduction
Dans le dossier lang, créez un sous-dossier pour chaque langue que vous souhaitez prendre en charge. Par exemple :
lang/
├── en/
│ └── messages.php
├── fr/
│ └── messages.php
Chaque fichier de traduction est un fichier PHP retournant un tableau de chaînes. Exemple de fichier messages.php pour l’anglais :
return [
'welcome' => 'Welcome to our application!',
'goodbye' => 'Goodbye and see you soon!',
];
Et pour le français :
return [
'welcome' => 'Bienvenue dans notre application !',
'goodbye' => 'Au revoir et à bientôt !',
];
Configurer la langue par défaut
Dans le fichier de configuration config/app.php, définissez la langue par défaut de votre application :
'locale' => 'en',
Si vous souhaitez utiliser une autre langue par défaut, modifiez cette valeur, par exemple :
'locale' => 'fr',
Changer la langue dynamiquement
Vous pouvez modifier la langue dynamiquement au cours de l’exécution à l’aide de la méthode App::setLocale() :
use Illuminate\Support\Facades\App;
App::setLocale('fr'); // Définit la langue sur le français
Utiliser les traductions dans vos vues
Pour afficher des traductions dans vos vues ou contrôleurs, utilisez la fonction __(‘key’) ou trans(‘key’) :
<h1>{{ __('messages.welcome') }}</h1>
<p>{{ __('messages.goodbye') }}</p>
Dépendances supplémentaires (optionnelles)
Laravel 11 n’a pas besoin de dépendances tierces pour la gestion des langues. Cependant, certaines bibliothèques peuvent vous aider si vous avez des besoins avancés :
Laravel Lang : Fournit des fichiers de traduction pour plusieurs langues pour les messages par défaut de Laravel (validation, erreurs, etc.). “Lien GitHub”
Installation via Composer :
composer require laravel-lang/lang
Spatie Laravel Translatable : Si vous souhaitez gérer des traductions dans votre base de données, cette bibliothèque est idéale. Lien GitHub
composer require spatie/laravel-translatable
Exemple : Gérer des langues dans un projet Laravel 11
- Publiez le dossier lang.
- Ajoutez vos fichiers de traduction.
- Permettez aux utilisateurs de changer de langue via une route ou une session.
- Utilisez des traductions dans vos vues et vos contrôleurs.
Avec ces étapes, vous pouvez configurer un système multilingue complet dans Laravel 11, sans ou avec très peu de dépendances supplémentaires.