Transmission de données de la base de données aux fichiers de langue Codeigniter
Dans votre quête pour créer un site Web multilingue avec Codeigniter, vous envisagez à juste titre d'utiliser un base de données pour gérer le contenu linguistique. Cet article vous guidera à travers les étapes spécifiques pour y parvenir.
Structure de la base de données et fichiers de langue
Tout d'abord, configurez une table de base de données nommée lang_token pour stocker les jetons de langue. Remplissez-le avec des colonnes pour l'identifiant, la catégorie, la description, la langue et le jeton. Par exemple, créez des jetons anglais comme :
| id | category | description | lang | token | |---|---|---|---| | 1 | error | noMail | english | You must submit a valid email address | | 2 | error | noUser | english | You must submit a username |
Ensuite, organisez les fichiers de langue dans des sous-répertoires au sein de l'application/langue (par exemple, application/langue/anglais).
Fichiers de langue Codeigniter Structure
Les fichiers de langue suivent une structure spécifique :
$lang['category_description'] = 'token';
Par exemple, dans application/langue/english/general_lang.php :
$lang['error_noMail'] = 'You must submit a valid email address'; $lang['error_noUser'] = 'You must submit a username';
Fonction de contrôleur pour la génération dynamique de fichiers de langue
Pour créer dynamiquement des fichiers de langue à partir de la base de données, créez une fonction de contrôleur comme celle-ci :
function updatelangfile($my_lang){ $query = $this->db->where('lang', $my_lang)->get('lang_token'); $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); }
Utilisation
Chaque fois que vous mettez à jour votre base de données, appelez la fonction updatelangfile('english') pour régénérer le fichier de langue.
Notes supplémentaires
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!