Maison > base de données > tutoriel mysql > 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 ?

DDD
Libérer: 2024-10-27 13:24:30
original
1092 Les gens l'ont consulté

How do I dynamically generate CodeIgniter language files from a database?

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 :

  • id (clé primaire)
  • category (catégorie de la traduction)
  • description (brève description de la traduction)
  • lang (code de langue ISO)
  • jeton (la traduction réelle)

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

Où :

  • est un préfixe pour la catégorie de traduction, par ex. erreur pour les messages d'erreur.
  • est la description de la traduction, par ex. noMail.
  • value est la traduction réelle, par ex. Vous devez soumettre une adresse e-mail valide.

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 :

  • Interroger la table lang_token pour les traductions dans une langue spécifique.
  • Construire une chaîne de fichier de langage PHP basée sur les résultats de la requête.
  • Écrire le fichier de langue dans le répertoire de langue de l'application.
<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>
Copier après la connexion

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

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

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal