• User

    Rimanere nella stessa pagina cambiando la lingua

    Ciao ragazzi, in pratica devo costruire un portale che è formato da diverse lingue, questo però per favorire l'indicizzazione dai motori di ricerca deve essere riscritto con la regola del modrewrite, questa regola si applica nel file .htaccess e serve a mascherare la query string in una pagina statica (ma in realtà non lo è). Esempio:

    La pagina non riscritta (cioè senza regola del modrewrite applicata) sarà:

    mia_pagina?lingua=ita&testo=ciao

    mentre la pagina riscritta (con la regola del modrewrite applicata) sarà:

    mia_pagina-ita-ciao.htm

    Sulla base di questo io devo fare in modo che se mi trovo su una pagina qualsiasi di questo portale e voglio passare ad un'altra lingua presente devo cliccare sulla bandierina e (ricaricando la pagina) mi deve portare sulla stessa pagina però tradotta nella lingua che ho cliccato.

    Ecco un esempio di portale che utilizza questo sistema, provate a cliccare su una qualsiasi lingua presente sul sito e guarda sulla barra degli indirizzi:

    nozio.com/it/Europa/Italia/Lazio/Roma/alloggi/

    Grazie

    Matt86


  • ModSenior

    Basta ottenere la posizione corrente, e sostituire la lingua attuale con la nuova.
    Quindi rimandare in mia_pagina?lingua=nuovalingua&testo=ciao
    Riscritta con il mod_rewrite


  • User

    Ciao Thedarkita,
    potresti farmi un esempio che non ho capito bene? come la trovo la posizione?


  • ModSenior

    Beh tu le variabili GET le prendi per capire quale pagina mostrare, basta rimandarle in output e rigenerare il link

    esempio vado su pagina.php?page=asd
    La variabile $_GET['page'] sarà uguale ad asd
    Quindi facendo <a href="pagina.php<?=$_GET['page']?>">
    Trovo la pagina corrente, basta aggiungere invece di ita, la lingua corretta verso cui indirizzare, è più facile a farsi che a dirsi 😉


  • User

    Ma scusa, se la pagina è riscritta? cioè io non ho solo ita deve essere:

    pagina.php?lingua=ita&testo=ciao_mondo

    e quindi:

    pagina-ita-ciao_mondo.htm


  • ModSenior

    E' uguale cambia il formato, ma non il resto... invece di pagina.php?var usi il formato che hai scelto usando il mod_rewrite
    Le variabili sono comunque GET e a ricreare il link attuale non ci vuole niente, e per cambiare la lingua e sufficiente mettere la variabile GET diversa dalla corrente


  • User

    Ciao Thedarkita, credo che sarò diventato il tuo peggiore incubo,
    mi spiego meglio, la mia struttura è fatta con header.php, corpo.php e footer quello che mi hai detto tu come puoi vedere sotto ci sono riuscito, il problema è che io in una pagina ho (come parametri get) **id, titolo e lingua **in ultra pagina io ho id, categoria, messaggio, titolo e lingua.
    Quello che non ho capito e che cercavo di spiegarti è questo. Cioè io come devo fare a cambiare lingua e a rimanere sulla stessa pagina avendo una struttura con header, corpo e footer? Non c'è una funzione che posso prendere o se mi dai una mano a costruirla? Te ne sarei molto grato.

    <?php 
    $lingua =  $_GET['lingua'];
    $titolo_['ita'] = "ciao";
    $titolo_['eng'] =  "hallo";
    ?>
    <p><a  href="1.php?id=<?php echo $_GET['id']; ?>&titolo=<?php echo  $titolo_["ita"]; ?>&lingua=ita">ITA</a> - <a  href="1.php?id=<?php echo $_GET['id']; ?>&titolo=<?php echo  $titolo_["eng"];  ?>&lingua=eng">ENG</a></p>
    <p><?php echo  $_GET['id']; ?> - <?php echo $titolo_["$lingua"];  ?></p>
    
    
    

    Scusa ancora per il disturbo

    matt86


  • ModSenior

    Allora, tu devi creare i link per andare nella stessa pagina in unaltra lingua(come avevo capito io leggendo la discussione), oppure devi su uno stesso file fisico avere uno switch per la lingua da mostrare?


  • User

    In pratica io devo costruire un portale con diverse pagine da ogni pagina io posso cambiare lingua e devo rimanere sulla stessa pagina ma tradotta nella lingua selezionata. In ogni pagina però sulla querystring posso avere parametri get diversi. Es:

    pagina1.php?lang=ita&id=5&messaggio=ciao

    oppure in una altra pagina:

    pagina2.php?lang=ita&cat=6&testo=ciao_a_tutti

    oppure in una altra pagina:

    pagina3.php?lang=ita&id_macro=10&id_pag=2

    .......

    (quando cambio lingua nella barra degli indirizzi avrò):

    pagina1.php?lang=eng&id=5&messaggio=hello

    oppure in una altra pagina:

    pagina2.php?lang=eng&cat=6&testo=hello_everybody

    oppure in una altra pagina:

    pagina3.php?lang=eng&id_macro=10&id_pag=2
    .......