Maison  >  Article  >  développement back-end  >  Comment utiliser les fonctions PHP pour traiter des sites Web multilingues

Comment utiliser les fonctions PHP pour traiter des sites Web multilingues

PHPz
PHPzoriginal
2023-06-16 08:25:361394parcourir

À l’ère d’Internet d’aujourd’hui, créer un site Web multilingue est très courant. Afin d'augmenter l'audience du site Web, de nombreuses entreprises ou particuliers choisiront de créer des versions multilingues du site Web. Dans ce cas, la manière de traiter plus efficacement les problèmes multilingues est devenue un sujet très important. Dans cet article, nous nous concentrerons sur la façon d'utiliser les fonctions PHP pour traiter des sites Web multilingues.

  1. Comprendre les principes des sites Web multilingues

Avant de commencer à présenter la méthode de traitement de PHP, comprenez d'abord les principes des sites Web multilingues. De manière générale, les sites Web multilingues sélectionneront d'abord la version linguistique correspondante en fonction des préférences linguistiques du navigateur de l'utilisateur, puis traduiront et afficheront le contenu de la page. Dans ce cas, comment implémenter la prise en charge de plusieurs versions linguistiques ?

À ce stade, nous choisirons de placer les ressources linguistiques du site Web dans un package linguistique distinct et d'utiliser certains identifiants pour indexer les ressources dans différentes versions linguistiques. Ce module linguistique est généralement un format de fichier spécifique, tel que XML, JSON, etc. Toutes les chaînes qui doivent être traduites utiliseront cet identifiant pour faire référence à la ressource linguistique correspondante.

Par exemple, dans la version anglaise du site Web, la chaîne « about us » peut être exprimée comme « $LANG['about_us'] », et dans la version chinoise du site Web, la chaîne « about us » peut être exprimé sous la forme "$LANG['about_us']", les fichiers de ressources linguistiques correspondant aux deux sont :

//en.xml
<?xml version="1.0" encoding="utf-8"?>
<language>
    <string id="about_us">About Us</string>
</language>

//zh_CN.xml
<?xml version="1.0" encoding="utf-8"?>
<language>
    <string id="about_us">关于我们</string>
</language>
  1. Utilisation des fonctions PHP pour traiter des sites Web multilingues

Avec la stratégie d'analyse linguistique ci-dessus, nous pouvons utiliser les fonctions PHP pour traiter des sites Web multilingues. Voici quelques fonctions PHP couramment utilisées :

(1) simplexml_load_file() : utilisée pour analyser les fichiers XML et les convertir en objets SimpleXMLElement pour faciliter les opérations d'analyse.

(2) json_decode() : utilisé pour analyser les fichiers de ressources de langage au format json en objets ou tableaux php pour faciliter les opérations d'analyse.

(3)_() : utilisé pour obtenir la chaîne de traduction dans le fichier de ressources de langue correspondant, généralement utilisé dans les fichiers modèles, par exemple :

<p><?php echo _("about_us"); ?></p>

Cette fonction sélectionnera automatiquement le fichier de ressources de langue correspondant en fonction de la langue de l'utilisateur actuel settings , et renvoie la chaîne de traduction correspondant à l'identifiant.

(4) Fonction eval() : Cette fonction peut exécuter du code PHP sous la forme d'une chaîne et peut être utilisée pour générer dynamiquement des fonctions de traduction multilingues ou des fichiers de ressources linguistiques. Cependant, comme eval peut facilement causer des problèmes de sécurité, vous devez faire attention lorsque vous l'utilisez.

  1. Exemple de code pour implémenter un site Web multilingue

Ce qui suit est un exemple de code simple pour implémenter un site Web multilingue :

<?php
    //获取当前用户的语言偏好设置
    $user_lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
    //定义语言文件路径
    $lang_file = './lang/'.$user_lang.'.json';
    //解析语言文件
    if(!file_exists($lang_file)){
        $lang_file = './lang/en.json';//找不到则默认用英文
    }
    $lang_json = file_get_contents($lang_file);
    $lang = json_decode($lang_json, true);

    //定义翻译函数,用于获取对应的翻译串
    function __($id){
        global $lang;
        return isset($lang[$id]) ? $lang[$id] : $id;
    }
?>

<!--html代码-->
<html>
    <head>
        <title><?php echo __('website_title'); ?></title>
    </head>
    <body>
        <h1><?php echo __('welcome_to_website'); ?></h1>
        <p><?php echo __('about_us'); ?></p>
        <p><?php echo __('contact_us'); ?></p>
    </body>
</html>

Dans cet exemple, nous sélectionnons d'abord le fichier de langue correspondant en fonction des paramètres de préférence de langue de l'utilisateur et analysons le fichier de ressources de langage au format json. Définissez ensuite une fonction de traduction __($id) pour obtenir la chaîne de traduction correspondante. Enfin, nous utilisons __('string identifier') dans le code HTML pour la traduction multilingue.

Grâce à cette conception, nous pouvons facilement mettre en œuvre un site Web multilingue, réduire la complexité du changement de langue des pages et rendre le développement de pages plus facile et plus pratique. Bien entendu, lors de la mise en œuvre d’un site Web multilingue, vous devez également faire attention à certains détails, tels que la gestion des ressources linguistiques, la maintenance des packages linguistiques, etc. Mais en général, cette méthode permet de créer rapidement et efficacement un site Web multilingue, ce qui apporte une grande commodité au développement de nos pages.

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