comment publier le répertoire lang dans le framework Laravel 11

comment publier le répertoire lang dans le framework Laravel 11

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.

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

  1. Publiez le dossier lang.
  2. Ajoutez vos fichiers de traduction.
  3. Permettez aux utilisateurs de changer de langue via une route ou une session.
  4. 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.

par