pergunta script php multilingue

votos
0

Eu tenho esse script PHP. É o único que realmente funcionou para mim:

<?php
/*Check_if_user_has_changed_language: */
if(isset($lang)){/*If_so:*/
    setcookie(ling,$lang,time()-60*60*24*365,/,.sayip.info,0);/*Wipe_previous_cookie*/
    setcookie(ling,$lang,time()+60*60*24*365,/,.sayip.info,0);/*Whatever_the_means_lang_has_been_stored,_store_latest_lang_in_new_cookie:*/
    //echo <script language=\JavaScript\>alert('Selected language=$lang')</script>;/*UnComment_to_check*/
}else{/*If_user_has_NOT_changed_language:*/
    if(isset($_COOKIE['ling'])){/*Check_if_user-language_cookie_is_set._If_so:*/
        $lang=$_COOKIE['ling'];
        setcookie(ling,$lang,time()-60*60*24*365,/,.sayip.info,0);/*Wipe_previous_cookie*/
        setcookie(ling,$lang,time()+60*60*24*365,/,.sayip.info,0);
        //echo <script language=\JavaScript\>alert('Cookie language=$lang')</script>;/*UnComment_to_check*/
    }else{/*If_user-language_neither_selected_nor_in_cookie,_choose_browser_language:*/
        $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
        setcookie(ling,$lang,time()+60*60*24*365,/,.sayip.info,0);
        //echo <script language=\JavaScript\>alert('Your browser language=$lang')</script>;/*UnComment_to_check*/
    }
}
?>

Primeiro o código detecta o idioma do navegador do usuário. Isso está ok.

Em seguida, armazena a informação em um cookie. Isso está ok.

Pois bem, neste pedaço de código a tudo ok. O que eu realmente preciso é criar uma opção para os visitantes alterar o idioma. Eu estava pensando em algo como imagens bandeira ligados por isso, quando alguém clicar na bandeira que altera o idioma.

Alguém pode explicar-me através de um exemplo ou até mesmo uma solução limpa, cheia? Minhas habilidades em PHP são pobres.

Desde já, obrigado.

Publicado 19/05/2009 em 18:38
fonte usuário
Em outras línguas...                            


4 respostas

votos
0

A solução mais elegante pode ser para verificar os cabeçalhos do usuário. A maioria dos navegadores permitirá que os usuários para definir seu idioma preferido nas preferências. Este, por sua vez, envia um cabeçalho HTTP com o pedido. O cabeçalho se parece com isso.

Accept-Language: en-us, en; q = 0,8, ar-ly; q = 0,5, id; q = 0,3

O valor é uma lista delimitada por vírgulas de línguas aceites, por ordem de preferência (o q = x parte é a preferência). Dessa forma, você pode detectar automaticamente o idioma que o usuário tenha optado por ver a web, e exibi-lo se você tem isso.

Respondeu 20/05/2009 em 06:07
fonte usuário

votos
0

Eu não tenho certeza se eu tenho a sua pergunta certa

se o seu vai colocar um link para cada idioma em sua página, faça um link algo como http://www.example.com/?lang=jp

em seguida, no código php antes do script que você postou add

if (isset($_GET['lang'])) $lang = $_GET['lang'];

é isso que você mento?

Respondeu 19/05/2009 em 21:45
fonte usuário

votos
0

Eu colocaria para se eu sabia como lol ... Desde que eu tenho esse script trabalhando depois de testar mais ou menos 10 roteiros diferentes, im não gosta de cair, só precisa de um exemplo em como colocar bandeiras e quando alguém clicar na bandeira ele muda de valor do cookie ...

Respondeu 19/05/2009 em 19:05
fonte usuário

votos
0

Eu colocaria o idioma selecionado na URL, por exemplo . Isso faz com que o idioma selecionado transparente e fácil de mudar.http://example.com/en/foo/bar

Respondeu 19/05/2009 em 18:42
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more