Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875

    Far aprire il sito in base alla lingua da dove avviene l'accesso

    Sto facendo la traduzione in varie lingue di un mio sito e vorrei che la lingua si settasse in automatico sulla lingua che parlano nel paese dove avviene l'accesso.
    Per esempio, se sul sito entra un tedesco, il sito deve aprirsi gia in lingua tedesca.
    Come posso fare questa cosa, o meglio come faccio a capire che lingua parla l'utente che effettua l'accesso?

  2. #2
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Nel header della richiesta ce anche specificato il linguaggio supportato, nella maggior parte delle volte anche una sorta di priorita'.
    Per gli Spartani e Sparta usa spartan Il mio github

  3. #3
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Originariamente inviato da linoma
    Nel header della richiesta ce anche specificato il linguaggio supportato, nella maggior parte delle volte anche una sorta di priorita'.
    e in che modo devo sapere il linguaggio?

  4. #4
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Prova qui tra le specifiche dello standard
    Il browser nel momento della richiesta pagina dovrebbe inviarti anche informazioni sul linguaggio supportato.
    Per gli Spartani e Sparta usa spartan Il mio github

  5. #5
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Originariamente inviato da linoma
    Prova qui tra le specifiche dello standard
    Il browser nel momento della richiesta pagina dovrebbe inviarti anche informazioni sul linguaggio supportato.
    quindi tramite php non posso sapere che lingua parla il browser?
    nel senso, il php non c'entra molto su questo?

  6. #6
    certo che si può... con $_SERVER['HTTP_ACCEPT_LANGUAGE']
    Ad esempio:
    http://it.php.net/manual/en/reserved...rver.php#90592

    Però con alcune cutele:
    http://forum.html.it/forum/showthrea...readid=1431688
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  7. #7
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    ho provato a mettere:
    Codice PHP:
    $language = (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : 'it';
    echo
    "$language"
    e l'ho fatto vedere da 2 computer che non stanno in italia ma in ucraina, irlanda ma esce sempre:

    it-it,it;q=0.8,en-us;q=0.5,en;q=0.3

    come mai?

    non dovrei ricavare la lingua e poi fare un ciclo if che dice
    se la lingua e' it mostra lang=it
    se la lingua e' en mostra lang=en
    ecc?

  8. #8
    Originariamente inviato da allin81
    ho provato a mettere:
    Codice PHP:
    $language = (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : 'it';
    echo
    "$language"
    e l'ho fatto vedere da 2 computer che non stanno in italia ma in ucraina, irlanda ma esce sempre:

    it-it,it;q=0.8,en-us;q=0.5,en;q=0.3

    come mai?

    non dovrei ricavare la lingua e poi fare un ciclo if che dice
    se la lingua e' it mostra lang=it
    se la lingua e' en mostra lang=en
    ecc?
    La variabile $_SERVER['HTTP_ACCEPT_LANGUAGE'] legge l'header request inviata dal browser. Prescinde quindi totalmente dalla localizzazione del dispositivo.

    Tradizionalmente gli italiani impostano il loro browser sulla lingua italia. Ad esempio sulla mia verisone di Chrome per impostare la lingua faccio:
    Opzioni -> Roba da smanettoni -> Contenuti web -> Impostazioni di lingua e controllo ortografico...

    Quindi se il mio browser ha la lingua impostata su Italiano, a prescindere dal luogo da cui mi connetto, la mia header request della lingua sara l'italiano.

    Spero di essere stato chiaro.
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  9. #9
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Originariamente inviato da oly1982
    La variabile $_SERVER['HTTP_ACCEPT_LANGUAGE'] legge l'header request inviata dal browser. Prescinde quindi totalmente dalla localizzazione del dispositivo.

    Tradizionalmente gli italiani impostano il loro browser sulla lingua italia. Ad esempio sulla mia verisone di Chrome per impostare la lingua faccio:
    Opzioni -> Roba da smanettoni -> Contenuti web -> Impostazioni di lingua e controllo ortografico...

    Quindi se il mio browser ha la lingua impostata su Italiano, a prescindere dal luogo da cui mi connetto, la mia header request della lingua sara l'italiano.

    Spero di essere stato chiaro.
    si ok, cosi' va anche bene, pero' ora ho fatto in questo modo:

    Codice PHP:
    function detectlanguage() {
        
    $langcode explode(";"$_SERVER['HTTP_ACCEPT_LANGUAGE']);
        
    $langcode explode(","$langcode['0']);
        return 
    $langcode['0'];
        }

    $language detectlanguage();

    if (
    $language=="en") {
    header("location:index.php?lang=en");
    }
    if (
    $language=="de-de") {
    header('location:index.php?lang=de');
    }
    if (
    $language=="fr") {
    header('location:index.php?lang=fr');
    }
    if (
    $language=="ru") {
    header('location:index.php?lang=ru');
    }
    if (
    $language=="it") {
    header('location:index.php?lang=it-it');

    pero' firefox mi dice:

    Questa pagina non reindirizza in modo corretto
    Firefox ha rilevato che il server sta reindirizzando la richiesta per questa pagina in modo che non possa mai essere completata.
    Questo problema spesso è causato dal blocco o dal rifiuto dei cookie.


    Ho impostato il mio firefox in en...

  10. #10
    Non saprei per quale motivo ti genera questo tipo di errore.
    dopo il redirect aggiungi exit;
    Mica stai eseguendo un redirect sulla pagina corrente?

    In ogni caso ti suggerisco di leggere più attentamente il secondo link che ti ho lasciato in precedenza.

    Inoltre utilizza lo switch e non una serie di if ridondanti.
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.