Internacionalização simples com Y_Template
Onde a linha “define”, determina qual a primeira prioridade a ser mostrada.
Podemos fazer melhor ainda:
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:
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 .’.
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 .’.
Páginas:
1
2
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.
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.
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.
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.
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.
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.
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.
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.
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.
Congratulations!!! Sergio.
08/12/2009 7:37am
(~15 anos atrás)