Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    [Problema] Script cambio lingua

    Ciao a tutti , ho alcuni problemi con questo script :

    codice:
    <form action="" method="get" name="language"> 
    <select name="newlanguage" onChange="CambiaLingua()"> 
    <option value="">Language:</option> 
    <option value="">ENG</option> 
    <option value="_l2">ITA</option> 
    </select>  
    
    
     <script> function CambiaLingua() { 
    pageextension = ".php"; 
    thispage = self.location.href; 
    thispage = thispage.replace(/_l2.php/, ".php"); 
    sellanguage = document.language.newlanguage.selectedIndex;
     newlang = document.language.newlanguage.options[sellanguage].value; 
    newpage = thispage.replace(/.php/, newlang + ".php"); 
    self.location = newpage; } 
    </script>
    ...Lo script funziona ma io lo volevo inserire in un' applicazione web ( una gaming ladder ) . quest' applicazione è formata da una cartella principale ( ladder ) , dove ci sono i file principali ( index, config , ladder ecc) e le altre cartelle ( include, forum, temi ) ; ecco io lo script l'ho inserito nel file principale del tema ( ladder/temi/tema1/html.php) ; lo script però non funziona poichè quando uno và sul sito viene caricata la index della ladder e non del tema , ma questo problema l'ho risolto inserendo un un index_l2.php che includeva il file tradotto in italiano....

    Insomma il mio scopo sarebbe quello di sostituire questo pezzo di codice :
    codice:
    thispage = thispage.replace(/_l2.php/, ".php");
    con un codice che faccia risalire all'index modificata ( index_l2) una cosa del tipo ../../index_l2

    solo non sò come fare... potreste modificarmi lo script adattandolo alle mie esigenze ... grazie infinite

  2. #2
    mi serve uan mano ...

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    non e' proprio semplicissimo seguirti,
    in qualunque cartella ti trovi deve risalire di due cartelle e puntare al file con nome modificato?
    sicuro funzioni proprio cosi'?

  4. #4
    Si o almeno penso cioè dovrebbe cambiare solo questo pezzetto :
    codice:
    thispage = self.location.href;
    thispage = thispage.replace(/_l2.php/, ".php");
    Però non sò come fare... altrimenti sono ben accetti altri tipi di script per cambiare la lingua .. ripeto che è un applicazione web ed il file modificato è solo quello del template ( html.php [ EN], html_l2.php [ ITA ]).. ditemi voi ....

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ma come possiamo dirti noi come funziona la tua applicazione?

    comunque quello che strettamente chiedi si puo' fare in tanti modi, x es.
    codice:
    var thispage=self.location.pathname;
    var pathArr=thispage.split('/');
    if(pathArr.length>3){
    	pathArr.splice(pathArr.length-3,2);
    	thispage=pathArr.join('/');
    }
    poi fai quello che devi fare con thispage, generati newpage,
    al momento di reindirizzare richiama
    self.location.href=self.location.hostname+newpage;
    invece di self.location = newpage;

    ciao

  6. #6
    non vi sto chiedendo come funziona l'applicazione web.. sto solo chiedendo come adattare questo script secondo delle mie esigenze... comunque non ho ben capito quelli che mi stai dicendo .. potresti Perfavore darmi il codice già modificato ?...
    grazie tante

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Originariamente inviato da function_alex
    non ho ben capito quelli che mi stai dicendo .. potresti Perfavore darmi il codice già modificato ?...
    scusa, niente pappa pronta qui, se vuoi te lo spiego
    Codice PHP:
    // qui, invece di prendere tutto l' href prendo solo il pathname
    // se l' indirizzo e' [url]http://www.tuodominio.it/prima/seconda/terza/pagina.htm[/url]
    // in thispage ti ritroverai /prima/seconda/terza/pagina.htm
    // lo faccio per non avere i // di http: di mezzo
    var thispage=self.location.pathname;
    // divido la stringa per "/", il risultato e' un array che contiene i pezzi del pathname
    // 0 = ''
    // 1 = 'prima'
    // 2 = 'seconda'
    // 3 = 'terza'
    // 4 = 'pagina.htm'
    // la lunghezza dell' array e' 5
    var pathArr=thispage.split('/');
    // solo se l' array e' piu' lungo di 3 posso "risalire" di due cartelle
    if(pathArr.length>3){
        
    // elimino dall' array 2 elementi a partire dall' elemento con indice lunghezza dell' array-3
        
    pathArr.splice(pathArr.length-3,2);
        
    // con join per "/" riottengo una stringa dall' array modificato
        // nell' esempio: /prima/pagina.htm
        
    thispage=pathArr.join('/');

    ora, come ho gia' scritto, fai quello che devi fare con thispage e che hai detto funziona
    e quando devi reindirizzare, invece di farlo con self.location = newpage;
    lo fai con
    self.location.href=self.location.hostname+newpage;
    perche' inizialmente non ho valutato l' http://www.tuodominio.it e ora lo premetto al pathname modificato

    ciao

  8. #8
    non voglio la pappa pronta solo non capisco dove devo inserire quel pezzo di codice che mi hai dato e come devo modificare il codice che ho?!?!?

  9. #9
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Codice PHP:
    function CambiaLingua() { 
    pageextension ".php"
    // qua che fai? non prendi l' indirizzo della pagina?
    // thispage = self.location.href; 

    // e ti rincollo quello che avresti dovuto leggere e capire:
    // qui, invece di prendere tutto l' href prendo solo il pathname
    // se l' indirizzo e' [url]http://www.tuodominio.it/prima/seconda/terza/pagina.htm[/url]
    // in thispage ti ritroverai /prima/seconda/terza/pagina.htm
    // lo faccio per non avere i // di http: di mezzo
    var thispage=self.location.pathname;
    // divido la stringa per "/", il risultato e' un array che contiene i pezzi del pathname
    // 0 = ''
    // 1 = 'prima'
    // 2 = 'seconda'
    // 3 = 'terza'
    // 4 = 'pagina.htm'
    // la lunghezza dell' array e' 5
    var pathArr=thispage.split('/');
    // solo se l' array e' piu' lungo di 3 posso "risalire" di due cartelle
    if(pathArr.length>3){
        
    // elimino dall' array 2 elementi a partire dall' elemento con indice lunghezza dell' array-3
        
    pathArr.splice(pathArr.length-3,2);
        
    // con join per "/" riottengo una stringa dall' array modificato
        // nell' esempio: /prima/pagina.htm
        
    thispage=pathArr.join('/');
    }



    // continuo col copia/incolla:
    // fai quello che devi fare con thispage e che hai detto funziona
    thispage thispage.replace(/_l2.php/, ".php"); 
    sellanguage document.language.newlanguage.selectedIndex;
     
    newlang document.language.newlanguage.options[sellanguage].value
    newpage thispage.replace(/.php/, newlang ".php"); 

    // continuo col copia/incolla:
    // quando devi reindirizzare, invece di farlo con 
    // self.location = newpage;
    // lo fai con
    self.location.href=self.location.hostname+newpage;


  10. #10
    ti ringrazio per il codice però mi dà un errore, cioè mi riscrive l'indirizzo 2 volte ossia, quando clicco su ITA per cambiare lingua mi dà questo url :

    http://nomesito.it/nomesito.it/

    come mai ?
    se mi date l'ok posto il sito sul quale sto provando lo script :S

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.