Maison  >  Article  >  base de données  >  Comment générer dynamiquement des fichiers de langage CodeIgniter à partir d'une base de données ?

Comment générer dynamiquement des fichiers de langage CodeIgniter à partir d'une base de données ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-30 00:32:02523parcourir

How to Dynamically Generate CodeIgniter Language Files from a Database?

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

  • Chargez le File Helper et la Language Class dans le constructeur du contrôleur.
  • Utilisez un préfixe commun pour les catégories de messages dans les fichiers de langue afin d'éviter les conflits.

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