Site em línguas diferentes

kodiak

Power Member
Olá pessoal.

Estou a alterar um template em html5 e CSS3 e como ainda estou a aprender tenho uma dúvida.

Imaginemos que o site é acedido por portugueses e americanos. Se fosse por português, o site determinava que a linguagem era pt e apresentava o conteúdo em português. Se fosse americano, apresentava o conteúdo em inglês.

Obviamente era eu que fazia a tradução e a armazenava em algum lado.

Eu sei que posso sempre criar duas páginas nas línguas pretendidas e colocar um link para as diferentes línguas mas gostava de saber se isso é possível fazer progmaticamente.

Obrigado

kodiak
 
Lê isto, é mais próximo do que querias fazer inicialmente:

http://httpd.apache.org/docs/current/content-negotiation.html

Isto não impede que tenhas também as bandeirinhas, ou outro tipo de links para línguas diferentes. Esta página, por exemplo, usa content negotiation e tem links para todas as alternativas disponíveis:

http://www.debian.org/devel/website/content_negotiation

Ok. Estive a ver e parece bastante complicado. Vou tentar ver melhor.

Tenta ver se percebes isto.
Depois aplicas na página toda.

Ok. Entendido mas assim não elimino a necessidade de ter um sítio onde o user clicka para mudar a linguagem...

Obrigado a ambos pela ajuda.

kodiak
 
Acho que o que tu queres é que seja automaticamente detetada a língua do sistema e a partir daí vais buscar o conteúdo.
Acho que o mais fácil seria com PHP:

Código:
 $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
switch ($lang){
    case "pt":
        // incluir conteúdo em português
        break;
    case "en":
        // incluir conteúdo em inglês
        break;
    case "fr":
        // incluir conteúdo em francês
        break;
    default:
        // incluir conteúdo em inglês
        break;
}
 
Acho que o que tu queres é que seja automaticamente detetada a língua do sistema e a partir daí vais buscar o conteúdo.
Acho que o mais fácil seria com PHP:

Código:
 $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
switch ($lang){
    case "pt":
        // incluir conteúdo em português
        break;
    case "en":
        // incluir conteúdo em inglês
        break;
    case "fr":
        // incluir conteúdo em francês
        break;
    default:
        // incluir conteúdo em inglês
        break;
}

É isso mesmo.

O problema é ser em php. O site é html
 
Acho que já te deram sugestões muito boas para resolver o teu problema. Mas venho apenas deixar uma opinião: diferencia sempre cada recurso na Internet, isto é, uma página com o conteúdo em inglês e outra com o conteúdo em português devem ser dois recursos diferentes, logo, devem estar em URIs diferentes. Isto é importante porque eu posso querer partilhar uma página em português com o meu amigo que está na Alemanha, com um computador com o browser em alemão. Se não diferenciares cada página, ao enviar o endereço da página, ele irá ver a versão em alemão (se usar um browser em alemão), e não a portuguesa, como eu pretendia.

Resumindo, aplica a deteção automática de idioma, quando o utilizador não te diz explicitamente qual pretende, mas diferencia as páginas, para alguém poder partilhá-las "tal como estão". Por exemplo: example.com/pt/pagina.html ou example.com/pagina-pt.html, visto que usas apenas HTML. Se usasses PHP, podias diferenciar isso na query string: site.com/pagina.php?lang=pt .

Por último, acho que a deteção automática deve estar para ajudar e não para restringir a experiência do utilizador: dá a liberdade ao utilizador de escolher em que idioma quer ver o site, usando as tradicionais bandeiras ou uma caixa de seleção, por exemplo. Assim, qualquer um pode ver a página no idioma que quer, independentemente das definições do browser.
 
Acho que já te deram sugestões muito boas para resolver o teu problema. Mas venho apenas deixar uma opinião: diferencia sempre cada recurso na Internet, isto é, uma página com o conteúdo em inglês e outra com o conteúdo em português devem ser dois recursos diferentes, logo, devem estar em URIs diferentes. Isto é importante porque eu posso querer partilhar uma página em português com o meu amigo que está na Alemanha, com um computador com o browser em alemão. Se não diferenciares cada página, ao enviar o endereço da página, ele irá ver a versão em alemão (se usar um browser em alemão), e não a portuguesa, como eu pretendia.

Resumindo, aplica a deteção automática de idioma, quando o utilizador não te diz explicitamente qual pretende, mas diferencia as páginas, para alguém poder partilhá-las "tal como estão". Por exemplo: example.com/pt/pagina.html ou example.com/pagina-pt.html, visto que usas apenas HTML. Se usasses PHP, podias diferenciar isso na query string: site.com/pagina.php?lang=pt .

Por último, acho que a deteção automática deve estar para ajudar e não para restringir a experiência do utilizador: dá a liberdade ao utilizador de escolher em que idioma quer ver o site, usando as tradicionais bandeiras ou uma caixa de seleção, por exemplo. Assim, qualquer um pode ver a página no idioma que quer, independentemente das definições do browser.

Ok. Obrigado por mais esta sugestão
 
Back
Topo