Published on

Utilizando multi idiomas no php CodeIgniter

Authors

Esse é o primeiro post falando de CodeIginiter.

Vamos lá, nesse tutorial vamos tentar aprender como utilizar o multi idioma em uma aplicação utilizando CodeIginiter, daqui pra frente, apenas CI.

O primeiro passo é configurar:

Criamos uma pasta dentro de application/language chamada portuguese nessa pasta que iremos colocar nossas strings traduzidas.

Após criarmos a pasta, devemos alterar o arquivo application/config/config.php, na seguinte linha:

$config['language'] = 'english';

para:

$config['language'] = 'portuguese';

Essa configuração quer dizer que o idioma padrão vai ser o que tiver dentro da pasta portuguese.

Repare que temos duas pastas language, uma dentro de application e outra dentro de system, quando o CI procura pelas strings traduzidas, o primeiro local que ele procurar é em application/language e em seguida system/language, então, o mais sensato é colocarmos nossas strings dentro de application/language.

A nomenclatura padrão dos arquivos de idiomas é nome_lang.php, para o nosso exemplo, vamos criar um arquivo chamada app_lang.php dentro da pasta portuguese. O conteúdo do arquivo deverá ficar da seguinte forma:

<?php
        $lang['title'] = "Titulo";
    $lang['first_name'] = "Primeiro nome";
    $lang['last_name'] = "Ultimo nome";
    $lang['date'] = "data";

?>

Agora, para utilizarmos ele é tão simples quanto a sua criação, basta carregar ele com essa "enorme" linha de código:

$this->lang->load("app","portuguese");

Da forma acima, devemos colocar a chamada em todo lugar que for ter strings traduzidas, então, pra facilitar, vamos usar ele no método construtor do nosso Controller:

public function __construct() {
        parent::__construct();
        $this->lang->load("app","portuguese");
   }

Repare que utilizamos apenas o nome do arquivo, "app", o resto o CI que preenche.

Agora que carregamos ele no nosso Controller, vamos utilizar ele:

$data['title'] = $this -> lang -> line('title');

A linha acima assume que o valor de $title será Titulo. É tão simples que parece mentira, mas é isso mesmo, agora só passar o valor pra view e exibir, lindo e traduzido.

E claro, como a intenção de utilizar o multi idioma é o de que nossa aplicação seja visível em outra língua, pra isso, basta criar uma nova pasta em application/language com o idioma que preferir, criar os mesmos arquivos que estão na pasta portuguese e mandar ver na tradução.

Só não esqueça de alterar o lang->load para que ele carregue o novo idioma corretamente:

$this->lang->load("app","idioma");

Obtenha o CI aqui e o pratico manual aqui.

É isso ai, espero que seja útil.

Até mais, abraços.