codeigniter
CodeIgniter - Internationalisierung
Suche…
Einführung
Die Sprachklasse 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.
Beispiel
Dateien erstellen Sprache
Um eine _lang.php
zu erstellen, müssen Sie sie mit _lang.php
. Wenn Sie beispielsweise eine french_lang.php
für Französisch erstellen möchten, müssen Sie sie mit french_lang.php
. In dieser Datei können Sie alle Ihre Sprachtexte in einer Schlüssel / Wert-Kombination in einem $lang
Array speichern (siehe unten).
$lang['key'] = 'val';
Sprachdatei wird geladen
Um eine beliebige Sprache 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');
Dateiname : Dies ist der Name der Datei, die Sie laden möchten. Verwenden Sie hier nicht die Dateierweiterung, sondern nur den Dateinamen. Sprache : Es ist die Sprache, die es enthält.
Sprachentext abrufen
$this->lang->line('language_key');
Um eine Zeile aus der Sprachdatei abzurufen, führen Sie einfach den folgenden Code aus. Dabei ist language_key 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 in die Datei application/config/autoload.php
laden (siehe unten).
| -----------------------------------------------------------------------
| 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.
Erstellen Sie einen Controller mit dem Namen Lang_controller.php
und speichern Sie ihn in application/controller/Lang_controller.php
<?php
Klasse Lang_controller erweitert 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 sie unter 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>
<?php
form_close();
echo $msg;
?>
</body>
</html>
Erstellen Sie drei Ordner mit den Namen Englisch , Französisch und Deutsch in Anwendung / Sprache (siehe Abbildung unten).
Kopieren Sie den unten angegebenen Code und speichern Sie ihn in der Datei english_lang.php
im Ordner application/language/english
.
<?php
$lang['msg'] = "CodeIgniter Internationalization example.";
?>
Kopieren Sie den unten angegebenen Code und speichern Sie ihn in der Datei french_lang.php
im Ordner application/language/French
.
<?php
$lang['msg'] = "Exemple CodeIgniter internationalisation.";
?>
Kopieren Sie den unten angegebenen Code und speichern Sie ihn in der Datei german_lang.php
im Ordner application/language/german
.
<?php
$lang['msg'] = "CodeIgniter Internationalisierung Beispiel.";
?>
Ändern Sie die Datei routes.php
in application/config/routes.php
, um die Route für den obigen Controller hinzuzufügen, und fügen Sie am Ende der Datei die folgende Zeile ein.
$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
Dann checken Sie in Ihrem Browser. Vielen Dank.