codeigniter
CodeIgniter - Internationalisation
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.
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.