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!