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

    NON CI POSSO CREDERE!!php e lingue

    Io sto davvero uscendo di testa.Sono mesi che chiedo e che vado ovunque soltanto per capire come creare un sito multilingua che vada in automatico.
    Allora io voglio suddividere le lingue in SOTTODOMINI cioè:
    http://it-it.miosito.com
    http://en-gb.miosito.com
    http://de-de.miosito.com
    etc
    etc
    etc
    etc
    Praticamente voglio fare la stessa identica cosa che fa FACEBOOK per le lingue.Mentre NON mi interessano le sottocartelle del tipo:
    http://www.miosito.com/it-it
    etc
    etc
    etc
    Allora qualcuno di buon cuore mi sa aiutare???
    Me ne hanno dette i tutti i tipi.
    Tipo questo:
    $_x_DefaultDomain = 'miosito.com';
    $_x_SupportedLangs = array('it', 'de', 'fr', 'es');
    $_x_SupportedLangsAndCountries = array('it-IT', 'de-DE', 'fr-FR', 'es-ES');
    $_x_Langs = strtolower(preg_replace( '/[^a-zA-Z0-9,;-]/m', '', $_SERVER['HTTP_ACCEPT_LANGUAGE'] ));
    if( $_x_Langs ) {
    $_x_aLangs = explode( ',', $_x_Langs ); // ru,en-us;q=0.7,en;q=0.3 => array( 'ru' , 'en-us;q=0.7' , 'en;q=0.3' );
    foreach( $_x_aLangs as $sLang ) {
    if( !$sLang ) continue;

    list( $sLang ) = explode( ';', $sLang, 2 ); // en-us;q=0.7 => en-us
    if( !$sLang ) continue;

    // check with country
    if (in_array($sLang, $_x_SupportedLangsAndCountries)){
    $_x_CurrentDomain = $sLang.'.'.$_x_DefaultDomain;
    break;
    }
    if (strpos($sLang, '-') === FALSE) continue;
    //drop country
    list( $sLang ) = explode( '-', $sLang, 2 ); // en-us => en

    //check again. without country
    if (in_array($sLang, $_x_SupportedLangs)){
    $sLang = $sLang.'-'.strtoupper($sLang);
    $_x_CurrentDomain = $sLang.'.'.$_x_DefaultDomain;
    break;
    }
    }
    $_x_CurrentDomain = isset($_x_CurrentDomain) ? $_x_CurrentDomain : 'www'.$_x_DefaultDomain;
    } else {
    $_x_CurrentDomain = 'www'.$_x_DefaultDomain;
    }


    //check correct hostname
    $aUrl = parse_url( $site['url'] );
    $aUrl['host'] = $_x_CurrentDomain;
    OPPURE MI HANNO DETTO DI UTILIZZARE IL TIPICO BANALE HEADER ACCEPT LANGUAGE CHE PERO MI DAVA LA POSSIBILITA DI UNA SOLA LINGUA.
    Insomma sto davvero impazzendo.
    Tutto quello che voglio fare è che quando un utente entra nel sito venga reindirizzao nel dominio che io ho settato per quella lingua e NON che sia il browser a decidere dove andare a cercare ma che sia io ad averglielo imposto!!!!!!Cioè se io dico che un italiano deve andare a http://it-it.miosito.com , li deve andare e non deve essere il browser a cercare il posto corretto da solo dato che io glie l ho gia specificato.
    Il mio sito è in php.DEVO SCRIVERE QUALCOSA NELL HTACCES O NELL INDEX.PHP O DOVE?????
    sono completamente ignorante..ditemi anche come creare un sottodominio d terzo livello it-it.miosito.com etc et etc con Cpanel, perche da un momento all altro inece di crearmi sottoomini ora mi crea sottocartelle.BOH!!!
    Qualcuno mi AIUTIIIII!!!!!!PER FAVORE ANDATE A VEDERE COME FA FACEBOOK O MYSPACE E? QUELLO CHE VOGLIO SAPERE!!!

    GRAZIE IN ANTICIPO A TUTTI
    sbagliando si impara

  2. #2
    UNaltra cosa.
    SE ci fate caso in Facebook appena si digita www.facebook.com si viene immediatamente reindrizzati a it-it.facebook.com, mentre appena fai il login da it-it.facebook.com passa al dominio principale www.facebook.com mantenendo la lingua dell utente.COME FA?
    E poi n altra cosa.^Quando di solito si creaun sottodominio si puo raggiungerlo in 2 modi o it-it.miosito.com o digitando il percorso www.miosito.com/it-it...in facebook questo non accade...se si digita it-it.facbook.com si va al facebook italiano...se si digita www.facebook.com/it-it ti da errore di pagina non trovata.Come è posibile?lo posso fare anche io?HELP ME
    sbagliando si impara

  3. #3
    index.php su sito.com identifica il paese di provenienza e fa un redirect

    it.miosito.com non so se puoi emularlo con mod rewrite o sia un servizio che devi comprare
    http://www.trustweb.it - Web Development - Design 2D/3D - SEO & SEM

    Twitter http://twitter.com/#!/TrustWeb
    LinkedIn http://it.linkedin.com/in/trustweb

  4. #4
    Tutto quello che voglio fare è che quando un utente entra nel sito venga reindirizzao nel dominio che io ho settato per quella lingua e NON che sia il browser a decidere dove andare a cercare ma che sia io ad averglielo imposto!!!!!! Cioè se io dico che un italiano deve andare a http://it-it.miosito.com , li deve andare e non deve essere il browser a cercare il posto corretto da solo dato che io glie l ho gia specificato.
    Scusa se te lo dico, ma questa frase mi sembra delirante.

    Come ti ha scritto giustamente MicheleWT sei te, che con le tecniche che preferisci, nella index.php vai ad identificare la lingua del tuo utente.
    Comunque, con una semplice richiesta di 3 parole su Google "Determinare lingua php" ho trovato questo script che potrebbe fare al caso tuo. LINK.

    Per la questione dei redirect multipli, a prescindere che Facebook usa pesantemente Javascript, sicuramente agisce così:
    • Si accede a facebook.com e index.php redirecta verso it-it.facebook.com (magari con uno script tipo quello che ti ho postato)
    • effettuato il login in it-it.facebook.com, la lingua usata dall'utente viene salvata in una sessione e si viene rediretti nuovamente verso il dominio facebook.com, ma nella sottopagina (che ne so) profile.php?xx=yy

    Non credo sia così difficile da implementare una cosa del genere.

    Per la questione dei domini poi, è il caso di spiegare una cosa
    codice:
    http://xxx.sito.tld
    .
    Questo è un dominio di 3° livello che di solito gli hoster fanno pagare. Che io sappia non dovrebbe essere possibile fare un dominio del genere con un url-rewriting, ma potresti comunque fare delle prove.
    codice:
    http://www.sito.tld/xxx
    .
    Non è detto si tratti di sottocartelle, ma magarti si sapiente url-rewriting... non so se hai notato ma tutti i blog scritti con WordPress ne fanno un uso colossale.

    ah... un sottodiminio, nello spazio server È una cartella.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  5. #5
    Alcio74 hai un'invidiabile pazienza
    http://www.trustweb.it - Web Development - Design 2D/3D - SEO & SEM

    Twitter http://twitter.com/#!/TrustWeb
    LinkedIn http://it.linkedin.com/in/trustweb

  6. #6
    Originariamente inviato da MicheleWT
    Alcio74 hai un'invidiabile pazienza
    Sarà l'età, a sto punto!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #7
    Grazie Alcio74.Dopo varie prove sono riuscito a far funzionare anche il modo che ho postato io ..che è molto simile a quello che hai postato tu.Partendo dal modo che che ho usato io sapresti dirmi ora come fare la cosa che mi hai spiegato di Facebook dopo il login, o comunque qualcosa di simile.
    Il mio sito è ora cosi strutturato
    www.miosito.com (dominio principale)
    it-it.miosito.com
    fr-fr.miosito.com
    de-de.miosito.com
    es-es.miosito.com
    Come faccio ora a fare il reindirizzamento al dominio principale dopo il login a www.miosito.com?
    Grazie in anticipo
    sbagliando si impara

  8. #8
    Beh.... Pensavo di essere stato chiaro, avendoti scritto la procedura passo passo.
    Si accede a facebook.com e index.php redirecta verso it-it.facebook.com (magari con uno script tipo quello che ti ho postato)
    effettuato il login in it-it.facebook.com, la lingua usata dall'utente viene salvata in una sessione e si viene rediretti nuovamente verso il dominio facebook.com, ma nella sottopagina (che ne so) profile.php?xx=yy
    Devi fare due pagine nel dominio principale: la prima per forza index.php, la seconda la puoi chiamare home.php. Nel dominio di 3° livello, invece (http://it-it.tuosito.com]), fai una pagina chiamata login.php.

    La pagina index.php del dominio principale, avrà solo lo script che redirecta nel 3° livello.
    Codice PHP:
    <?php // questa è index.php
    session_start();
    /*
    qui metti tutto lo scrit di riconoscimento della lingua
    per trasportare la variabile con l'impostazione 
    ti consiglio di usare le sessioni
    */

    $_SESSION['lingua_utente'] = $risultato_dello_script;
     
    header("location: http://it-it.tuosito.com/login.php");
    ?>
    La pagina cui rimandi avrà lo script di identificazione della lingua, poi un redirect al dominio principale.
    Codice PHP:
    <?php // questa è login.php
    session_start();
    $lingua $_SESSION['lingua_utente'];
    /*
    qui metti la procedura di login localizzata nella lingua
    dell'utente che visualizza la pagina  
    se il login va a buon fine redirect verso il sito principale
    */

    if (LOGIN OK) {
     
    header("location: http://www.tuosito.com/home.php");
    } else {
      echo 
    "Messaggio di Errore";
    }
    ?>
    Infine, home.php recupererà il parametro della lingua del'utente e restituirà le informazioni localizzate in quella lingua.
    Codice PHP:
    <?php // questa è home.php.php
    session_start();
    $lingua $_SESSION['lingua_utente'];

    // qui metti tutto il resto del tuo sito
    ?>
    Chiaro?
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  9. #9
    @ yourartnet
    Vedi, io mi diverto a programmare e dare una mano (per quanto possibile) qui nel forum, però non ho proprio né la voglia né il tempo per rispondere ad un post in tempo reale.
    Ricevo email di tutti i thread cui partecipo che hanno una risposta. Più ho il feed RSS del forum.
    Non trovo carino ricevere un messaggio privato per esortarmi a rispondere.
    Poi fa te....

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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.