codeigniter
CodeIgniter - Internazionalizzazione
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.
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.