Übergabe von Daten aus der Datenbank an Codeigniter-Sprachdateien
Bei Ihrem Bestreben, mit Codeigniter eine mehrsprachige Website zu erstellen, stellen Sie sich zu Recht die Verwendung von a vor Datenbank zur Verwaltung von Sprachinhalten. Dieser Artikel führt Sie durch die spezifischen Schritte, um dies zu erreichen.
Datenbankstruktur und Sprachdateien
Richten Sie zunächst eine Datenbanktabelle mit dem Namen lang_token ein, um Sprachtokens zu speichern. Füllen Sie es mit Spalten für ID, Kategorie, Beschreibung, Sprache und Token. Erstellen Sie beispielsweise englische Token wie:
| id | category | description | lang | token | |---|---|---|---| | 1 | error | noMail | english | You must submit a valid email address | | 2 | error | noUser | english | You must submit a username |
Als nächstes organisieren Sie Sprachdateien in Unterverzeichnissen innerhalb der Anwendung/Sprache (z. B. Anwendung/Sprache/Englisch).
Codeigniter-Sprachdateien Struktur
Sprachdateien folgen einer bestimmten Struktur:
$lang['category_description'] = 'token';
Zum Beispiel in application/sprache/englisch/general_lang.php:
$lang['error_noMail'] = 'You must submit a valid email address'; $lang['error_noUser'] = 'You must submit a username';
Controller-Funktion für die dynamische Generierung von Sprachdateien
Um Sprachdateien dynamisch aus der Datenbank zu erstellen, erstellen Sie eine Controller-Funktion wie diese:
function updatelangfile($my_lang){ $query = $this->db->where('lang', $my_lang)->get('lang_token'); $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); }
Verwendung
Wenn Sie Ihre Datenbank aktualisieren, rufen Sie die Funktion updatelangfile('english') auf, um die Sprachdatei neu zu generieren.
Zusätzliche Hinweise
Das obige ist der detaillierte Inhalt vonWie generiert man CodeIgniter-Sprachdateien dynamisch aus einer Datenbank?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!