Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Individuare la nazionalità

    Ciao, è ore che cerco su internet ma non riesco a trovare un modo per reindirizzare gli utenti del mio sito alla versione italiana o inglese a seconda della loro provenienza, avevo pensato all'IP, ma...
    non so il prefisso inglese, e nemmeno quello italiano



  2. #2
    forse potresti provare a fare un controllo su $_SERVER['HTTP_ACCEPT_LANGUAGE']
    se è it lo mandi alla versione italiana, altrimenti a quella inglese..

  3. #3

  4. #4
    prova a stampare il contenuto di $_SERVER['HTTP_ACCEPT_LANGUAGE']
    e vedi cosa restituisce.
    se magari restituisce più cose,le metti in un array e controlli se c'è it

  5. #5

  6. #6
    ho trovato uno script

    -----------------------------------------------------------
    // questa pagina reindirizza il navigatore a seconda della lingua
    function lixlpixel_get_env_var($Var)
    {
    if(empty($GLOBALS[$Var]))
    {
    $GLOBALS[$Var]=(!empty($GLOBALS['_SERVER'][$Var]))?
    $GLOBALS['_SERVER'][$Var]:
    (!empty($GLOBALS['HTTP_SERVER_VARS'][$Var]))?
    $GLOBALS['HTTP_SERVER_VARS'][$Var]:'';
    }
    }

    function lixlpixel_detect_lang()
    {
    // Detect HTTP_ACCEPT_LANGUAGE & HTTP_USER_AGENT.
    lixlpixel_get_env_var('HTTP_ACCEPT_LANGUAGE');
    lixlpixel_get_env_var('HTTP_USER_AGENT');

    $_AL=strtolower($GLOBALS['HTTP_ACCEPT_LANGUAGE']);
    $_UA=strtolower($GLOBALS['HTTP_USER_AGENT']);

    // Try to detect Primary language if several languages are accepted.
    foreach($GLOBALS['_LANG'] as $K)
    {
    if(strpos($_AL, $K)===0)
    return $K;
    }

    // Try to detect any language if not yet detected.
    foreach($GLOBALS['_LANG'] as $K)
    {
    if(strpos($_AL, $K)!==false)
    return $K;
    }
    foreach($GLOBALS['_LANG'] as $K)
    {
    if(preg_match("/[\[\( ]{$K}[;,_\-\)]/",$_UA))
    return $K;
    }

    // Return default language if language is not yet detected.
    return $GLOBALS['_DLANG'];
    }

    // Define default language.
    $GLOBALS['_DLANG']='en';

    // Define all available languages.
    // WARNING: uncomment all available languages

    $GLOBALS['_LANG'] = array(
    'af', // afrikaans.
    'ar', // arabic.
    'bg', // bulgarian.
    'ca', // catalan.
    'cs', // czech.
    'da', // danish.
    'de', // german.
    'el', // greek.
    'en', // english.
    'es', // spanish.
    'et', // estonian.
    'fi', // finnish.
    'fr', // french.
    'gl', // galician.
    'he', // hebrew.
    'hi', // hindi.
    'hr', // croatian.
    'hu', // hungarian.
    'id', // indonesian.
    'it', // italian.
    'ja', // japanese.
    'ko', // korean.
    'ka', // georgian.
    'lt', // lithuanian.
    'lv', // latvian.
    'ms', // malay.
    'nl', // dutch.
    'no', // norwegian.
    'pl', // polish.
    'pt', // portuguese.
    'ro', // romanian.
    'ru', // russian.
    'sk', // slovak.
    'sl', // slovenian.
    'sq', // albanian.
    'sr', // serbian.
    'sv', // swedish.
    'th', // thai.
    'tr', // turkish.
    'uk', // ukrainian.
    'zh' // chinese.
    );

    // Redirect to the correct location.

    header('location: '.lixlpixel_detect_lang().'/index.htm'); // Example Implementation
    //echo 'The Language detected is: '.lixlpixel_detect_lang(); // For Demonstration
    ------------------------------------------------------------

    spero ti possa essere utile

  7. #7
    Grazie a tutti: anche lo script in PHP funziona!

    Avete voglia di togliermi un ultima curiosità: in questo caso (utilizzando $_SERVER['LANG']) da quel che ho capito non viene utilizzato l'indirizzo IP dell'utente, ma l'impostazione del browser (che quindi può essere modificata). Dico giusto?

  8. #8
    Visto che siamo in tema, ma non vorrei spingermi troppo, è anche possibile risalire alla regione? (per non ire alla città?)
    Cristiano
    ---
    Originariamente inviato da rebelia : solo un nerd puo' pensare di tacchinare in un forum di informatica

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    460
    Gli IP non sono divisi per nazioni, non sono numeri di telefono.
    There are 10 types of people in the world - those who understand binary and those who don't.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    152
    Originariamente inviato da frinkia
    Gli IP non sono divisi per nazioni, non sono numeri di telefono.
    In realtà esistono database di range di IP divisi per nazioni . hanno un'accuratezza di circo l'80% , direi quindi buona .
    non so

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 © 2025 vBulletin Solutions, Inc. All rights reserved.