Zoeken…


Invoering

De taalklasse in CodeIgniter biedt een eenvoudige manier om meerdere talen te ondersteunen voor internationalisering. Tot op zekere hoogte kunnen we verschillende taalbestanden gebruiken om tekst in veel verschillende talen weer te geven.

Voorbeeld

Bestanden maken Taal

Als u een taalbestand wilt maken, moet u dit eindigen met _lang.php . Als u bijvoorbeeld een taalbestand voor de Franse taal wilt maken, moet u dit opslaan met french_lang.php . Binnen dit bestand kunt u al uw taalteksten opslaan in sleutel, waarde-combinatie in $lang array zoals hieronder getoond.

$lang['key'] = 'val';

Taalbestand wordt geladen

Als u een van de talen in uw toepassing wilt gebruiken, moet u eerst het bestand van die bepaalde taal laden om verschillende teksten op te halen die in dat bestand zijn opgeslagen. U kunt de volgende code gebruiken om het taalbestand te laden.

$this->lang->load('filename', 'language');

bestandsnaam : dit is de naam van het bestand dat u wilt laden. Gebruik hier geen extensie van het bestand, maar alleen de bestandsnaam. Taal : het is de taal die het bevat.

Tekst ophalen

$this->lang->line('language_key');

Om een regel uit het taalbestand te halen, voert u eenvoudig de volgende code uit. Waar taalsleutel de sleutelparameter is die wordt gebruikt om de waarde van de sleutel in het geladen taalbestand op te halen.

Autoload-talen

Als u wereldwijd wat taal nodig hebt, kunt u deze automatisch laden in het bestand application/config/autoload.php zoals hieronder wordt weergegeven.

| -----------------------------------------------------------------------
|  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();

U geeft eenvoudig de verschillende talen door die automatisch door CodeIgniter moeten worden geladen.

Maak een controller genaamd Lang_controller.php en sla deze op in application/controller/Lang_controller.php

<?php

class Lang_controller breidt CI_Controller uit {

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);
     }
  }
?>

Maak een weergavebestand met de naam lang_view.php en sla dit op in 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>

Maak drie mappen met de naam Engels , Frans en Duits in toepassing / taal zoals weergegeven in de onderstaande afbeelding.

internationalisering

Kopieer de onderstaande code en sla deze op in het bestand english_lang.php in de map application/language/english .

<?php
   $lang['msg'] = "CodeIgniter Internationalization example.";
?>

Kopieer de onderstaande code en sla deze op in het bestand french_lang.php in de map application/language/French .

<?php
   $lang['msg'] = "Exemple CodeIgniter internationalisation.";
?>

Kopieer de onderstaande code en sla deze op in het bestand german_lang.php in de map application/language/german .

<?php
    $lang['msg'] = "CodeIgniter Internationalisierung Beispiel.";
?>

Wijzig het routes.php bestand in application/config/routes.php om route toe te voegen voor de bovenstaande controller en voeg de volgende regel toe aan het einde van het bestand.

$route['lang'] = "Lang_controller";

Voer de volgende URL in de browser uit om het bovenstaande voorbeeld uit te voeren.

http://yoursite.com/index.php/lang

Controleer vervolgens uw browser. Dank je.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow