site Multi Idioma

View: New views
10 Messages — Rating Filter:   Alert me  

site Multi Idioma

by Ricardo Barros :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Olá para todos,

Estou desenvolvendo um site multi idioma e gostaria de saber se esta é
a melhor e mais pratica solução:

<?php
        //multiIdioma.php
        session_start();
       
        if(!isset($_POST["por"]) AND !isset($_POST["ing"]) AND
!isset($_POST["esp"])){
                $idioma = "por";}
        else{
                if(isset($_POST["por"])){$idioma = "por";}
                if(isset($_POST["ing"])){$idioma = "ing";}
                if(isset($_POST["esp"])){$idioma = "esp";}
        }
               
echo($idioma);

        if($idioma=="por"){$idi[por][1] = "eu te amo muito!...";}
        if($idioma=="ing"){$idi[ing][1] = "I love you so much!...";}
        if($idioma=="esp"){$idi[esp][1] = "Yo te amo mucho!...";}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-br" lang="pt-br">
        <head>
                <title></title>
        </head>
        <body>
                <form action="<?php echo $PHP_SELF; ?>" method="post">
                        <input type="submit" name="por" value="portugues">
                        <input type="submit" name="ing" value="ingles">
                        <input type="submit" name="esp" value="espanhol">
                </form>
               
                <h1><?php echo $idi[$idioma][1]; ?></h1>
                <div id=""><?php echo($idi[$idioma][1]); ?></div>
        </body>
</html>

Ou seja colocar os dados em um array bidimensional e ir ecoando pelas
paginas.

Agradeço sugestões e comentários

obrigado
Oliveira



Re: site Multi Idioma

by Webadmin-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Cara.. faz isso não pq é 120% mais lento que qualquer outro método, vai
por mim! hehehe

Dê uma olhada em http://www.php.net/manual/pt_BR/function.gettext.php.

Ou então faça como o wordpress faz (que não depende de configuração no
servidor)

Dá uma procurada por gettext.... Vou tentar explicar como funciona:

