CodeIgniter - Internationalisierung
Der Sprachkurs in CodeIgniter bietet eine einfache Möglichkeit, mehrere Sprachen für die Internationalisierung zu unterstützen. Bis zu einem gewissen Grad können wir verschiedene Sprachdateien verwenden, um Text in vielen verschiedenen Sprachen anzuzeigen.
Wir können verschiedene Sprachdateien im Anwendungs- / Sprachverzeichnis ablegen. Systemsprachendateien finden Sie im System- / Sprachverzeichnis. Um Ihrer Anwendung jedoch eine eigene Sprache hinzuzufügen, sollten Sie für jede Sprache im Anwendungs- / Sprachverzeichnis einen eigenen Ordner erstellen.
Dateien erstellen Sprache
Um eine Sprachdatei zu erstellen, müssen Sie sie mit beenden _lang.php. Wenn Sie beispielsweise eine Sprachdatei für die französische Sprache erstellen möchten, müssen Sie diese mit speichernfrench_lang.php. In dieser Datei können Sie alle Ihre Sprachtexte in Schlüssel, Wertkombination in speichern$lang Array wie unten gezeigt.
$lang[‘key’] = ‘val’;
Sprachdatei wird geladen
Um eine der Sprachen in Ihrer Anwendung zu verwenden, müssen Sie zuerst die Datei dieser bestimmten Sprache laden, um verschiedene in dieser Datei gespeicherte Texte abzurufen. Sie können den folgenden Code verwenden, um die Sprachdatei zu laden.
$this->lang->load('filename', 'language');
filename- Dies ist der Name der Datei, die Sie laden möchten. Verwenden Sie hier nicht die Dateierweiterung, sondern nur den Dateinamen.
Language - Es ist das Sprachenset, das es enthält.
Sprachtext abrufen
Um eine Zeile aus der Sprachdatei abzurufen, führen Sie einfach den folgenden Code aus.
$this->lang->line('language_key');
Wo language_key ist der Schlüsselparameter, mit dem der Wert des Schlüssels in der geladenen Sprachdatei abgerufen wird.
Autoload-Sprachen
Wenn Sie eine Sprache global benötigen, können Sie sie automatisch laden application/config/autoload.php Datei wie unten gezeigt.
| -----------------------------------------------------------------------
| Auto-load Language files
| -----------------------------------------------------------------------
| Prototype:
| $autoload['language'] = array('lang1', 'lang2');
|
| NOTE: Do not include the "_lang" part of your file. For example
| "codeigniter_lang.php" would be referenced as array('codeigniter');
|
*/
$autoload['language'] = array();
Übergeben Sie einfach die verschiedenen Sprachen, die von CodeIgniter automatisch geladen werden sollen.
Beispiel
Erstellen Sie einen Controller namens Lang_controller.php und speichern Sie es in application/controller/Lang_controller.php
<?php
class Lang_controller extends CI_Controller {
public function index(){
//Load form helper
$this->load->helper('form');
//Get the selected language
$language = $this->input->post('language');
//Choose language file according to selected lanaguage
if($language == "french")
$this->lang->load('french_lang','french');
else if($language == "german")
$this->lang->load('german_lang','german');
else
$this->lang->load('english_lang','english');
//Fetch the message from language file.
$data['msg'] = $this->lang->line('msg');
$data['language'] = $language;
//Load the view file
$this->load->view('lang_view',$data);
}
}
?>
Erstellen Sie eine Ansichtsdatei mit dem Namen lang_view.php und speichern Sie es bei application/views/ lang_view.php
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "utf-8">
<title>CodeIgniter Internationalization Example</title>
</head>
<body>
<?php
echo form_open('/lang');
?>
<select name = "language" onchange = "javascript:this.form.submit();">
<?php
$lang = array('english'=>"English",'french'=>"French",'german'=>"German");
foreach($lang as $key=>$val) {
if($key == $language)
echo "<option value = '".$key."' selected>".$val."</option>";
else
echo "<option value = '".$key."'>".$val."</option>";
}
?>
</select>
<br>
<?php
form_close();
echo $msg;
?>
</body>
</html>
Erstellen Sie drei Ordner mit den Namen Englisch, Französisch und Deutsch in application/language wie in der Abbildung unten gezeigt.
Kopieren Sie den unten angegebenen Code und speichern Sie ihn in english_lang.php Datei in application/language/english Ordner.
<?php
$lang['msg'] = "CodeIgniter Internationalization example.";
?>
Kopieren Sie den unten angegebenen Code und speichern Sie ihn in french_lang.php Datei in application/language/French Ordner.
<?php
$lang['msg'] = "Exemple CodeIgniter internationalisation.";
?>
Kopieren Sie den unten angegebenen Code und speichern Sie ihn in german_lang.php Datei in application/language/german Ordner.
<?php
$lang['msg'] = "CodeIgniter Internationalisierung Beispiel.";
?>
Ändere das routes.php Datei in application/config/routes.php um eine Route für den obigen Controller hinzuzufügen und die folgende Zeile am Ende der Datei hinzuzufügen.
$route['lang'] = "Lang_controller";
Führen Sie die folgende URL im Browser aus, um das obige Beispiel auszuführen.
http://yoursite.com/index.php/lang
Es wird eine Ausgabe erzeugt, wie im folgenden Screenshot gezeigt. Wenn Sie die Sprache in der Dropdown-Liste ändern, ändert sich auch die Sprache des Satzes, der unter der Dropdown-Liste steht.