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).

Internationalisierung

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.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow