Maison > cadre php > PensezPHP > Comment utiliser ThinkPHP6 pour des opérations de traduction multilingues ?

Comment utiliser ThinkPHP6 pour des opérations de traduction multilingues ?

王林
Libérer: 2023-06-12 08:49:40
original
1145 Les gens l'ont consulté

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.

  1. Configurer le pack de langue

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/
Copier après la connexion

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
Copier après la connexion

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' => '退出登录',
];
Copier après la connexion

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',
];
Copier après la connexion
  1. Lire le pack de langue

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();
Copier après la connexion

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
Copier après la connexion

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');
Copier après la connexion

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.

  1. Utilisation de traducteurs

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>
Copier après la connexion

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>
Copier après la connexion

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.

  1. Ajouter une traduction personnalisée

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 thinkacadeLang;

Lang::load([
    'validation.custom' => [
        'email' => [
            'required' => '请填写邮箱地址',
            'email' => '请输入有效的邮箱地址',
        ],
    ],
]);
Copier après la connexion

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.

  1. Résumé

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal