Buscar..


Introducción

La clase de idiomas en CodeIgniter proporciona una manera fácil de admitir múltiples idiomas para la internacionalización. Hasta cierto punto, podemos usar archivos de diferentes idiomas para mostrar texto en muchos idiomas diferentes.

Ejemplo

Creación de archivos de lenguaje

Para crear un archivo de idioma, debe finalizarlo con _lang.php . Por ejemplo, si desea crear un archivo de idioma para el idioma francés, debe guardarlo con french_lang.php . Dentro de este archivo puede almacenar todos sus textos de idioma en clave, combinación de valor en $lang array como se muestra a continuación.

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

Cargando archivo de idioma

Para usar cualquiera de los idiomas en su aplicación, primero debe cargar el archivo de ese idioma en particular para recuperar varios textos almacenados en ese archivo. Puede utilizar el siguiente código para cargar el archivo de idioma.

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

nombre de archivo : es el nombre del archivo que desea cargar. No use la extensión del archivo aquí, solo el nombre del archivo. Idioma : es el conjunto de idiomas que lo contiene.

Obtención de texto de idioma

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

Para obtener una línea del archivo de idioma, simplemente ejecute el siguiente código. Donde language_key es el parámetro clave utilizado para obtener el valor de la clave en el archivo de idioma cargado.

Autoload Languages

Si necesita un idioma global, puede cargarlo application/config/autoload.php archivo application/config/autoload.php como se muestra a continuación.

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

Simplemente, pase los diferentes idiomas para ser cargados automáticamente por CodeIgniter.

Cree un controlador llamado Lang_controller.php y guárdelo en application/controller/Lang_controller.php

<?php

la clase Lang_controller extiende 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);
     }
  }
?>

Cree un archivo de vista llamado lang_view.php y guárdelo en 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>

Cree tres carpetas llamadas inglés , francés y alemán en la aplicación / idioma como se muestra en la siguiente figura.

internacionalización

Copie el código dado a continuación y guárdelo en el archivo english_lang.php en la carpeta application/language/english .

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

Copie el código dado a continuación y guárdelo en el archivo french_lang.php en la carpeta application/language/French .

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

Copie el código dado a continuación y guárdelo en el archivo german_lang.php en la carpeta application/language/german .

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

Cambie el archivo routes.php en application/config/routes.php para agregar la ruta para el controlador anterior y agregue la siguiente línea al final del archivo.

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

Ejecute la siguiente URL en el navegador para ejecutar el ejemplo anterior.

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

A continuación, compruebe en su navegador. Gracias.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow