Heim >Datenbank >MySQL-Tutorial >Wie kann die dynamische Erstellung von Sprachdateien in CodeIgniter für mehrsprachige Websites implementiert werden?

Wie kann die dynamische Erstellung von Sprachdateien in CodeIgniter für mehrsprachige Websites implementiert werden?

Linda Hamilton
Linda HamiltonOriginal
2024-10-30 09:30:03629Durchsuche

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

Dynamische Sprachdateierstellung für mehrsprachige Websites mit CodeIgniter

Problem:

Wann Beim Aufbau einer mehrsprachigen Online-Site mit CodeIgniter stehen Benutzer möglicherweise vor der Herausforderung, Daten aus einer Datenbank an Sprachdateien zu übergeben. Der integrierten Sprachklasse fehlt die native Unterstützung für die Datenbankintegration.

Lösung:

Datenbanklayout:

Erstellen Sie eine Tabelle namens lang_token mit Spalten zum Speichern sprachbezogener Informationen:

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 ;

Struktur der CodeIgniter-Sprachdatei:

Englisch oder Deutsch usw. Unterverzeichnisse sollten im Anwendungs-/Sprachverzeichnis erstellt werden. Jede Sprache sollte in einem eigenen Ordner gespeichert werden.

Sprachdateien im Handumdrehen erstellen:

Eine benutzerdefinierte Funktion updatelangfile() kann in einem Controller erstellt werden, um Sprache zu generieren Dateien dynamisch:

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

    }

Verwendung:

Immer wenn Änderungen an der Datenbank vorgenommen werden, kann diese Funktion aufgerufen werden, um die entsprechenden Sprachdateien zu aktualisieren:

$this->updatelangfile('english');

Hinweise:

Denken Sie daran, Folgendes in den Konstruktor des Controllers zu laden:

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

Das obige ist der detaillierte Inhalt vonWie kann die dynamische Erstellung von Sprachdateien in CodeIgniter für mehrsprachige Websites implementiert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn