+4

Internacionalização simples com Y_Template

criado por Sergio A. Pohlmann .'. em 29/10/2009 11:34am
Onde a linha “define”, determina qual a primeira prioridade a ser mostrada.
Podemos fazer melhor ainda:

<?php

define( "Y_LANGUAGE_1", "en" );     // First priority language
define( "Y_LANGUAGE_2", "br" );     // Second priority language
define( "Y_LANGUAGE_3", "es" );     // Third priority language

// Starting Template
include_once ("include/Y_Template.class.php"); 
$T = new Y_Template( "templates/teste.html" );

$T->Show( "header" );
$T->Show( "content" );
$T->Show( "end" );

?>

Agora estamos definindo as três prioridades. A partir de agora, o template tentará primeiro mostrar o bloco solicitado em inglês (se existe). Se não encontra, optará pelo bloco em português. Não enconrando, tentará o bloco em espanhol, e, caso ainda assim não o encontre, mostrará o bloco original, sem especificação de linguagem.

Porque tanta complicação?
Realmente, a idéia não é exatamente de complicação. O motivo deste procedimento é permitir que você escreva seu site todinho em um idioma, e teste-o até certificar-se que tudo funciona bem. Então poderá ir copiando os blocos e traduzindo paulatinamente, sem preocupar-se com a funcionalidade do site.
Por exemplo: você escreveu todo seu side em português. Agora está traduzindo para inglês. Neste meio tempo, se alguém acessar a página em inglés, verá neste idioma todos os blocos que já foram traduzidos, e seguirá vendo em portugués aqueles que ainda não foram.
Se vocé esqueceu de traduzir uma parte (ou ainda não o fez por falta de tempo), os blocos originais (sem especificação de idioma) serão mostrados. É melhor que seu site tenha alguma parte em um idioma ainda não raduzido, que ele simplesmente não tenha esta parte, porque você ainda não a traduziu. Além disto, simplesmente olhando o Site, você se dará conta facilmente, daqueles blocos faltantes, e que ainda estão no idioma original. Em sites grandes, a tradução pode tomar um tempo considerável, e é muito fácil esquecer algum pedacinho :).

Posso usar isto com sessões?
Pode! Se você tem uma variavel de sessão, digamos que se chame “lang” que contenha o idioma que o usuario prefere, poderá verificá-la e definir as prioridades antes de chamar a classe de template:

$language=$_SESSION['lang'];

if( $language=="en" ){
	define( "Y_LANGUAGE_1", "en" );
	define( "Y_LANGUAGE_2", "br" );
	define( "Y_LANGUAGE_3", "es" );
}
if( $language=="br" ){
	define( "Y_LANGUAGE_1", "br" );
	define( "Y_LANGUAGE_2", "es" );
	define( "Y_LANGUAGE_3", "en" );
}
if( $language=="es" ){
	define( "Y_LANGUAGE_1", "es" );
	define( "Y_LANGUAGE_2", "br" );
	define( "Y_LANGUAGE_3", "en" );
}

Veja que agora estamos redefinindo todas as prioridades em cima da informação de sessão do usuario. Ou ainda poderíamos ter um combo de seleção, onde o mesmo escolhe o idioma, e a partir daí, se definem as prioridades.

Espero que lhes seja útil, e aguardo sugestões, dúvidas, críticas, ou informações sobre o uso da classe.

Abraços a todos .’.

Comentários:

Mostrando 1 - 10 de 12 comentários
Disculpein os comentarios repetidos mais o botão não funcionava
08/12/2009 7:43am (~15 anos atrás)

Acho este Template manager muinto bom e facil de usar, eu ja o uso ele fas bastante tempo principalmente por sua simplicidade, tamanho e o soporte a I18n en comparação con outros como smarty etc que são enormes e tein uma grande cantidade de arquivos (Este so tein un que não tein peso :) ) que no momento de sincronizar con o server de produção resulta bastante impractico alem de que o usuario tein que aprender como funciona deixa de colocar estructuras for while no codigo php pra colocar nos templates, :p não deveria ser asin.

Congratulations!!! Sergio.
08/12/2009 7:40am (~15 anos atrás)

Acho este Template manager muinto bom e facil de usar, eu ja o uso ele fas bastante tempo principalmente por sua simplicidade, tamanho e o soporte a I18n en comparação con outros como smarty etc que são enormes e tein uma grande cantidade de arquivos (Este so tein un que não tein peso :) ) que no momento de sincronizar con o server de produção resulta bastante impractico alem de que o usuario tein que aprender como funciona deixa de colocar estructuras for while no codigo php pra colocar nos templates, :p não deveria ser asin.

