Avec le développement de la mondialisation, de plus en plus de sites Web et d'applications doivent fournir un support multilingue. Pour les développeurs utilisant le framework ThinkPHP6, la manière de mettre en œuvre des opérations de traduction multilingues est une exigence importante. Cet article explique comment utiliser ThinkPHP6 pour les opérations de traduction multilingues.
Dans ThinkPHP6, un pack de langue est un tableau contenant des paires clé-valeur. Cela peut être stocké dans divers sous-répertoires du répertoire app/lang/. Par exemple :
/app/lang/zh-cn/ /app/lang/en-us/
Parmi eux, zh-cn et en-us sont les noms des packages linguistiques, et les traductions de cette version linguistique doivent être stockées dans leurs répertoires correspondants. Dans le répertoire du pack de langue, il y a généralement un fichier app.php ou validation.php, qui correspond respectivement à la traduction de l'application et à la validation du formulaire.
Par exemple :
/app/lang/zh-cn/app.php /app/lang/en-us/app.php
Dans ces deux fichiers, des paires clé-valeur seront définies pour traduire le texte dans l'application. Par exemple, un simple fichier app.php pourrait ressembler à ceci :
<?php return [ 'welcome' => '欢迎', 'login' => '登录', 'logout' => '退出登录', ];
Trois paires clé-valeur sont définies ici, qui sont utilisées pour traduire le texte "Bienvenue", "Connexion" et "Déconnexion" dans l'application. Pour la version anglaise, vous pouvez créer un fichier en-us/app.php et remplacer la traduction chinoise ci-dessus par la traduction anglaise :
<?php return [ 'welcome' => 'Welcome', 'login' => 'Log in', 'logout' => 'Log out', ];
Dans l'application, vous devez généralement le définir en fonction aux paramètres de langue de l'utilisateur. Lisez le pack de langue correspondant. Vous pouvez utiliser le code suivant pour obtenir le paramètre de langue actuel :
$lang = $request->lang();
La méthode lang() de l'objet $request est utilisée ici, qui peut obtenir le paramètre lang dans l'objet request. Habituellement, ce paramètre stockera le paramètre de langue de l'utilisateur, par exemple :
http://example.com/?lang=zh-cn http://example.com/?lang=en-us
Si le paramètre lang n'est pas spécifié ici, le paramètre de langue de l'utilisateur peut être deviné en lisant l'en-tête Accept-Language du navigateur.
Ensuite, vous pouvez utiliser la fonction lang() pour lire le module linguistique actuel, par exemple :
$lang = $request->lang(); app()->setLocale($lang); $translations = lang('app');
La fonction app() est utilisée ici pour obtenir l'objet d'application, puis définir les paramètres régionaux actuels via son setLocale() méthode . Enfin, utilisez la fonction lang() pour lire le module linguistique, qui renvoie un tableau contenant toutes les traductions dans les paramètres régionaux actuels.
Avec un pack de langue et un tableau de traduction, vous pouvez utiliser des traductions dans votre application. Par exemple, vous pouvez utiliser des balises dans les modèles pour obtenir des traductions :
<p>{{ __('app.welcome') }}</p>
Ici, la fonction __ est utilisée pour obtenir des traductions. La fonction __ analysera la chaîne entrante dans un tableau selon la méthode des points, puis trouvera la traduction correspondante dans le tableau de traduction.
Si aucune traduction correspondante n'est trouvée, la fonction __ renverra la chaîne d'origine. Par conséquent, vous pouvez transmettre la chaîne anglaise dans la fonction __ comme valeur par défaut, par exemple :
<p>{{ __('app.welcome', ['default' => 'Welcome']) }}</p>
Un paramètre par défaut est spécifié ici et sa valeur est « Bienvenue ». Si la traduction correspondant à la touche 'bienvenue' n'est pas trouvée dans le tableau de traduction, la fonction __ renverra cette valeur par défaut.
Parfois, vous devez ajouter des traductions personnalisées, telles que des messages d'erreur de validation de formulaire. Vous pouvez utiliser le code suivant pour ajouter des traductions personnalisées :
use thinkacadeLang; Lang::load([ 'validation.custom' => [ 'email' => [ 'required' => '请填写邮箱地址', 'email' => '请输入有效的邮箱地址', ], ], ]);
La méthode load() de la classe Lang est utilisée ici pour ajouter des traductions personnalisées. La méthode load() accepte un tableau comme paramètre, qui est organisé en fonction de la structure du package linguistique et est utilisé pour ajouter des traductions personnalisées.
Dans l'exemple ci-dessus, un pack de langue validation.custom est ajouté, qui contient une traduction personnalisée pour la clé « email ». Ces traductions remplaceront les traductions par défaut du système.
Utiliser ThinkPHP6 pour des opérations de traduction multilingues est très pratique. Préparez simplement le pack de langue, puis lisez-le et utilisez la traduction. Si vous devez ajouter des traductions personnalisées, c'est très simple. La prise en charge multilingue améliore non seulement la convivialité des applications, mais répond également mieux aux besoins des utilisateurs et augmente l'expérience utilisateur.
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!