1- Vá em http://download.savannah.gnu.org/releases/php-gettext/ e baixe
a versão mais atual (php-gettext-1.0.3.tar.gz
<http://download.savannah.gnu.org/releases/php-gettext/php-gettext-1.0.3.tar.gz>)
2- Você cria o site inteiro, e o que vc quizer que apareça traduzido vc
coloca <?php echo __('Teste'); ?>
3- Crie a função __() e dentro dela vc usa a classe de tradução gettext.
Dica: use a função sprintf() do PHP para que vc possa colocar __("Bom
dia %s", $nomeUsuario)
4- Depois vc instala um programa chamado POEdit. É nesse cara que vc vai
traduzir as expressões.
5- No diretório bin da instalação do POEdit (é bin tbm no windows) vai
ter um script chamado gettext.bat, vc vai executar ele passando uns
parâmentros, e dentre os parametros vc vai indicar que a função __() é a
que contem as expressões a serem traduzidas. Eu num lembro os
parametros, tem que procurar.
6- este script .bat vai gerar um arquivo .pot, que nada mais é que um
índice com as expressões a serem tradizidas. Se vc abrir com o notepad
vc vai ver que ele indica quais arquivos e devidas linhas usam aquela
expressão.
7- Com o POEdit, vc vai abrir o arquivo .pot e vai traduzindo, ao salvar
(Ctrl+s) é gerado um arquivo .mo que é o que vc vai colocar no site e o
que a classe gettext vai usar e indexar.

Eu sei, é meio confuso esse lance de .pot, .mo e __() ou _() e por ai
vai.. mas vc consegue! =]

Se precisar de explicações mais esmiuçadas de algum ponto ali pode pedir!

Usei essa técnica durante 2 anos mais ou menos e nunca me deixou na mão!

Esse projeto http://www.ilhadotabuleiro.com.br/anunciantes/ eu usei essa
técnica. A tradução não fui eu quem fez, foi um professor lá...

Dê uma olhada, teste!

Vlw????


zipado50 escreveu:

>
> Olá para todos,
>
> Estou desenvolvendo um site multi idioma e gostaria de saber se esta é
> a melhor e mais pratica solução:
>
> <?php
> //multiIdioma.php
> session_start();
>
> if(!isset($_POST["por"]) AND !isset($_POST["ing"]) AND
> !isset($_POST["esp"])){
> $idioma = "por";}
> else{
> if(isset($_POST["por"])){$idioma = "por";}
> if(isset($_POST["ing"])){$idioma = "ing";}
> if(isset($_POST["esp"])){$idioma = "esp";}
> }
>
> echo($idioma);
>
> if($idioma=="por"){$idi[por][1] = "eu te amo muito!...";}
> if($idioma=="ing"){$idi[ing][1] = "I love you so much!...";}
> if($idioma=="esp"){$idi[esp][1] = "Yo te amo mucho!...";}
>
> ?>
>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd 
> <http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd>">
> <html xmlns="http://www.w3.org/1999/xhtml 
> <http://www.w3.org/1999/xhtml>" xml:lang="pt-br" lang="pt-br">
> <head>
> <title></title>
> </head>
> <body>
> <form action="<?php echo $PHP_SELF; ?>" method="post">
> <input type="submit" name="por" value="portugues">
> <input type="submit" name="ing" value="ingles">
> <input type="submit" name="esp" value="espanhol">
> </form>
>
> <h1><?php echo $idi[$idioma][1]; ?></h1>
> <div id=""><?php echo($idi[$idioma][1]); ?></div>
> </body>
> </html>
>
> Ou seja colocar os dados em um array bidimensional e ir ecoando pelas
> paginas.
>
> Agradeço sugestões e comentários
>
> obrigado
> Oliveira
>
>  

Re: site Multi Idioma

by Uasden Ferreira :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

usa uma classe de internacionalização irmãozinho com XML.

Uasden

2008/7/20 zipado50 <zipado50@...>:

>   Olá para todos,
>
> Estou desenvolvendo um site multi idioma e gostaria de saber se esta é
> a melhor e mais pratica solução:
>
> <?php
> //multiIdioma.php
> session_start();
>
> if(!isset($_POST["por"]) AND !isset($_POST["ing"]) AND
> !isset($_POST["esp"])){
> $idioma = "por";}
> else{
> if(isset($_POST["por"])){$idioma = "por";}
> if(isset($_POST["ing"])){$idioma = "ing";}
> if(isset($_POST["esp"])){$idioma = "esp";}
> }
>
> echo($idioma);
>
> if($idioma=="por"){$idi[por][1] = "eu te amo muito!...";}
> if($idioma=="ing"){$idi[ing][1] = "I love you so much!...";}
> if($idioma=="esp"){$idi[esp][1] = "Yo te amo mucho!...";}
>
> ?>
>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-br" lang="pt-br">
> <head>
> <title></title>
> </head>
> <body>
> <form action="<?php echo $PHP_SELF; ?>" method="post">
> <input type="submit" name="por" value="portugues">
> <input type="submit" name="ing" value="ingles">
> <input type="submit" name="esp" value="espanhol">
> </form>
>
> <h1><?php echo $idi[$idioma][1]; ?></h1>
> <div id=""><?php echo($idi[$idioma][1]); ?></div>
> </body>
> </html>
>
> Ou seja colocar os dados em um array bidimensional e ir ecoando pelas
> paginas.
>
> Agradeço sugestões e comentários
>
> obrigado
> Oliveira
>
>  
>



--
Uasden Ferreira
Analista de Sistemas
www.bladop.com.br


[As partes desta mensagem que não continham texto foram removidas]


Re: site Multi Idioma

by Alexandre de Andrade Barbosa :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Acho que você pode usar constantes em php para isso.

É simples, vc define um arquivo com todos os textos que devem ser
exibidos na tela em forma de contantes. De acordo com o idioma escolhido
em sessão, você carrega o arquivo de constantes apropriado.

É melhor assim pois facilita a inclusão de outros idiomas caso queira.

<?php

if  ($_SESSION["idiomaDefault"] == "PT_BR")
{
    include_once('arquivo_pt_br.inc.php');
}
elseif ($_SESSION["idiomaDefault"] == "EN)
{
    include_once('arquivo_en.inc.php');
}


Os arquivos de constantes seria algo assim:

<?php
//arquivo_pt_br.inc.php

define(_EU_TE_AMO,'Eu te amo');

?>

<?php
//arquivo_en.inc.php

define(_EU_TE_AMO,'I love you');

?>


para sair com o texto correto, use, depois de incluir o arquivo de
constante correto:

<?php print(_EU_TE_AMO); ?>

Espero ter te ajudado.

Um abraço!
-------------------------------------------------
Alexandre de Andrade Barbosa
alexandre@... <mailto:alexandre@...>
http://www.andradebarbosa.com
http://www.gestordeti.com.br
http://www.desenvolvedorphp.com.br
http://www.prevencao.odo.br
Só sei que nada sei!
-------------------------------------------------


zipado50 escreveu:

>
> Olá para todos,
>
> Estou desenvolvendo um site multi idioma e gostaria de saber se esta é
> a melhor e mais pratica solução:
>
> <?php
> //multiIdioma.php
> session_start();
>
> if(!isset($_POST["por"]) AND !isset($_POST["ing"]) AND
> !isset($_POST["esp"])){
> $idioma = "por";}
> else{
> if(isset($_POST["por"])){$idioma = "por";}
> if(isset($_POST["ing"])){$idioma = "ing";}
> if(isset($_POST["esp"])){$idioma = "esp";}
> }
>
> echo($idioma);
>
> if($idioma=="por"){$idi[por][1] = "eu te amo muito!...";}
> if($idioma=="ing"){$idi[ing][1] = "I love you so much!...";}
> if($idioma=="esp"){$idi[esp][1] = "Yo te amo mucho!...";}
>
> ?>
>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd 
> <http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd>">
> <html xmlns="http://www.w3.org/1999/xhtml 
> <http://www.w3.org/1999/xhtml>" xml:lang="pt-br" lang="pt-br">
> <head>
> <title></title>
> </head>
> <body>
> <form action="<?php echo $PHP_SELF; ?>" method="post">
> <input type="submit" name="por" value="portugues">
> <input type="submit" name="ing" value="ingles">
> <input type="submit" name="esp" value="espanhol">
> </form>
>
> <h1><?php echo $idi[$idioma][1]; ?></h1>
> <div id=""><?php echo($idi[$idioma][1]); ?></div>
> </body>
> </html>
>
> Ou seja colocar os dados em um array bidimensional e ir ecoando pelas
> paginas.
>
> Agradeço sugestões e comentários
>
> obrigado
> Oliveira
>
>  


[As partes desta mensagem que não continham texto foram removidas]


Re: site Multi Idioma

by Webadmin-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Cara.. segue a mesma idéia do array que ele fez, mas o array ainda é
mais rápido que a constante.

Não em questão de acesso à informação desejada, mas sim que a constante
utiliza mais recursos de servidor para poder manter ela como readonly e
tals...

Sinceramente, sem querer me gambar, a solução do gettext é a usada nos
softwares OpenSource e o melhor é que não precisa ser vc para traduzir,
basta o programa (POEdit) que um professor qualquer consegue traduzir.

Clao que o pojeto é seu, vc faz o que bem entender... Mas se vc pensa em
performance e comodidade caso tenha alguma outra implementação futura
com certeza o lance dos POT e MO te darão uma resposta bem melhor.

Outra desvantagem do tipo de tradução indexada na linguagem é a
possibilidade de repetição da expressão, com o gettext ele elimina
expressões iguais.

Isso sem falar que vc vai ter o seguinte no seu codigo:
<h1><?php echo __("Título do site"); ?></h1>

e não:

<h1><?php echo $traducao[$idioma_selecionado]["Título do site"]; ?></h1>

ou

<h1><?php echo TITULO_SITE; ?></h1>

O lance da cnstante vc ainda pode passar a usar nomes de constantes que
não sejam o texto real, por exemplo:

define("TITULO_SITE", "Título do site") -> aqui tudo bem
define("TITULO_SITE", "Organizações Tabajara") -> aqui vc já não tem no
nome da constante o valor dela


Cara.. eu poderia ficar aqui listando vários outros motivos do porque
usar o gettext mas vou ficar muito chato hehehe

No começo é um pouco difícil mesmo, mas depois com o tempo vc pega a
manha e o legal é que fica nos padrões dos softwares OpenSource,
facilita se alguém se encarna em traduzir o seu site pra vc! aew vc
manda o arquivo .pot e o cara te devolve o .mo, sem percisar programar
uma linha sequer vc disponibiliza o idioma no seu site! =]

Vai por mim bicho, fizemos todo um estudo onde eu trabalhava para saber
qual a melhor forma e decidimos por esta!

=]

Vlw mano, qualquer dúvida pergunta aew!

Alexandre de Andrade Barbosa escreveu:

>
> Acho que você pode usar constantes em php para isso.
>
> É simples, vc define um arquivo com todos os textos que devem ser
> exibidos na tela em forma de contantes. De acordo com o idioma escolhido
> em sessão, você carrega o arquivo de constantes apropriado.
>
> É melhor assim pois facilita a inclusão de outros idiomas caso queira.
>
> <?php
>
> if ($_SESSION["idiomaDefault"] == "PT_BR")
> {
> include_once('arquivo_pt_br.inc.php');
> }
> elseif ($_SESSION["idiomaDefault"] == "EN)
> {
> include_once('arquivo_en.inc.php');
> }
>
> Os arquivos de constantes seria algo assim:
>
> <?php
> //arquivo_pt_br.inc.php
>
> define(_EU_TE_AMO,'Eu te amo');
>
> ?>
>
> <?php
> //arquivo_en.inc.php
>
> define(_EU_TE_AMO,'I love you');
>
> ?>
>
> para sair com o texto correto, use, depois de incluir o arquivo de
> constante correto:
>
> <?php print(_EU_TE_AMO); ?>
>
> Espero ter te ajudado.
>
> Um abraço!
> -------------------------------------------------
> Alexandre de Andrade Barbosa
> alexandre@... <mailto:alexandre%40andradebarbosa.com>
> <mailto:alexandre@...
> <mailto:alexandre%40andradebarbosa.com>>
> http://www.andradebarbosa.com <http://www.andradebarbosa.com>
> http://www.gestordeti.com.br <http://www.gestordeti.com.br>
> http://www.desenvolvedorphp.com.br <http://www.desenvolvedorphp.com.br>
> http://www.prevencao.odo.br <http://www.prevencao.odo.br>
> Só sei que nada sei!
> -------------------------------------------------
>
> zipado50 escreveu:
> >
> > Olá para todos,
> >
> > Estou desenvolvendo um site multi idioma e gostaria de saber se esta é
> > a melhor e mais pratica solução:
> >
> > <?php
> > //multiIdioma.php
> > session_start();
> >
> > if(!isset($_POST["por"]) AND !isset($_POST["ing"]) AND
> > !isset($_POST["esp"])){
> > $idioma = "por";}
> > else{
> > if(isset($_POST["por"])){$idioma = "por";}
> > if(isset($_POST["ing"])){$idioma = "ing";}
> > if(isset($_POST["esp"])){$idioma = "esp";}
> > }
> >
> > echo($idioma);
> >
> > if($idioma=="por"){$idi[por][1] = "eu te amo muito!...";}
> > if($idioma=="ing"){$idi[ing][1] = "I love you so much!...";}
> > if($idioma=="esp"){$idi[esp][1] = "Yo te amo mucho!...";}
> >
> > ?>
> >
> > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
> > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd 
> <http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd>
> > <http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd 
> <http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd>>">
> > <html xmlns="http://www.w3.org/1999/xhtml 
> <http://www.w3.org/1999/xhtml>
> > <http://www.w3.org/1999/xhtml <http://www.w3.org/1999/xhtml>>"
> xml:lang="pt-br" lang="pt-br">
> > <head>
> > <title></title>
> > </head>
> > <body>
> > <form action="<?php echo $PHP_SELF; ?>" method="post">
> > <input type="submit" name="por" value="portugues">
> > <input type="submit" name="ing" value="ingles">
> > <input type="submit" name="esp" value="espanhol">
> > </form>
> >
> > <h1><?php echo $idi[$idioma][1]; ?></h1>
> > <div id=""><?php echo($idi[$idioma][1]); ?></div>
> > </body>
> > </html>
> >
> > Ou seja colocar os dados em um array bidimensional e ir ecoando pelas
> > paginas.
> >
> > Agradeço sugestões e comentários
> >
> > obrigado
> > Oliveira
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  

Re: site Multi Idioma

by Ricardo Barros :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Olá alexandre;

Obrigado pela sugestão, é uma solução interessante é vai me ser muito útil.

obrigado
Zipado50


--- Em seg, 21/7/08, Alexandre de Andrade Barbosa <alexandre@...> escreveu:
De: Alexandre de Andrade Barbosa <alexandre@...>
Assunto: Re: [php-pt] site Multi Idioma
Para: php-pt@...
Data: Segunda-feira, 21 de Julho de 2008, 13:14










   
            Acho que você pode usar constantes em php para isso.



É simples, vc define um arquivo com todos os textos que devem ser

exibidos na tela em forma de contantes. De acordo com o idioma escolhido

em sessão, você carrega o arquivo de constantes apropriado.



É melhor assim pois facilita a inclusão de outros idiomas caso queira.



<?php



if  ($_SESSION[" idiomaDefault" ] == "PT_BR")

{

    include_once( 'arquivo_ pt_br.inc. php');

}

elseif ($_SESSION[" idiomaDefault" ] == "EN)

{

    include_once( 'arquivo_ en.inc.php' );

}



Os arquivos de constantes seria algo assim:



<?php

//arquivo_pt_ br.inc.php



define(_EU_TE_ AMO,'Eu te amo');



?>



<?php

//arquivo_en. inc.php



define(_EU_TE_ AMO,'I love you');



?>



para sair com o texto correto, use, depois de incluir o arquivo de

constante correto:



<?php print(_EU_TE_ AMO); ?>



Espero ter te ajudado.



Um abraço!

------------ --------- --------- --------- --------- -

Alexandre de Andrade Barbosa

alexandre@andradeba rbosa.com <mailto:alexandre@andradeba rbosa.com>

http://www.andradeb arbosa.com

http://www.gestorde ti.com.br

http://www.desenvol vedorphp. com.br

http://www.prevenca o.odo.br

Só sei que nada sei!

------------ --------- --------- --------- --------- -



zipado50 escreveu:

>

> Olá para todos,

>

> Estou desenvolvendo um site multi idioma e gostaria de saber se esta é

> a melhor e mais pratica solução:

>

> <?php

> //multiIdioma. php

> session_start( );

>

> if(!isset($_ POST["por" ]) AND !isset($_POST[ "ing"]) AND

> !isset($_POST[ "esp"])){

> $idioma = "por";}

> else{

> if(isset($_POST[ "por"])){ $idioma = "por";}

> if(isset($_POST[ "ing"])){ $idioma = "ing";}

> if(isset($_POST[ "esp"])){ $idioma = "esp";}

> }

>

> echo($idioma) ;

>

> if($idioma== "por"){$idi[ por][1] = "eu te amo muito!...";}

> if($idioma== "ing"){$idi[ ing][1] = "I love you so much!...";}

> if($idioma== "esp"){$idi[ esp][1] = "Yo te amo mucho!...";}

>

> ?>

>

> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

> "http://www.w3. org/TR/xhtml1/ DTD/xhtml1- strict.dtd

> <http://www.w3. org/TR/xhtml1/ DTD/xhtml1- strict.dtd>">

> <html xmlns="http://www.w3. org/1999/ xhtml

> <http://www.w3. org/1999/ xhtml>" xml:lang="pt- br" lang="pt-br" >

> <head>

> <title></title>

> </head>

> <body>

> <form action="<?php echo $PHP_SELF; ?>" method="post" >

> <input type="submit" name="por" value="portugues" >

> <input type="submit" name="ing" value="ingles" >

> <input type="submit" name="esp" value="espanhol" >

> </form>

>

> <h1><?php echo $idi[$idioma] [1]; ?></h1>

> <div id=""><?php echo($idi[$idioma] [1]); ?></div>

> </body>

> </html>

>

> Ou seja colocar os dados em um array bidimensional e ir ecoando pelas

> paginas.

>

> Agradeço sugestões e comentários

>

> obrigado

> Oliveira

>

>  



[As partes desta mensagem que não continham texto foram removidas]




     

   
   
       
         
       
       








       


       
       


      Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com.
http://br.new.mail.yahoo.com/addresses

[As partes desta mensagem que não continham texto foram removidas]


Re: site Multi Idioma

by Ricardo Barros :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Olá Uasden,

Obrigado pela contribuição, vc conhece alguma que vc recomenda?

Zipado50


--- Em seg, 21/7/08, Uasden Ferreira <uasden@...> escreveu:
De: Uasden Ferreira <uasden@...>
Assunto: Re: [php-pt] site Multi Idioma
Para: php-pt@...
Data: Segunda-feira, 21 de Julho de 2008, 9:53










   
            usa uma classe de internacionalizaçã o irmãozinho com XML.



Uasden



2008/7/20 zipado50 <zipado50@yahoo. com.br>:



>   Olá para todos,

>

> Estou desenvolvendo um site multi idioma e gostaria de saber se esta é

> a melhor e mais pratica solução:

>

> <?php

> //multiIdioma. php

> session_start( );

>

> if(!isset($_ POST["por" ]) AND !isset($_POST[ "ing"]) AND

> !isset($_POST[ "esp"])){

> $idioma = "por";}

> else{

> if(isset($_POST[ "por"])){ $idioma = "por";}

> if(isset($_POST[ "ing"])){ $idioma = "ing";}

> if(isset($_POST[ "esp"])){ $idioma = "esp";}

> }

>

> echo($idioma) ;

>

> if($idioma== "por"){$idi[ por][1] = "eu te amo muito!...";}

> if($idioma== "ing"){$idi[ ing][1] = "I love you so much!...";}

> if($idioma== "esp"){$idi[ esp][1] = "Yo te amo mucho!...";}

>

> ?>

>

> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

> "http://www.w3. org/TR/xhtml1/ DTD/xhtml1- strict.dtd">

> <html xmlns="http://www.w3. org/1999/ xhtml" xml:lang="pt- br" lang="pt-br" >

> <head>

> <title></title>

> </head>

> <body>

> <form action="<?php echo $PHP_SELF; ?>" method="post" >

> <input type="submit" name="por" value="portugues" >

> <input type="submit" name="ing" value="ingles" >

> <input type="submit" name="esp" value="espanhol" >

> </form>

>

> <h1><?php echo $idi[$idioma] [1]; ?></h1>

> <div id=""><?php echo($idi[$idioma] [1]); ?></div>

> </body>

> </html>

>

> Ou seja colocar os dados em um array bidimensional e ir ecoando pelas

> paginas.

>

> Agradeço sugestões e comentários

>

> obrigado

> Oliveira

>

>  

>



--

Uasden Ferreira

Analista de Sistemas

www.bladop.com. br



[As partes desta mensagem que não continham texto foram removidas]




     

   
   
       
         
       
       








       


       
       


      Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com.
http://br.new.mail.yahoo.com/addresses

[As partes desta mensagem que não continham texto foram removidas]


Re: site Multi Idioma

by Ricardo Barros :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Olá WebAdmin,

Obrigado pela sugestão, vou estudar esta opção sim e certamente é uma contribuição interessante, mas entrei no site exemplo http://www.ilhadota buleiro.com. br/anunciantes/ e lá não está funcionando só aparece em português, quando vc clica na opção inglês o listbox muda pra inglês mas o texto permanece em português.

Obrigado
Zipado50


--- Em seg, 21/7/08, WebAdmin <webadmin@...> escreveu:
De: WebAdmin <webadmin@...>
Assunto: Re: [php-pt] site Multi Idioma
Para: php-pt@...
Data: Segunda-feira, 21 de Julho de 2008, 8:52










   
            Cara.. faz isso não pq é 120% mais lento que qualquer outro método, vai

por mim! hehehe



Dê uma olhada em http://www.php. net/manual/ pt_BR/function. gettext.php.



Ou então faça como o wordpress faz (que não depende de configuração no

servidor)



Dá uma procurada por gettext.... Vou tentar explicar como funciona:



1- Vá em http://download. savannah. gnu.org/releases /php-gettext/ e baixe

a versão mais atual (php-gettext- 1.0.3.tar. gz

<http://download. savannah. gnu.org/releases /php-gettext/ php-gettext- 1.0.3.tar. gz>)

2- Você cria o site inteiro, e o que vc quizer que apareça traduzido vc

coloca <?php echo __('Teste'); ?>

3- Crie a função __() e dentro dela vc usa a classe de tradução gettext.

Dica: use a função sprintf() do PHP para que vc possa colocar __("Bom

dia %s", $nomeUsuario)

4- Depois vc instala um programa chamado POEdit. É nesse cara que vc vai

traduzir as expressões.

5- No diretório bin da instalação do POEdit (é bin tbm no windows) vai

ter um script chamado gettext.bat, vc vai executar ele passando uns

parâmentros, e dentre os parametros vc vai indicar que a função __() é a

que contem as expressões a serem traduzidas. Eu num lembro os

parametros, tem que procurar.

6- este script .bat vai gerar um arquivo .pot, que nada mais é que um

índice com as expressões a serem tradizidas. Se vc abrir com o notepad

vc vai ver que ele indica quais arquivos e devidas linhas usam aquela

expressão.

7- Com o POEdit, vc vai abrir o arquivo .pot e vai traduzindo, ao salvar

(Ctrl+s) é gerado um arquivo .mo que é o que vc vai colocar no site e o

que a classe gettext vai usar e indexar.



Eu sei, é meio confuso esse lance de .pot, .mo e __() ou _() e por ai

vai.. mas vc consegue! =]



Se precisar de explicações mais esmiuçadas de algum ponto ali pode pedir!



Usei essa técnica durante 2 anos mais ou menos e nunca me deixou na mão!



Esse projeto http://www.ilhadota buleiro.com. br/anunciantes/ eu usei essa

técnica. A tradução não fui eu quem fez, foi um professor lá...



Dê uma olhada, teste!



Vlw????



zipado50 escreveu:

>

> Olá para todos,

>

> Estou desenvolvendo um site multi idioma e gostaria de saber se esta é

> a melhor e mais pratica solução:

>

> <?php

> //multiIdioma. php

> session_start( );

>

> if(!isset($_ POST["por" ]) AND !isset($_POST[ "ing"]) AND

> !isset($_POST[ "esp"])){

> $idioma = "por";}

> else{

> if(isset($_POST[ "por"])){ $idioma = "por";}

> if(isset($_POST[ "ing"])){ $idioma = "ing";}

> if(isset($_POST[ "esp"])){ $idioma = "esp";}

> }

>

> echo($idioma) ;

>

> if($idioma== "por"){$idi[ por][1] = "eu te amo muito!...";}

> if($idioma== "ing"){$idi[ ing][1] = "I love you so much!...";}

> if($idioma== "esp"){$idi[ esp][1] = "Yo te amo mucho!...";}

>

> ?>

>

> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

> "http://www.w3. org/TR/xhtml1/ DTD/xhtml1- strict.dtd

> <http://www.w3. org/TR/xhtml1/ DTD/xhtml1- strict.dtd>">

> <html xmlns="http://www.w3. org/1999/ xhtml

> <http://www.w3. org/1999/ xhtml>" xml:lang="pt- br" lang="pt-br" >

> <head>

> <title></title>

> </head>

> <body>

> <form action="<?php echo $PHP_SELF; ?>" method="post" >

> <input type="submit" name="por" value="portugues" >

> <input type="submit" name="ing" value="ingles" >

> <input type="submit" name="esp" value="espanhol" >

> </form>

>

> <h1><?php echo $idi[$idioma] [1]; ?></h1>

> <div id=""><?php echo($idi[$idioma] [1]); ?></div>

> </body>

> </html>

>

> Ou seja colocar os dados em um array bidimensional e ir ecoando pelas

> paginas.

>

> Agradeço sugestões e comentários

>

> obrigado

> Oliveira

>

>  


     

   
   
       
         
       
       








       


       
       


      Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com.
http://br.new.mail.yahoo.com/addresses

[As partes desta mensagem que não continham texto foram removidas]


Re: site Multi Idioma

by Ricardo Barros :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Olá WebAdmin,

A performance é muito importante sim, vou estudar esta solução com muita atenção.

obrigado
Zipado50


--- Em ter, 22/7/08, WebAdmin <webadmin@...> escreveu:
De: WebAdmin <webadmin@...>
Assunto: Re: [php-pt] site Multi Idioma
Para: php-pt@...
Data: Terça-feira, 22 de Julho de 2008, 8:47










   
            Cara.. segue a mesma idéia do array que ele fez, mas o array ainda é

mais rápido que a constante.



Não em questão de acesso à informação desejada, mas sim que a constante

utiliza mais recursos de servidor para poder manter ela como readonly e

tals...



Sinceramente, sem querer me gambar, a solução do gettext é a usada nos

softwares OpenSource e o melhor é que não precisa ser vc para traduzir,

basta o programa (POEdit) que um professor qualquer consegue traduzir.



Clao que o pojeto é seu, vc faz o que bem entender... Mas se vc pensa em

performance e comodidade caso tenha alguma outra implementação futura

com certeza o lance dos POT e MO te darão uma resposta bem melhor.



Outra desvantagem do tipo de tradução indexada na linguagem é a

possibilidade de repetição da expressão, com o gettext ele elimina

expressões iguais.



Isso sem falar que vc vai ter o seguinte no seu codigo:

<h1><?php echo __("Título do site"); ?></h1>



e não:



<h1><?php echo $traducao[$idioma_ selecionado] ["Título do site"]; ?></h1>



ou



<h1><?php echo TITULO_SITE; ?></h1>



O lance da cnstante vc ainda pode passar a usar nomes de constantes que

não sejam o texto real, por exemplo:



define("TITULO_ SITE", "Título do site") -> aqui tudo bem

define("TITULO_ SITE", "Organizações Tabajara") -> aqui vc já não tem no

nome da constante o valor dela



Cara.. eu poderia ficar aqui listando vários outros motivos do porque

usar o gettext mas vou ficar muito chato hehehe



No começo é um pouco difícil mesmo, mas depois com o tempo vc pega a

manha e o legal é que fica nos padrões dos softwares OpenSource,

facilita se alguém se encarna em traduzir o seu site pra vc! aew vc

manda o arquivo .pot e o cara te devolve o .mo, sem percisar programar

uma linha sequer vc disponibiliza o idioma no seu site! =]



Vai por mim bicho, fizemos todo um estudo onde eu trabalhava para saber

qual a melhor forma e decidimos por esta!



=]



Vlw mano, qualquer dúvida pergunta aew!



Alexandre de Andrade Barbosa escreveu:

>

> Acho que você pode usar constantes em php para isso.

>

> É simples, vc define um arquivo com todos os textos que devem ser

> exibidos na tela em forma de contantes. De acordo com o idioma escolhido

> em sessão, você carrega o arquivo de constantes apropriado.

>

> É melhor assim pois facilita a inclusão de outros idiomas caso queira.

>

> <?php

>

> if ($_SESSION[" idiomaDefault" ] == "PT_BR")

> {

> include_once( 'arquivo_ pt_br.inc. php');

> }

> elseif ($_SESSION[" idiomaDefault" ] == "EN)

> {

> include_once( 'arquivo_ en.inc.php' );

> }

>

> Os arquivos de constantes seria algo assim:

>

> <?php

> //arquivo_pt_ br.inc.php

>

> define(_EU_TE_ AMO,'Eu te amo');

>

> ?>

>

> <?php

> //arquivo_en. inc.php

>

> define(_EU_TE_ AMO,'I love you');

>

> ?>

>

> para sair com o texto correto, use, depois de incluir o arquivo de

> constante correto:

>

> <?php print(_EU_TE_ AMO); ?>

>

> Espero ter te ajudado.

>

> Um abraço!

> ------------ --------- --------- --------- --------- -

> Alexandre de Andrade Barbosa

> alexandre@andradeba rbosa.com <mailto:alexandre% 40andradebarbosa .com>

> <mailto:alexandre@andradeba rbosa.com

> <mailto:alexandre% 40andradebarbosa .com>>

> http://www.andradeb arbosa.com <http://www.andradeb arbosa.com>

> http://www.gestorde ti.com.br <http://www.gestorde ti.com.br>

> http://www.desenvol vedorphp. com.br <http://www.desenvol vedorphp. com.br>

> http://www.prevenca o.odo.br <http://www.prevenca o.odo.br>

> Só sei que nada sei!

> ------------ --------- --------- --------- --------- -

>

> zipado50 escreveu:

> >

> > Olá para todos,

> >

> > Estou desenvolvendo um site multi idioma e gostaria de saber se esta é

> > a melhor e mais pratica solução:

> >

> > <?php

> > //multiIdioma. php

> > session_start( );

> >

> > if(!isset($_ POST["por" ]) AND !isset($_POST[ "ing"]) AND

> > !isset($_POST[ "esp"])){

> > $idioma = "por";}

> > else{

> > if(isset($_POST[ "por"])){ $idioma = "por";}

> > if(isset($_POST[ "ing"])){ $idioma = "ing";}

> > if(isset($_POST[ "esp"])){ $idioma = "esp";}

> > }

> >

> > echo($idioma) ;

> >

> > if($idioma== "por"){$idi[ por][1] = "eu te amo muito!...";}

> > if($idioma== "ing"){$idi[ ing][1] = "I love you so much!...";}

> > if($idioma== "esp"){$idi[ esp][1] = "Yo te amo mucho!...";}

> >

> > ?>

> >

> > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

> > "http://www.w3. org/TR/xhtml1/ DTD/xhtml1- strict.dtd

> <http://www.w3. org/TR/xhtml1/ DTD/xhtml1- strict.dtd>

> > <http://www.w3. org/TR/xhtml1/ DTD/xhtml1- strict.dtd

> <http://www.w3. org/TR/xhtml1/ DTD/xhtml1- strict.dtd>>">

> > <html xmlns="http://www.w3. org/1999/ xhtml

> <http://www.w3. org/1999/ xhtml>

> > <http://www.w3. org/1999/ xhtml <http://www.w3. org/1999/ xhtml>>"

> xml:lang="pt- br" lang="pt-br" >

> > <head>

> > <title></title>

> > </head>

> > <body>

> > <form action="<?php echo $PHP_SELF; ?>" method="post" >

> > <input type="submit" name="por" value="portugues" >

> > <input type="submit" name="ing" value="ingles" >

> > <input type="submit" name="esp" value="espanhol" >

> > </form>

> >

> > <h1><?php echo $idi[$idioma] [1]; ?></h1>

> > <div id=""><?php echo($idi[$idioma] [1]); ?></div>

> > </body>

> > </html>

> >

> > Ou seja colocar os dados em um array bidimensional e ir ecoando pelas

> > paginas.

> >

> > Agradeço sugestões e comentários

> >

> > obrigado

> > Oliveira

> >

> >

>

> [As partes desta mensagem que não continham texto foram removidas]

>

>  


     

   
   
       
         
       
       








       


       
       


      Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com.
http://br.new.mail.yahoo.com/addresses

[As partes desta mensagem que não continham texto foram removidas]


Re: site Multi Idioma

by Webadmin-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Bom, note que o texto Login e senha muda para Login e Password...

É que o professor que estava traduzindo nunca mais edu as caras, hehehe!

Ricardo Barros escreveu:

>
> Olá WebAdmin,
>
> Obrigado pela sugestão, vou estudar esta opção sim e certamente é uma
> contribuição interessante, mas entrei no site exemplo
> http://www.ilhadota buleiro.com. br/anunciantes/ e lá não está
> funcionando só aparece em português, quando vc clica na opção inglês o
> listbox muda pra inglês mas o texto permanece em português.
>
> Obrigado
> Zipado50
>
> --- Em seg, 21/7/08, WebAdmin <webadmin@...
> <mailto:webadmin%40gam.com.br>> escreveu:
> De: WebAdmin <webadmin@... <mailto:webadmin%40gam.com.br>>
> Assunto: Re: [php-pt] site Multi Idioma
> Para: php-pt@... <mailto:php-pt%40yahoogrupos.com.br>
> Data: Segunda-feira, 21 de Julho de 2008, 8:52
>
> Cara.. faz isso não pq é 120% mais lento que qualquer outro método, vai
>
> por mim! hehehe
>
> Dê uma olhada em http://www.php. net/manual/ pt_BR/function. gettext.php.
>
> Ou então faça como o wordpress faz (que não depende de configuração no
>
> servidor)
>
> Dá uma procurada por gettext.... Vou tentar explicar como funciona:
>
> 1- Vá em http://download. savannah. gnu.org/releases /php-gettext/ e
> baixe
>
> a versão mais atual (php-gettext- 1.0.3.tar. gz
>
> <http://download. savannah. gnu.org/releases /php-gettext/
> php-gettext- 1.0.3.tar. gz>)
>
> 2- Você cria o site inteiro, e o que vc quizer que apareça traduzido vc
>
> coloca <?php echo __('Teste'); ?>
>
> 3- Crie a função __() e dentro dela vc usa a classe de tradução gettext.
>
> Dica: use a função sprintf() do PHP para que vc possa colocar __("Bom
>
> dia %s", $nomeUsuario)
>
> 4- Depois vc instala um programa chamado POEdit. É nesse cara que vc vai
>
> traduzir as expressões.
>
> 5- No diretório bin da instalação do POEdit (é bin tbm no windows) vai
>
> ter um script chamado gettext.bat, vc vai executar ele passando uns
>
> parâmentros, e dentre os parametros vc vai indicar que a função __() é a
>
> que contem as expressões a serem traduzidas. Eu num lembro os
>
> parametros, tem que procurar.
>
> 6- este script .bat vai gerar um arquivo .pot, que nada mais é que um
>
> índice com as expressões a serem tradizidas. Se vc abrir com o notepad
>
> vc vai ver que ele indica quais arquivos e devidas linhas usam aquela
>
> expressão.
>
> 7- Com o POEdit, vc vai abrir o arquivo .pot e vai traduzindo, ao salvar
>
> (Ctrl+s) é gerado um arquivo .mo que é o que vc vai colocar no site e o
>
> que a classe gettext vai usar e indexar.
>
> Eu sei, é meio confuso esse lance de .pot, .mo e __() ou _() e por ai
>
> vai.. mas vc consegue! =]
>
> Se precisar de explicações mais esmiuçadas de algum ponto ali pode pedir!
>
> Usei essa técnica durante 2 anos mais ou menos e nunca me deixou na mão!
>
> Esse projeto http://www.ilhadota buleiro.com. br/anunciantes/ eu usei
> essa
>
> técnica. A tradução não fui eu quem fez, foi um professor lá...
>
> Dê uma olhada, teste!
>
> Vlw????
>
> zipado50 escreveu:
>
> >
>
> > Olá para todos,
>
> >
>
> > Estou desenvolvendo um site multi idioma e gostaria de saber se esta é
>
> > a melhor e mais pratica solução:
>
> >
>
> > <?php
>
> > //multiIdioma. php
>
> > session_start( );
>
> >
>
> > if(!isset($_ POST["por" ]) AND !isset($_POST[ "ing"]) AND
>
> > !isset($_POST[ "esp"])){
>
> > $idioma = "por";}
>
> > else{
>
> > if(isset($_POST[ "por"])){ $idioma = "por";}
>
> > if(isset($_POST[ "ing"])){ $idioma = "ing";}
>
> > if(isset($_POST[ "esp"])){ $idioma = "esp";}
>
> > }
>
> >
>
> > echo($idioma) ;
>
> >
>
> > if($idioma== "por"){$idi[ por][1] = "eu te amo muito!...";}
>
> > if($idioma== "ing"){$idi[ ing][1] = "I love you so much!...";}
>
> > if($idioma== "esp"){$idi[ esp][1] = "Yo te amo mucho!...";}
>
> >
>
> > ?>
>
> >
>
> > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
>
> > "http://www.w3. org/TR/xhtml1/ DTD/xhtml1- strict.dtd
>
> > <http://www.w3. org/TR/xhtml1/ DTD/xhtml1- strict.dtd>">
>
> > <html xmlns="http://www.w3. org/1999/ xhtml
>
> > <http://www.w3. org/1999/ xhtml>" xml:lang="pt- br" lang="pt-br" >
>
> > <head>
>
> > <title></title>
>
> > </head>
>
> > <body>
>
> > <form action="<?php echo $PHP_SELF; ?>" method="post" >
>
> > <input type="submit" name="por" value="portugues" >
>
> > <input type="submit" name="ing" value="ingles" >
>
> > <input type="submit" name="esp" value="espanhol" >
>
> > </form>
>
> >
>
> > <h1><?php echo $idi[$idioma] [1]; ?></h1>
>
> > <div id=""><?php echo($idi[$idioma] [1]); ?></div>
>
> > </body>
>
> > </html>
>
> >
>
> > Ou seja colocar os dados em um array bidimensional e ir ecoando pelas
>
> > paginas.
>
> >
>
> > Agradeço sugestões e comentários
>
> >
>
> > obrigado
>
> > Oliveira
>
> >
>
> >
>
>
>
>
>
>
>
>
>
>
>
> Novos endereços, o Yahoo! que você conhece. Crie um email novo com a
> sua cara @ymail.com ou @rocketmail.com.
> http://br.new.mail.yahoo.com/addresses 
> <http://br.new.mail.yahoo.com/addresses>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
LightInTheBox - Buy quality products at wholesale price