Ricerca…


introduzione

La classe di lingua in CodeIgniter fornisce un modo semplice per supportare più lingue per l'internazionalizzazione. In una certa misura, possiamo usare diversi file di lingua per visualizzare il testo in molte lingue diverse.

Esempio

Creazione di file Lingua

Per creare un file di lingua, devi terminarlo con _lang.php . Ad esempio, si desidera creare un file di lingua per la lingua francese, quindi è necessario salvarlo con french_lang.php . All'interno di questo file è possibile memorizzare tutti i testi in lingua nella combinazione di valori chiave in $lang array come mostrato di seguito.

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

Caricamento del file di lingua

Per utilizzare una qualsiasi delle lingue nella tua applicazione, devi prima caricare il file di quella particolare lingua per recuperare vari testi memorizzati in quel file. È possibile utilizzare il seguente codice per caricare il file della lingua.

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

nome file : è il nome del file che si desidera caricare. Non utilizzare l'estensione del file qui, ma solo il nome del file. Lingua : è il set di lingue che lo contiene.

Recupero del testo della lingua

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

Per recuperare una riga dal file di lingua, devi semplicemente eseguire il seguente codice. Dove language_key è il parametro chiave utilizzato per recuperare il valore della chiave nel file di lingua caricato.

Autoload Languages

Se hai bisogno di una lingua in tutto il mondo, puoi caricarla automaticamente nel file application/config/autoload.php come mostrato di seguito.

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

Semplicemente, passa le diverse lingue per essere autoloaded da CodeIgniter.

Crea un controller chiamato Lang_controller.php e salvalo in application/controller/Lang_controller.php

<?php

la classe Lang_controller estende 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);
     }
  }
?>

Crea un file di visualizzazione chiamato lang_view.php e salvalo su 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>

Crea tre cartelle denominate inglese , francese e tedesco in applicazione / lingua come mostrato nella figura seguente.

internazionalizzazione

Copia il codice indicato sotto e salvalo nel file english_lang.php nella cartella application/language/english .

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

Copia il codice indicato di seguito e salvalo nel file french_lang.php nella cartella application/language/French .

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

Copia il codice indicato sotto e salvalo nel file german_lang.php nella cartella application/language/german .

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

Cambia il file routes.php in application/config/routes.php per aggiungere il percorso per il controller di cui sopra e aggiungi la seguente riga alla fine del file.

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

Esegui il seguente URL nel browser per eseguire l'esempio precedente.

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

Quindi controlla nel tuo browser. Grazie.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow