Maison >cadre php >PensezPHP >Utiliser l'internationalisation dans ThinkPHP6

Utiliser l'internationalisation dans ThinkPHP6

PHPz
PHPzoriginal
2023-06-20 13:11:261209parcourir

Avec le processus de mondialisation, de plus en plus de sites Web et d'applications doivent prendre en charge plusieurs langues afin d'attirer des utilisateurs et des clients multinationaux. ThinkPHP6 fournit de puissantes fonctions d'internationalisation, permettant aux développeurs de mettre en œuvre facilement une prise en charge multilingue. Cet article présentera les étapes et les techniques d'utilisation de l'internationalisation dans ThinkPHP6.

  1. Configurer le package linguistique

Dans ThinkPHP6, le package linguistique consiste à classer tous les textes qui doivent être traduits dans l'application et à les enregistrer dans des fichiers spécifiques, afin que notre application puisse facilement changer de version linguistique. Dans le fichier app.php sous le répertoire de configuration, il existe une option « lang_switch_on », que nous avons définie sur true pour activer la fonctionnalité du pack de langue.

'lang_switch_on' => true,

Ensuite, nous devons créer un fichier lang.php dans le répertoire config pour configurer notre pack de langue. L'exemple de contenu est le suivant :

return [

'zh-cn' => [
    'name' => '姓名',
    'age' => '年龄',
    'email' => '邮箱'
],
'en-us' => [
    'name' => 'Name',
    'age' => 'Age',
    'email' => 'Email'
]

] ;

Dans le code ci-dessus, nous définissons deux versions linguistiques dans le tableau du module linguistique : chinois simplifié (« zh-cn ») et anglais (« en-us »). ') , chaque version linguistique possède son propre texte traduit, tel que le nom (« nom »), l'âge (« âge ») et l'adresse e-mail (« email »).

  1. Utilisation des fonctions d'assistance Lang

Une fois le pack de langue configuré, nous pouvons utiliser la fonction d'assistance Lang pour référencer le texte traduit dans l'application. La fonction d'assistance Lang fournit trois paramètres : le nom de clé du package linguistique, la variable de substitution et la version linguistique. L'exemple de code est le suivant :

//Obtenir la version linguistique actuelle
$lang = Lang::getLangSet();

//Utilisez la fonction d'assistance Lang pour obtenir le texte traduit
echo Lang::get('name ', [], $lang );

Dans le code ci-dessus, nous utilisons d'abord la fonction Lang::getLangSet() pour obtenir la version linguistique actuelle, puis appelons la fonction Lang::get() pour obtenir la traduction du nom texte dans la version linguistique correspondante. Puisque nous n’avons pas de variables de substitution, le deuxième paramètre est un tableau vide.

Si nous voulons utiliser la fonction d'assistance Lang dans le fichier View, nous pouvons utiliser la syntaxe suivante :

{{$lang = Lang::getLangSet()}}
{{$name = Lang::get(' nom', [], $lang)}}
{{$age = Lang::get('age', [], $lang)}}
{{$email = Lang::get('email', [ ], $lang)}}

  1. Implémentation du routage multilingue

En plus d'utiliser la fonction d'assistance Lang pour référencer le texte traduit, nous pouvons également implémenter la prise en charge multilingue via le routage (Route). Afin de mettre en œuvre un routage multilingue, nous devons configurer les règles de routage correspondantes.

Utilisez le groupe de routes (Route::group) avec '/lang/:lang' comme préfixe, où ':lang' représente la version linguistique. L'exemple de code est le suivant :

Route::group(':lang', function () {

//这里写你的路由规则

})->ext('html')->pattern('lang', '^[a-z ]{2 }-(?:[A-Z]{2})?$');

Dans le code ci-dessus, nous utilisons ':lang' comme préfixe, puis définissons une expression régulière pour correspondre à la version linguistique. Enfin, définissez l'option « ext » pour permettre à la route de prendre en charge l'analyse automatique des suffixes, et définissez l'option « pattern » pour limiter le format de la version linguistique.

Lorsqu'un utilisateur accède à '/', nous pouvons le rediriger vers la version linguistique par défaut de l'itinéraire, telle que '/zh-cn/home'. Nous pouvons également définir des paramètres dans les règles de routage pour une meilleure prise en charge multilingue. L'exemple de code est le suivant :

Route::get(':lang/home', 'home/index');

Dans le code ci-dessus, nous définissons une règle de routage pour ':lang/home' et la mappons au contrôleur et à l'action 'home/index'. De cette manière, lorsque les utilisateurs accèdent à « zh-cn/home » et « en-us/home », ils seront automatiquement acheminés vers les opérations du contrôleur correspondantes.

Conclusion

En utilisant l'internationalisation dans ThinkPHP6, la prise en charge multilingue peut être facilement obtenue. En configurant des modules linguistiques, en utilisant les fonctions d'assistance de Lang et en mettant en œuvre un routage multilingue, nous pouvons créer une application véritablement mondiale qui attire davantage d'utilisateurs de différents pays et régions.

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