Maison  >  Article  >  développement back-end  >  Comment créer des itinéraires traduits multilingues dans Laravel ?

Comment créer des itinéraires traduits multilingues dans Laravel ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-04 03:01:30155parcourir

How to Create Multilingual Translated Routes in Laravel?

Création d'itinéraires traduits multilingues dans Laravel

Dans les applications Laravel, vous pouvez créer des itinéraires multilingues qui dépendent de la langue sélectionnée, permettant à un utilisateur -expérience de navigation conviviale.

Étape 1 : Configurer les répertoires de langues et les traductions

Créez trois répertoires de langues distincts sous app/lang (par exemple, pl, en, fr). Dans chaque répertoire, créez un fichier nommé routes.php qui contient les noms de routes traduits :

<code class="php">// app/lang/pl/routes.php
return array(
    'contact' => 'kontakt',
    'about' => 'o-nas'
);</code>
<code class="php">// app/lang/en/routes.php
return array(
    'contact' => 'contact',
    'about' => 'about-us'
);</code>
<code class="php">// app/lang/fr/routes.php
return array(
    'contact' => 'contact-fr',
    'about' => 'about-fr'
);</code>

Étape 2 : Configurer les paramètres de langue

Dans app/config/app.php :

  • Définissez 'locale' sur votre langue par défaut (par exemple, 'pl').
  • Incluez la liste des langues alternatives dans 'alt_langs ' (par exemple, ['en', 'fr']).
  • Laissez 'locale_prefix' vide pour le préfixe de langue par défaut.
<code class="php">'locale' => 'pl',
'alt_langs' => ['en', 'fr'],
'locale_prefix' => '',</code>

Étape 3 : Définir des modèles de route et un groupe dépendant de la langue

Dans app/routes.php :

  • Si le premier segment de l'URL correspond à une autre langue, mettez à jour les paramètres régionaux et locale_prefix .
  • Définissez des modèles d'itinéraire en fonction des traductions linguistiques actuelles.
  • Créez un groupe d'itinéraires avec le préfixe de langue appliqué.
<code class="php">if (in_array(Request::segment(1), Config::get('app.alt_langs'))) {

    App::setLocale(Request::segment(1));
    Config::set('app.locale_prefix', Request::segment(1));
}

foreach(Lang::get('routes') as $k => $v) {
    Route::pattern($k, $v);
}

Route::group(array('prefix' => Config::get('app.locale_prefix')), function() {

    Route::get('/', function () {
        return "main page - ".App::getLocale();
    });

    Route::get('/{contact}/', function () {
        return "contact page ".App::getLocale();
    });

    Route::get('/{about}/', function () {
        return "about page ".App::getLocale();
    });

});</code>

Étape 4 : Gérer les URL inconnues

Dans app/start/global.php :

  • Rediriger toutes les URL inconnues vers le préfixe de langue correct avec un code d'état 301 :
<code class="php">App::missing(function() {
   return Redirect::to(Config::get('app.locale_prefix'), 301);
});</code>

En mettant en œuvre ces étapes, vous créerez des itinéraires dynamiques qui s'adaptent à la langue sélectionnée, garantissant une expérience utilisateur transparente dans plusieurs langues.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn