Visualizzazione risultati 1 fino 5 di 5

Discussione: come usare ‘Polyglot’ Language Switcher jQuery Plugin

  1. #1
    Guest

    Predefinito come usare ‘Polyglot’ Language Switcher jQuery Plugin

    Devo implementare un plugin che da la possibilità di cambiare linguaggio al sito tramite un menu a tendina, per la precisione il plugin è questo.
    Però non riesco a capire dove mettere le istruzioni php che mi aggiornano la pagina cambiando la variabile della lingua.
    Qualcuno saprebbe spiegarmelo?

  2. #2
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    dalla analisi del codice , puoi vedere questa funzione :
    Codice:
    function toLiElement(option) {
                var id = $(option).attr("id");
                var value = $(option).attr("value");
                var text = $(option).text();
                var liElement;
                if (isStaticWebSite) {
                    var url = window.location.href;
                    var page = url.substring(url.lastIndexOf("/")+1);
                    var urlPage = 'http://' + document.domain + '/' + settings.pagePrefix + id + '/' + page;
                    liElement = $("<li><a id=\"" + id + "\" href=\"" + urlPage + "\">" + text + "</a></li>");
                } else {
                    var href = document.URL.replace('#', '');
                    var params = parseQueryString();
                    params[settings.paramName] = value;
                    if (href.indexOf('?') > 0) {
                        href = href.substring(0, href.indexOf('?'));
                    }
                    href += toQueryString(params);
                    liElement = $("<li><a id=\"" + id + "\" href=\"" + href + "\">" + text + "</a></li>");
                }
                liElement.bind('click', function () {
                    triggerEvent({name:'onChange', selectedItem: $(this).children(":first").attr('id'), element:rootElement, instance:ls});
                    doAction($(this));
                });
                if (settings.openMode == 'hover') {
                    liElement.hover(function () {
                        suspendCloseAction();
                    }, function () {
                        resumeCloseAction();
                    });
                }
                return liElement;
    }
    in cui si evince che una volta che si seleziona una lingua verra' aperta la pagina (con lo stesso nome) posizionata nella cartella della lingua corrispondente.

    esempio:
    UK standart
    Codice:
    http://www.miodominio.com/index.html
    ITA
    Codice:
    http://www.miodominio.com/it/index.html

  3. #3
    Guest

    Predefinito

    il fatto è che io non ho una cartella per ogni lingua ma semplicemente la stessa pagina che in base alla variabile $lang sull'url (quindi poi chiamata con il metodo GET) mi carica solo i contenuti che sono disponibili in lingua diversa. avevo pensato ad una cosa tipo qualcosa questa:
    Codice:
    $(document).ready(function() {
                $('#polyglotLanguageSwitcher').polyglotLanguageSwitcher({
    				effect: 'fade',
                    testMode: true,
    		onChange: function(evt){
    			
                 //      alert("The selected language is: "+evt.selectedItem);
    			
    			switch (evt.selectedItem) {
    				
    				case 'en':
                                           alert("Location:<?php echo $correntpage ?>?lang=inglese<?php foreach ($_GET as $key=>$value)if($key!="lang")echo"&$key=$value" ?>");
    					 window.location.replace("Location:<?php echo $correntpage ?>?lang=inglese<?php foreach ($_GET as $key=>$value)if($key!="lang")echo"&$key=$value" ?>");
    					break;
    ma dopo avermi fatto vedere l'alert con l'indirizzo perfetto non fa più niente.
    Ultima modifica di anastasionico : 20-10-2014 alle ore 14.17.01

  4. #4
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Ti consiglio di creare un coockie all'apertura della pagina con la lingua di default , quindi quando modifichi il SELECT della lingua leggi il valore relativo aggiorni il coockie e lo passi al tuo file PHP che ricarichera' i contenuti

    io comunque avrei distinto in cartelle diverse i contenuti di lingua diversa , anche solo per avere un ordine dei files.

  5. #5
    Guest

    Predefinito

    non ho diviso i file in cartelle perché non cambia tutta la pagina ma solo alcune piccole parti ,comunque se altri avranno questo problema in futuro io l'ho risolto cosi:
    Codice:
     $('#polyglotLanguageSwitcher').polyglotLanguageSwitcher({
    				effect: 'fade',
                    testMode: true,
    		onChange: function(evt){
                          switch (evt.selectedItem) {
    				
    				case 'en':
    					location.replace("<?php echo $correntpage ?>?lang=inglese<?php foreach ($_GET as $key=>$value)if($key!="lang")echo"&$key=$value" ?>");
    					break;	
    				case 'it':
    					location.replace("<?php echo $correntpage ?>?lang=italiano<?php foreach ($_GET as $key=>$value)if($key!="lang")echo"&$key=$value" ?>");
    					break;
    dove $correnpage è l'url della pagina attuale $lang non ha bisogno di spiegazioni e se ci sono altri get nell'indirizzo vengono presi tutti con un foreach

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •