Maison >cadre php >PensezPHP >thinkphp implémente la commutation entre le chinois et l'anglais

thinkphp implémente la commutation entre le chinois et l'anglais

王林
王林original
2023-05-29 09:28:371342parcourir

Avec l'accélération de la mondialisation, de plus en plus de sites Web doivent proposer des fonctions de commutation entre le chinois et l'anglais pour s'adapter aux besoins des différents utilisateurs. Dans le développement de sites Web, la manière d'utiliser un cadre pratique pour implémenter cette fonction de commutation est devenue le centre de recherche d'innombrables développeurs. Cet article utilisera le framework thinkphp pour présenter comment l'utiliser pour basculer entre le chinois et l'anglais.

1. Paramètres du package de langue

Nous savons que la gestion des packages de langue dans thinkphp est gérée sous forme de paires clé-valeur, où le nom de la clé est la constante du langage et la valeur de la clé est la chaîne correspondant à la constante. . Par conséquent, nous préparons d’abord deux packs de langue : l’un est le pack de langue chinoise et l’autre est le pack de langue anglais. Ce que j'ai configuré ici, ce sont deux packs de langue, zh-cn et en-us, zh-cn est le pack de langue chinoise et en-us est le pack de langue anglais. Leurs répertoires racines sont exactement les mêmes que le répertoire de l'application, comme indiqué ci-dessous :

├─application
│  ├─en-us
│  │  └─lang.php
│  └─zh-cn
│      └─lang.php
└─...

Parmi eux, le format du fichier lang.php est le suivant :

<?php
return [
    'key' => 'value',
    'hello' => '你好',
    'world' => '世界',
];

Ici j'ai ajouté 'hello' => 'hello' et ' world' => Les deux constantes 'World' correspondent respectivement au contenu du pack de langue chinoise et du pack de langue anglais. De cette façon, nous pouvons ensuite basculer et utiliser ces deux packages linguistiques ensemble via le framework thinkphp.

2. Opérations de commutation en chinois et en anglais

Nous pouvons encapsuler les opérations de commutation en chinois et en anglais dans un contrôleur pour faciliter la commutation entre différentes vues. Ici, j'ai créé un contrôleur de langue et ajouté la méthode d'opération switch_lang. Le code est le suivant :

namespace appindexcontroller;

use thinkController;

class Language extends Controller
{
    public function switch_lang($lang = 'zh-cn')
    {
        if ($lang == 'en-us') {
            cookie('think_var', 'en-us', 3600);
        } else {
            cookie('think_var', 'zh-cn', 3600);
        }
        return $this->redirect($_SERVER['HTTP_REFERER']);
    }
}

Cette méthode obtiendra d'abord le paramètre de changement de langue $lang. S'il s'agit de "en-us", définissez think_var dans le cookie. « en-us » signifie passer au pack de langue anglais ; sinon, définir think_var sur « zh-cn » signifie passer au pack de langue chinois. Utilisez ensuite la méthode de redirection pour rediriger vers la page précédemment visitée afin que l'utilisateur puisse visualiser l'effet de changement de langue en temps réel.

3. Afficher le changement de langue

Avec le package de langue et le contrôleur de changement de langue, nous pouvons utiliser la fonction lang fournie avec thinkphp pour changer de langue dans le fichier d'affichage. La fonction lang obtiendra le contenu du module linguistique correspondant en fonction de la valeur de think_var. Par exemple, nous ajoutons le code suivant au fichier de vue :

<button><a href="{:url('language/switch_lang', ['lang' => cookie('think_var') == 'zh-cn' ? 'en-us' : 'zh-cn'])}">{$lang.button}</a></button>

Dans ce code, nous utilisons la fonction url pour générer un lien de changement de langue et convertissons le think_var dans le cookie en une chaîne chinoise et anglaise pour afficher le chinois et Boutons anglais. Dans le même temps, nous avons également obtenu les constantes du bouton dans le package de langue lang, qui sont utilisées pour afficher le texte en chinois et en anglais sur le bouton. De cette manière, une fois que l'utilisateur a cliqué sur le bouton, la logique de changement de langue a été traitée dans le contrôleur. Le fichier d'affichage obtiendra automatiquement le contenu du module linguistique correspondant en fonction de la valeur de think_var dans le cookie et l'affichera à l'utilisateur.

Conclusion

Cet article explique principalement comment utiliser le framework thinkphp pour implémenter la fonction de commutation entre le chinois et l'anglais. Grâce aux paramètres du module linguistique, aux opérations de changement de langue et à l'affichage des opérations de changement de langue, nous pouvons facilement mettre en œuvre les fonctions de commutation de base en chinois et en anglais. Bien entendu, nous pouvons encore améliorer cette fonction, par exemple en utilisant une base de données pour stocker les types de langues dans différents pays, en utilisant une méthode de gestion des modules linguistiques plus flexible, etc. Dans tous les cas, pendant le processus de développement lui-même, nous devons fournir aux utilisateurs d'excellentes fonctions de changement de langue autant que possible pour répondre aux besoins des utilisateurs ayant des antécédents linguistiques différents.

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