Skip to content

Instantly share code, notes, and snippets.

@jlamim
Last active August 18, 2016 17:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jlamim/cd9bcb14382440e8cdf23ee57a5e9b6c to your computer and use it in GitHub Desktop.
Save jlamim/cd9bcb14382440e8cdf23ee57a5e9b6c to your computer and use it in GitHub Desktop.
Aplicações multi-idioma no CodeIgniter - LanguageLoader.php
<?php
/**
* Classe responsável por verificar qual o idioma está sendo utilizado e carregar
* os respectivos arquivos no diretório 'application/language'
*
*/
class LanguageLoader
{
/**
* Método que faz o carregamento dos arquivos de idiomas conforme
* parâmetro obtido na URL
*
*/
function initialize() {
//cria uma instância local para acessar métodos do CodeIgniter
//(corresponde ao $this)
$ci =& get_instance();
//carrega o helper 'language', que libera o uso dos recursos de multi-idioma
$ci->load->helper('language');
//verifica qual é o idioma a ser carregado a partir do parâmetro do primeiro
//nó da URL
switch ($ci->uri->segment(1)) {
case 'en':
$idioma = 'english';
break;
case 'es':
$idioma = 'spanish';
break;
case 'pt_br':
$idioma = 'portuguese-brazilian';
break;
default:
$idioma = 'spanish';
break;
}
//carrega todos os arquivos de idioma, dessa forma você poderá utilizar as
//mensagens das bibliotecas nativas normalmente
$ci->lang->load(array(
'calendar',
'date',
'db',
'email',
'form_validation',
'ftp',
'imglib',
'migration',
'number',
'pagination',
'profiler',
'unit_test',
'upload',
'welcome'
),$idioma);
//define o idioma a ser utilizado, diretamente nas configurações globais da aplicação.
$ci->config->set_item('language', $idioma);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment