Maison > base de données > tutoriel mysql > le corps du texte

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

Mary-Kate Olsen
Libérer: 2024-10-30 00:32:02
original
521 Les gens l'ont consulté

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 |
Copier après la connexion

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';
Copier après la connexion

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';
Copier après la connexion

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);
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!