Maison >base de données >tutoriel mysql >Comment la création dynamique de fichiers de langue peut-elle être implémentée dans CodeIgniter pour les sites Web multilingues ?

Comment la création dynamique de fichiers de langue peut-elle être implémentée dans CodeIgniter pour les sites Web multilingues ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-30 09:30:03641parcourir

How can dynamic language file creation be implemented in CodeIgniter for multi-language websites?

Création de fichiers de langue dynamique pour des sites Web multilingues à l'aide de CodeIgniter

Problème :

Quand En créant un site en ligne multilingue avec CodeIgniter, les utilisateurs peuvent rencontrer le défi de transmettre des données d'une base de données vers des fichiers de langue. La classe de langage intégrée ne prend pas en charge nativement l'intégration de bases de données.

Solution :

Disposition de la base de données :

Créez une table appelée lang_token avec des colonnes pour stocker les informations relatives à la langue :

CREATE TABLE IF NOT EXISTS `lang_token` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `category` text NOT NULL,
      `description` text NOT NULL,
      `lang` text NOT NULL,
      `token` text NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

Structure des fichiers de langue CodeIgniter :

Les sous-répertoires anglais ou allemand, etc. doivent être créés dans le répertoire application/langue. Chaque langue doit être stockée dans son propre dossier.

Création de fichiers de langue à la volée :

Une fonction personnalisée updatelangfile() peut être créée dans un contrôleur pour générer une langue. fichiers de manière dynamique :

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');
                /**
                *
                * Created:  2014-05-31 by Vickel
                *
                * Description:  ".$my_lang." language file for general views
                *
                */"."\n\n\n";



        foreach ($query->result() as $row){
            //$lang['error_csrf'] = 'This form post did not pass our security checks.';
            $langstr.= "$lang['".$row->category."_".$row->description."'] = \"$row->token\";"."\n";
        }
        write_file('./application/language/'.$my_lang.'/general_lang.php', $langstr);

    }

Utilisation :

Chaque fois que des modifications sont apportées à la base de données, cette fonction peut être appelée pour mettre à jour les fichiers de langue correspondants :

$this->updatelangfile('english');

Remarques :

N'oubliez pas de charger ce qui suit dans le constructeur du contrôleur :

$this->load->helper('file');
$this->lang->load('general', 'english');

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