Congratulations!!! Sergio.
08/12/2009 7:39am (~15 anos atrás)

Acho este Template manager muinto bom e facil de usar, eu ja o uso ele fas bastante tempo principalmente por sua simplicidade, tamanho e o soporte a I18n en comparação con outros como smarty etc que são enormes e tein uma grande cantidade de arquivos (Este so tein un que não tein peso :) ) que no momento de sincronizar con o server de produção resulta bastante impractico alem de que o usuario tein que aprender como funciona deixa de colocar estructuras for while no codigo php pra colocar nos templates, :p não deveria ser asin.

Congratulations!!! Sergio.
08/12/2009 7:39am (~15 anos atrás)

Acho este Template manager muinto bom e facil de usar, eu ja o uso ele fas bastante tempo principalmente por sua simplicidade, tamanho e o soporte a I18n en comparação con outros como smarty etc que são enormes e tein uma grande cantidade de arquivos (Este so tein un que não tein peso :) ) que no momento de sincronizar con o server de produção resulta bastante impractico alem de que o usuario tein que aprender como funciona deixa de colocar estructuras for while no codigo php pra colocar nos templates, :p não deveria ser asin.

Congratulations!!! Sergio.
08/12/2009 7:38am (~15 anos atrás)

Acho este Template manager muinto bom e facil de usar, eu ja o uso ele fas bastante tempo principalmente por sua simplicidade, tamanho e o soporte a I18n en comparação con outros como smarty etc que são enormes e tein uma grande cantidade de arquivos (Este so tein un que não tein peso :) ) que no momento de sincronizar con o server de produção resulta bastante impractico alem de que o usuario tein que aprender como funciona deixa de colocar estructuras for while no codigo php pra colocar nos templates, :p não deveria ser asin.

Congratulations!!! Sergio.
08/12/2009 7:38am (~15 anos atrás)

Acho este Template manager muinto bom e facil de usar, eu ja o uso ele fas bastante tempo principalmente por sua simplicidade, tamanho e o soporte a I18n en comparação con outros como smarty etc que são enormes e tein uma grande cantidade de arquivos (Este so tein un que não tein peso :) ) que no momento de sincronizar con o server de produção resulta bastante impractico alem de que o usuario tein que aprender como funciona deixa de colocar estructuras for while no codigo php pra colocar nos templates, :p não deveria ser asin.

Congratulations!!! Sergio.
08/12/2009 7:38am (~15 anos atrás)

Acho este Template manager muinto bom e facil de usar, eu ja o uso ele fas bastante tempo principalmente por sua simplicidade, tamanho e o soporte a I18n en comparação con outros como smarty etc que são enormes e tein uma grande cantidade de arquivos (Este so tein un que não tein peso :) ) que no momento de sincronizar con o server de produção resulta bastante impractico alem de que o usuario tein que aprender como funciona deixa de colocar estructuras for while no codigo php pra colocar nos templates, :p não deveria ser asin.

Congratulations!!! Sergio.
08/12/2009 7:38am (~15 anos atrás)

Acho este Template manager muinto bom e facil de usar, eu ja o uso ele fas bastante tempo principalmente por sua simplicidade, tamanho e o soporte a I18n en comparação con outros como smarty etc que são enormes e tein uma grande cantidade de arquivos (Este so tein un que não tein peso :) ) que no momento de sincronizar con o server de produção resulta bastante impractico alem de que o usuario tein que aprender como funciona deixa de colocar estructuras for while no codigo php pra colocar nos templates, :p não deveria ser asin.

Congratulations!!! Sergio.
08/12/2009 7:37am (~15 anos atrás)

Acho este Template manager muinto bom e facil de usar, eu ja o uso ele fas bastante tempo principalmente por sua simplicidade, tamanho e o soporte a I18n en comparação con outros como smarty etc que são enormes e tein uma grande cantidade de arquivos (Este so tein un que não tein peso :) ) que no momento de sincronizar con o server de produção resulta bastante impractico alem de que o usuario tein que aprender como funciona deixa de colocar estructuras for while no codigo php pra colocar nos templates, :p não deveria ser asin.

Congratulations!!! Sergio.
08/12/2009 7:37am (~15 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)