Transmission des données de la base de données aux fichiers de langue CodeIgniter
Lors du développement d'un site Web multilingue avec CodeIgniter, l'intégration du contenu de la base de données dans les fichiers de langue devient cruciale. Ceci peut être réalisé en créant et en remplissant une table de base de données avec des informations de traduction, puis en utilisant une fonction de contrôleur pour générer dynamiquement des fichiers de langue basés sur les données de la base de données.
1. Conception de base de données
Créez une table nommée lang_token avec les colonnes suivantes :
Remplir le tableau avec la traduction données.
2. Structure des fichiers de langue CodeIgniter
Les fichiers de langue dans CodeIgniter doivent être stockés dans des dossiers dans le répertoire application/langue. Chaque dossier de langue doit contenir un fichier PHP avec la structure :
<code class="php"><?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); /** * * Created: <timestamp> by <author> * * Description: <Language Name> language file for <category> * */ $lang = array( '<category>_noMail' => 'You must submit a valid email address', '<category>_noUser' => 'You must submit a username' );</code>
Où :
3. Fonction de contrôleur pour générer des fichiers de langue
Créez une fonction de contrôleur qui récupère les données de traduction de la base de données et génère des fichiers de langue à la volée. Cette fonction doit :
<code class="php">function updatelangfile($my_lang) { $this->db->where('lang',$my_lang); $query = $this->db->get('lang_token'); $lang = array(); $langstr = "<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');\n\n\n"; foreach ($query->result() as $row) { $langstr .= "$lang['{$row->category}_{$row->description}'] = \"{$row->token}\";\n"; } write_file('./application/language/' . $my_lang . '/general_lang.php', $langstr); }</code>
4. Appel de la fonction du contrôleur
Pour générer des fichiers de langue de manière dynamique, appelez la fonction updatelangfile chaque fois que des modifications sont apportées à la base de données, par exemple :
<code class="php">function updateLanguages() { $this->updatelangfile('english'); }</code>
5. Utilisation des fichiers de langue
Votre application peut désormais charger et utiliser les fichiers de langue générés dynamiquement à l'aide de la méthode de chargement de la classe de langage, par exemple :
<code class="php">$this->lang->load('general', 'english');</code>
En suivant ces étapes, vous pouvez intégrer de manière transparente le contenu de la base de données dans vos fichiers de langue CodeIgniter, permettant ainsi la localisation de votre site Web.
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!