Créer un site Web multilingue en PHP à l’aide du framework Laravel
Vous souhaitez créer un site web multilingue en PHP? Un site Web multilingue permet d’augmenter les audiences de plusieurs régions. Dans cet article, nous étudions comment créer un site Web multilingue en PHP à l’aide du framework Laravel.
Laravel a une fonctionnalité intégrée de localisation. La localisation linguistique est le processus de traduction du contenu dans différentes langues. En utilisant cette fonctionnalité intégrée de Laravel, nous pouvons ajouter la prise en charge de plusieurs langues sur le site Web de Laravel.
Dans Laravel, vous pouvez facilement récupérer des chaînes dans différentes langues, grâce auxquelles vous pouvez prendre en charge plusieurs langues dans l’application.
Il existe 2 façons de définir des chaînes de traduction dans Laravel – en utilisant des touches courtes et en utilisant des chaînes de traduction comme clés. Jetons-y un coup d’œil un par un.
Traduction Laravel à l’aide de touches courtes
Pour commencer, vous devez d’abord connaître les structures de répertoires utilisées pour la traduction dans Laravel.
Disons que vous devez ajouter la prise en charge de la langue « allemande ». Alors, créez un répertoire ‘de’ dans le dossier ‘ressources/lang’.
Il est recommandé d’utiliser le nom du dossier selon le territoire selon les valeurs ISO. Vous pouvez obtenir la liste des codes pour les langues ici.
Créez un fichier messages.php
dans le dossier ‘de’. Ce fichier contient un tableau de chaînes codées. Vous trouverez ci-dessous l’exemple où nous utilisons la traduction allemande du mot anglais « welcome ».
<?php
return [
'welcome' => 'Herzlich willkommen',
];
Ici, « bienvenue » est une clé définie par l’utilisateur. Cette clé sera utilisée pour récupérer les chaînes de traduction en langue allemande. Vous pouvez ajouter autant de clés dans ce fichier. Lors de l’ajout de clés, vous devez utiliser des clés uniques dans le tableau. Les clés en double entraîneront une mauvaise traduction.
Le processus ci-dessus est simple si votre site Web n’a pas beaucoup de contenu. Mais, si votre site Web est assez riche en contenu, il sera difficile de conserver des clés uniques. Dans de tels cas, optez pour la deuxième option consistant à transmettre des chaînes de traduction en tant que clés.
Utilisation de chaînes de traduction comme clés
Dans cette approche, vous n’avez pas besoin de transmettre une clé unique. Ce que vous devez faire est de créer un fichier de.json
dans le répertoire ‘resources/lang’. Ensuite, dans ce fichier JSON, transmettez la chaîne de traduction en tant que clés.
Par exemple, vous voulez une traduction allemande de la phrase anglaise « Comment allez-vous ? » puis dans le de.json
fichier ajoutez la paire ci-dessous.
{
"How are you?": "Wie geht es dir?"
}
La clé de la chaîne de traduction doit correspondre exactement à ce que vous voulez traduire. Ce sera beaucoup plus facile car dans le code, vous devez passer directement une chaîne de traduction.
Définir la langue du site Web Laravel
Lorsque nous installons Laravel, la langue par défaut définie est ‘en’. Pour changer la langue par défaut, ouvrez le config/app.php
fichier. Recherchez la clé « locale » et définissez le code de langue. Dans notre cas, ce sera 'locale' => 'de'
.
Alternativement, vous pouvez définir le language runtime à l’aide de la setLocale
méthode de App
façade. Dans le code ci-dessous, j’ai défini la langue dans le constructeur.
use App;
public function __construct() {
App::setLocale('de');
}
Obtenir des chaînes de traduction et les remplacer
Pour obtenir le texte traduit à partir des fichiers de langue, Laravel a fourni une méthode d’assistance ”. Dans le code ci-dessous, je récupère les chaînes de traduction à la fois messages.php
et de.json
dans le fichier blade.
{{ __('messages.welcome') }} //Output, Herzlich willkommen
{{ __('How are you?') }} //Output, Wie geht es dir?
Dans le contrôleur, vous pouvez obtenir la chaîne de traduction en utilisant la echo
fonction.
echo __('messages.welcome');
echo __('How are you?');
Espaces réservés dans les chaînes de traduction
Laravel explore également les fonctionnalités de traduction où vous pouvez passer des espaces réservés dans les chaînes de traduction.
'welcome' => 'Welcome, :name',
Ou en de.josn
fichier,
{
"How are you?": "Wie geht es dir, :name?"
}
Pour remplacer les espaces réservés dans l’application, nous devons écrire le code comme suit.
{{ __('messages.welcome', ['name' => 'John']) }}
{{ __('How are you?', ['name' => 'John']) }}
Si nous écrivons un espace réservé comme ‘:NAME’ la sortie serait ‘JOHN’ et pour ‘:Name’ la sortie serait ‘John’.
J’espère que vous comprenez comment créer un site Web multilingue en PHP en utilisant le framework Laravel. S’il vous plaît partager vos pensées et suggestions dans la section commentaires ci-dessous.
Articles Liés
- Un guide pour télécharger et compresser des images dans Laravel
- Comment installer et utiliser CKEditor dans Laravel
- Comment utiliser Laravel Tinker