Heim >Datenbank >MySQL-Tutorial >Wie generiert man CodeIgniter-Sprachdateien dynamisch aus einer Datenbank?

Wie generiert man CodeIgniter-Sprachdateien dynamisch aus einer Datenbank?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-30 00:32:02612Durchsuche

How to Dynamically Generate CodeIgniter Language Files from a Database?

Ü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

  • Laden Sie den File Helper und die Sprachklasse in den Konstruktor des Controllers.
  • Verwenden Sie ein gemeinsames Präfix für Nachrichtenkategorien in Sprachdateien, um Konflikte zu vermeiden.

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!

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