Skip to main content

Qu’est-ce que la localisation

La localisation de Laravel offre un mécanisme pratique pour récupérer des chaînes traduites dans plusieurs langues. Utile pour prendre en charge plusieurs langues dans votre application. Deux formats sont disponibles :
Le répertoire lang n’existe pas par défaut. Publiez-le via lang:publish.

Configuration de la locale

Locale par défaut

Définie via locale dans config/app.php, typiquement pilotée par APP_LOCALE.
fallback_locale : locale utilisée en secours si la traduction n’existe pas.

Changer la locale à l’exécution

App::setLocale() change la locale pour la requête.

Consulter la locale actuelle

Créer les fichiers de langue

Format PHP

Créez un fichier PHP dans lang/{code}/. Retournez un tableau clé/valeur.
Pour les variantes régionales, respectez ISO 15897. Par exemple, anglais britannique = en_GB, pas en-gb.

Format JSON

Recommandé quand il y a beaucoup de chaînes. Créez lang/{code}.json.
Les clés sont les chaînes en langue par défaut (anglais).
En JSON, la chaîne anglaise sert de clé, ce qui garantit un affichage anglais par défaut. Si un fichier de langue manque, la clé (texte anglais) apparaît telle quelle.

Choix entre PHP et JSON

  • Organisation par fonctionnalité (messages de validation, etc.)
  • Personnalisation des traductions intégrées de Laravel (validation.php, auth.php)
  • Besoin d’une hiérarchie de clés
  • Beaucoup de textes d’UI, sans envie d’inventer des clés
  • On écrit l’anglais dans les templates et on gère les autres langues via traduction
  • Internationalisation ajoutée après coup

Lire les traductions

Helper __()

Le plus courant. En PHP, notation fichier.clé.
Si la traduction est absente, la clé est renvoyée telle quelle.

Dans Blade

Utilisez {{ __() }}.
La directive @lang est dépréciée. Utilisez {{ __() }}.

Placeholders

Vous pouvez inclure des placeholders :nom.
Passez le tableau de remplacements en 2ᵉ argument.
Idem dans Blade.

Pluralisation

Les règles de pluriel varient selon la langue. Laravel utilise | pour distinguer singulier et pluriel.

Pluriel simple

Idem en JSON :
Passez la quantité à trans_choice().

Plages

Vous pouvez préciser des plages.

Placeholders dans le pluriel

:count affiche la quantité. Passez d’autres valeurs en 3ᵉ argument.

Surcharger un fichier de langue d’un package

Pour surcharger un fichier fourni par un package tiers, placez un fichier de même nom dans lang/vendor/{package}/{locale}/. Pour personnaliser les messages anglais du package skyrim/hearthfire :

Exemple : middleware français / anglais

Middleware qui bascule la locale selon la session, la préférence utilisateur ou l’URL.
1

Créer le middleware

2

Implémenter

3

Enregistrer le middleware

Dans bootstrap/app.php.
4

Route de changement de locale

5

Boutons de switch dans Blade

Exemple d’organisation des fichiers

Récapitulatif

Dernière modification le 13 juillet 2026