Estive fazendo um job junto com o @gserrano usando o Code Igniter, e tivemos a necessidade de fazer a view com mensagens internacionalizadas, uma vez que o site terá versão em espanhol e português. Mais uma vez, o framework facilitou muito a nossa vida.
Vamos lá, é simples:
- dentro da pasta application, há uma chamada language
- dentro de language, deve haver uma pasta para cada um dos seus idiomas
- crie em cada uma dessas pasta um arquivo chamado {nomedocliente}_lang.php (claro, {nomedocliente} pode ser trocado por qualquer coisa. No exemplo a seguir, usarei meujob_lang.php)
-
o conteúdo do arquivo deve seguir a estrutura:
$lang["chave1] = "mensagem 1";
$lang["chave2] = "mensagem 2";
$lang["chave3] = "mensagem 3";
?>
Ou seja, é um arquivo que conterá chaves (usadas na view) e os valores. As chaves serão sempre iguais nos diversos arquivos de internacionalização, e as mensagens, serão as mesmas, traduzidas para o idioma em questão -
antes de usar na view essas mensagens, você deve adicionar as mesmas no controller.
Imagine que você tenha o seguinte método em um controller:
public function formulario() {
$this->load->view('passo1');
}
O que você precisa é, antes de carregar a view, adicionar o idioma que será usado. No caso abaixo, o que fiz é carregar a view dependendo do terceiro parâmetro vindo na url (por exemplo: /meucontroller/formulario/pt_BR)
public function formulario() {
$this->lang->load('meujob', $this->uri->segment(3));
$this->load->view('passo1');
}
Note que (1) falta uma validação do terceiro parâmetro e (2) meujob é o nome do arquivo criado lá no terceiro passo. - na view, basta você chamar lang->line("chave1"); ?> por exemplo, que será printada na tela a mensagem referente a chave1 do arquivo de mensagens correto.
Refefência: http://codeigniter.com/user_guide/libraries/language.html