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
Libérer: 2024-10-30 09:30:03
original
631 Les gens l'ont consulté

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

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);

    }
Copier après la connexion

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

Remarques :

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

$this->load->helper('file');
$this->lang->load('general', 'english');
Copier après la connexion

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