codeigniter
CodeIgniter - Internacionalización
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.
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.