Recherche…


Introduction

La classe de langue dans CodeIgniter fournit un moyen facile de prendre en charge plusieurs langues pour l'internationalisation. Dans une certaine mesure, nous pouvons utiliser différents fichiers de langue pour afficher du texte dans de nombreuses langues différentes.

Exemple

Création de fichiers Langue

Pour créer un fichier de langue, vous devez le terminer avec _lang.php . Par exemple, vous voulez créer un fichier de langue pour la langue française, vous devez ensuite l'enregistrer avec french_lang.php . Dans ce fichier, vous pouvez stocker tous vos textes de langue dans la combinaison clé-valeur dans le tableau $lang , comme indiqué ci-dessous.

$lang['key'] = 'val';

Chargement du fichier de langue

Pour utiliser l'une des langues de votre application, vous devez d'abord charger le fichier de cette langue particulière pour récupérer les différents textes stockés dans ce fichier. Vous pouvez utiliser le code suivant pour charger le fichier de langue.

$this->lang->load('filename', 'language');

filename : C'est le nom du fichier que vous voulez charger. N'utilisez pas l'extension de fichier ici, mais uniquement le nom du fichier. Langue : c'est la langue qui la contient.

Récupération du texte de la langue

$this->lang->line('language_key');

Pour extraire une ligne du fichier de langue, exécutez simplement le code suivant. Où language_key est le paramètre clé utilisé pour récupérer la valeur de la clé dans le fichier de langue chargé.

Autoload Languages

Si vous avez besoin d'un langage global, vous pouvez le charger automatiquement dans le fichier application/config/autoload.php comme indiqué ci-dessous.

| -----------------------------------------------------------------------
|  Auto-load Language files
| -----------------------------------------------------------------------
| Prototype:
|   $autoload['language'] = array('lang1', 'lang2');
|
| NOTE: Do not include the "_lang" part of your file. For example
| "codeigniter_lang.php" would be referenced as array('codeigniter');
|
*/
$autoload['language'] = array();

Simplement, passez les différentes langues à charger automatiquement par CodeIgniter.

Créez un contrôleur appelé Lang_controller.php et enregistrez-le dans application/controller/Lang_controller.php

<?php

la classe Lang_controller étend CI_Controller {

public function index(){
     //Load form helper
     $this->load->helper('form');

     //Get the selected language
     $language = $this->input->post('language');
    
     //Choose language file according to selected lanaguage
     if($language == "french")
        $this->lang->load('french_lang','french');
     else if($language == "german")
        $this->lang->load('german_lang','german');
     else
     $this->lang->load('english_lang','english');
    
     //Fetch the message from language file.
     $data['msg'] = $this->lang->line('msg');
    
     $data['language'] = $language;
     //Load the view file
     $this->load->view('lang_view',$data);
     }
  }
?>

Créez un fichier de vue appelé lang_view.php et enregistrez-le à l' application/views/lang_view.php

<!DOCTYPE html>
<html lang = "en"> 
  <head>
     <meta charset = "utf-8">
     <title>CodeIgniter Internationalization Example</title>
  </head>  
  <body>
     <?php
        echo form_open('/lang');
     ?>
     <select name = "language" onchange = "javascript:this.form.submit();">
        <?php
           $lang = array('english'=>"English",'french'=>"French",'german'=>"German");
            
           foreach($lang as $key=>$val) {
              if($key == $language)
                 echo "<option value = '".$key."' selected>".$val."</option>";
              else
                 echo "<option value = '".$key."'>".$val."</option>";
           }           
        ?>          
     </select>
     <?php
        form_close();
        echo $msg;
     ?>     
  </body>
</html>

Créez trois dossiers appelés anglais , français et allemand dans l' application / langue, comme indiqué dans la figure ci-dessous.

internationalisation

Copiez le code ci-dessous et enregistrez-le dans le fichier english_lang.php dans le dossier application/language/english .

<?php
   $lang['msg'] = "CodeIgniter Internationalization example.";
?>

Copiez le code ci-dessous et enregistrez-le dans le fichier french_lang.php dans le dossier application/language/French .

<?php
   $lang['msg'] = "Exemple CodeIgniter internationalisation.";
?>

Copiez le code ci-dessous et enregistrez-le dans le fichier german_lang.php dans le dossier application/language/german .

<?php
    $lang['msg'] = "CodeIgniter Internationalisierung Beispiel.";
?>

Modifiez le fichier routes.php dans application/config/routes.php pour ajouter une route pour le contrôleur ci-dessus et ajoutez la ligne suivante à la fin du fichier.

$route['lang'] = "Lang_controller";

Exécutez l'URL suivante dans le navigateur pour exécuter l'exemple ci-dessus.

http://yoursite.com/index.php/lang

Ensuite, archivez votre navigateur. Je vous remercie.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow