WebSite X5Help Center

 
Andrea D.
Andrea D.
User

Tendina lingua che al clic resta nella stessa pagina ma tradotta  it

Auteur : Andrea D.
Visité 2503, Followers 1, Partagé 0  

Ciao a tutti, scusate per il titolo infantile ma non sapevo come altro descriverlo.

Sto cercando aiuto per capire come realizzare una tendina per le lingue (che già ho) che, una volta cliccato sopra la lingua scelta, si rimane sulla stessa pagina e non si torni alla homepage.

Se siamo nella pagina "Contatti" e la pagina è in italiano, se l'utente clicca sulla bandierina inglese viene portato in "contacts".... per farla breve un po' come avviene qui in websitex5.com.

Il codice che io ho utilizzato è il seguente:

<ul class="langSelect f16 white">
                <li><a href="http://www.mywebsite.it/" title="Italy"><span class="flag it"></span>Italy</a></li>
                <li><a href="http://www.mywebsite.it/uk" title="England"><span class="flag gb"></span>England</a></li>             
  </ul>

Posté le
18 RéPONSES - 3 UTILE - 1 CORRECT
Massimo C.
Massimo C.
User

hai un sito impostato in multilingua?

posta il link

Lire plus
Posté le de Massimo C.
Andrea D.
Andrea D.
User
Auteur

Questo è il link dove puoi e potete vedere il funzionamento del menu a tendina per le lingue (è un sito di test): www.indirizzodiprova.altervista.org/tig3rtest

Se si preme su "contatti"... e poi si seleziona la bandierina di lingua inglese, la traduzione verrà fatta, poichè portati nel sito /en ... tuttavia non rimane nella pagina "contacts" ma torna in homepage.... vorrei rimanesse..

Lire plus
Posté le de Andrea D.
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator

... son poche pagine, quindi faresti presto ad assegnare ad ogni pagina i relativo link...

... oppure, ma non è il tuo caso, se le pagine en/it avessero lo stesso nome si potrebbe redirezionare rapidamente...
... oppure si potrebbe creare una routine JS con l'istruzione switch()/case, con l'elenco di tutte le condizioni relative alle pagine, nel tuo caso una trentina...
... rilevi il nome della pagina dall'URL ed in base a questa redirezionare; ...nel caso fai ricerche in rete...

... ma, faresti sicuramente prima per come detto al primo capoverso...
... nel caso il collegamento da usare sarebbe File o URL | File su Internet...
... digitando da EN as IT:    ../nomePaginait.html
... digitando da IT ad EN:    en/nomePaginaen.html


.

Lire plus
Posté le de  ‪ KolAsim ‪ ‪
Andrea D.
Andrea D.
User
Auteur

ciao kola, grazie per la risposta.

Il problema è che il codice è incorporato nell'header, non è inserito nei tag head o body, quindi è impossibile per me cambiarlo e inserire tutti i link manualmente. E' una soluzione che avevo già pensato ma per questo motivo non ho realizzato.

In più volevo riportare il codice negli altri siti creati con più pagine e se ce ne stanno molte diventa abbastanza una scocciatura.

Da ignorante pensavo esistesse qualche stringa e/o codice da inserire nel link.

Lire plus
Posté le de Andrea D.
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Andrea D.
... ... ...In più volevo riportare il codice negli altri siti creati con più pagine e se ce ne stanno molte diventa abbastanza una scocciatura. Da ignorante pensavo esistesse qualche stringa e/o codice da inserire nel link.

... le bandiere invece di metterle in intestazione, potresti metterle nella pagina, e risolveresti con semplicità...

... altrimenti basterebbe fare come suggerito precedentemente nel procedimento JS alternativo, programmando la lista delle condizioni...

... l'idea di base potrebbe essere quella presentata qui:  https://helpcenter.websitex5.com/fr/post/124875

.

... magari oltre alla mie idee potrebbero presentarsene altre ...

.

ciao

.

Lire plus
Posté le de  ‪ KolAsim ‪ ‪
Andrea D.
Andrea D.
User
Auteur

Non so se dipenda dal fatto che sto guardando dallo smartphone ma, dopo esser andato nel thread che mi hai linkato, ho provato a cliccare tutti i link.. soprattutto quelli della risposta corretta.. ma mi da:

"Sorry, the page you are looking for could not be found."

quindi non riesco a vedere il codice usato.

Lire plus
Posté le de Andrea D.
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator

...surprised... scusami! ... conservavo il Topic, ma mi ero dimenticato che tutti i miei esempi  che editavo direttamente in rete si erano estinti ... ! ...

... provo a vedere se trovo un link di lemonsong su di una cache web, e se persiste ancora qualcosa...

... ti farò sapere ...

.




Lire plus
Posté le de  ‪ KolAsim ‪ ‪
Giorgio C.
Giorgio C.
User

Ma ... al lato pratico di un utilizzo di un sito web, non credo serva molto rimanere nella pagina...

Penso che un ipotetico utilizzatore del sito faccia la sua scelta di lingua inizialmente fin dalla homepage a meno che abbia dimestichezza in entrambe le lingue nel qual caso il problema non si pone.

Lire plus
Posté le de Giorgio C.
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Andrea D.
... ... ... quindi non riesco a vedere il codice usato.
 ‪ KolAsim ‪ ‪
... ... ... ... provo a vedere se trovo un link di lemonsong su di una cache web, e se persiste ancora qualcosa... ... ti farò sapere ... .

... ho trovato il link della cache web, ma purtroppo ho recuperato solo questo dei miei esempi:  https://web.archive.org/web/20160418034035/http://www.zspace.it/kolasim/mobile/pagina_2.html

... comunque buono come idea base di partenza...

... da rigo 15 al rigo 20 vedi come catturo il nome della pagina...

... quindi a seguire basterebbe aggiungere le condizioni con la funzione switch(); ...niente di difficile; ..solo un incremento ripetitivo delle condizioni da verificare...

... provaci e casomai fai vedere cosa avrai fatto per controllare e/o perfezionare...

.



Lire plus
Posté le de  ‪ KolAsim ‪ ‪
Andrea D.
Andrea D.
User
Auteur
Giorgio C.
Ma ... al lato pratico di un utilizzo di un sito web, non credo serva molto rimanere nella pagina... Penso che un ipotetico utilizzatore del sito faccia la sua scelta di lingua inizialmente fin dalla homepage a meno che abbia dimestichezza in entrambe le lingue nel qual caso il problema non si pone.

Lo so Giorgio, condivido con te, il problema è che uno dei siti creati non è mio.

Il proprietario è contrario alla pagina di ingresso, un po' per una questione estetica e un po' per dare al visitatore la libertà di cambiare il contenuto in qualsiasi pagina si trovi (magari arruvato da una convidisione tramite email o social o una pagina trovata in google).

Da quanto ho capito anche il reindirizzamento automatico necessita di una pagina d'ingresso quindi ho dovuto scartare anche quella scelta. Sono rimasto con la tendina.

 ‪ KolAsim ‪ ‪
. ... ho trovato il link della cache web, ma purtroppo ho recuperato solo questo dei miei esempi:  https://web.archive.org/web/20160418034035/http://www.zspace.it/kolasim/mobile/pagina_2.html ... comunque buono come idea base di partenza... ... da rigo 15 al rigo 20 vedi come catturo il nome della pagina... ... quindi a seguire basterebbe aggiungere le condizioni con la funzione switch(); ...niente di difficile; ..solo un incremento ripetitivo delle condizioni da verificare... ... provaci e casomai fai vedere cosa avrai fatto per controllare e/o perfezionare...

Kola io ti ringrazio ma nonostante tu mi abbia fornito il link con mezzo codice già pronto (da quel che ho capito devo fare solo copia incolla).. non lo saprei fare, non ho abbastanza conoscenze per continuarlo.

Lire plus
Posté le de Andrea D.
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Andrea D.
... ... ... ... ... Kola io ti ringrazio ma nonostante tu mi abbia fornito il link con mezzo codice già pronto (da quel che ho capito devo fare solo copia incolla).. non lo saprei fare, non ho abbastanza conoscenze per continuarlo.

... magari più tardi se ti interessa e se trovo tempo programmerò la mia idea originale di base e da sviluppare...

.

Lire plus
Posté le de  ‪ KolAsim ‪ ‪
Andrea D.
Andrea D.
User
Auteur

Se non è un disturbo, mi faresti un favore.

Secondo me una funzione del genere (tendina lingua e funzione di restare nella pagina in cui ci si trova anche una volta cliccata la bandierina) dovrebbe essere aggiunta a website x5 per aggiungere una funzione di professionalità assieme alle altre che già ha.

Lire plus
Posté le de Andrea D.
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Andrea D.
Se non è un disturbo, mi faresti un favore. ... ... ...

... pensavo che intanto ne producevi tu un esempio su quanto detto...

... comunque, visto che nessun altro si è prestato, se mi si avvia il vecchio catorcio e tempo permettendo, in giornata vedrò di sviluppare la mia idea, che a mente mi sembrerebbe semplice, e poi si vedrà se risulterà valida o meno...

.



Lire plus
Posté le de  ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator

... ecco >  esempio1, >  esempio2 ...con la mia personalissima idea, messa in pratica così come pensata, e più semplice di quanto pensassi...

... il codice si posiziona in HEAD e varrà per tutte le pagine, differenziando la lista delle condizioni tra IT ed EN ...

... oppure con cartelle parallele...

.



Lire plus
Posté le de  ‪ KolAsim ‪ ‪
Giorgio C.
Giorgio C.
User

Ottimo  ‪ KolAsim !

Grazie al tuo spunto ho elaborato un altro sistema più semplice che sfrutta il fatto che normalmente un sito tradotto è presente in un'altra directory in modo speculare tipo  www.miosito.it/it/index.html e www.miosito.it/en/index.html

Requisiti di base è che gli indirizzi siano uguali tranne la cartella lingua.

ecco lo script da mettere, nel sito in inglese, in header in oggetto codice html:

<button onclick="myFunction()">Italiano</button>
<script>
function myFunction() {
var indirizzo = window.location.href;
var pagina =  indirizzo.replace("/en/", "/it/");
 window.location.href = pagina;
}  
</script>

Il relativo script per l'italiano

<button onclick="myFunction()">Inglese</button>
<script>
function myFunction() {
var indirizzo = window.location.href;
var pagina =  indirizzo.replace("/it/", "/en/");
 window.location.href = pagina;
}  
</script>

ecco la demo

Lire plus
Posté le de Giorgio C.
Andrea D.
Andrea D.
User
Auteur

Complimenti Kola e Giorgio, ho visto il vostro sito demo ed è la funzione che cercavo.

L'ho messo in pratica nel mio e mi son permesso di usare al 99% il vostro codice. Non l'ho usato al 100% perchè mi piaceva più l'idea con la tendina con bandierine piuttosto che un bottone.

Se volete vedere com'è uscito con il menu che avevo lo trovate qui Vedi risultato finale. L'ho inserito solamente per la pagina Contatti/Contacts.

Il codice di Giorgio sarebbe stato più sbrigativo ma non ho potuto inserlo poichè ormai avevo tutte le pagine con nomi diversi.. averlo saputo prima le lasciavo uguali e veniva tutto in modo automatico.

Ho usato quindi il tuo codice Kola, lasciando i crediti come giusto che sia. E' un po' macchinoso ma fa il suo dovere.

Vi ringrazio nuovamente, gentilissimi laughing

Lire plus
Posté le de Andrea D.
Andrea D.
Andrea D.
User
Auteur

Scusate dell'up

Solo ora mi sono accorto che per tornare indietro, cioè da sito INGLESE a sito ItALIANo non funziona.

Analizzando la pagina demo e il codice, per quanto poco e niente ne capisco, penso sia dovuto perchè in quell'esempio non esiste una cartella en/...

Ho provato a inventarmi una soluzione ma tutte le volte mi porta in un indirizzo inesistente...

Lire plus
Posté le de Andrea D.
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Andrea D.
... ... ... Ho usato quindi il tuo codice Kola, lasciando i crediti come giusto che sia. E' un po' macchinoso ma fa il suo dovere. ... ... ... 

... quelli che chiami i miei crediti, li puoi eliminare; li ho messi come commenti per farti individuare il codice; ...da 17 anni a questa parte non ho fisime e tutte le mie invenzioni ed idee con SwishMax, OOo, js, div_custom, iframe, eccetera, e di unico che si sia visto, sono state tutte di libero utilizzo e libere da vincoli; ...mi accontento, e non lo pretendo, se venisse apprezzato, o ricordato, come hai fatto tu...

... per il discorso del codice più semplice o meno, quello dagli esempi base indicati, te l'avevo anticipato che nel tuo caso non avendo pagine nominate in modo uguale non poteva essere usato, da lì l'idea di usare switch()/case...

Andrea D.
... ... ...Analizzando la pagina demo e il codice, per quanto poco e niente ne capisco, penso sia dovuto perchè in quell'esempio non esiste una cartella en/... ... ... 

... esattamente come hai pensato; ... al redirect da sotto cartella "en", o usi l'URL assoluto, per esempio:

http://www.tuosito/nomepaginaIT.html

... oppure l'URL relativo:

../nomepaginaIT.html      (due punti - barra - nome pagina)

...!.. a te non funziona con l'URL assoluto in quanto hai usato un (:) di troppo dopo e da eliminare nell'istruzione "case" (case: eccetera)...!...

... ti consiglio di utilizzare alla fine l'istruzione "default" per direzionare le pagine non riconosciute alla INDEX del sito principale, con URL assoluto...

... ottimo anche l'esempio postato da Giorgio (v. cartelle parallele)...wink...

ciao

.

Lire plus
Posté le de  ‪ KolAsim ‪ ‪