This is the technical support forum for WPML - the multilingual WordPress plugin.

Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.

This thread is resolved. Here is a description of the problem and solution.

Problema: Ho impostato "Usa la directory per lingua predefinita". Quando carico la root del sito mi aspetto di vedere il redirect in automatico, cosa che invece non succede.

Soluzione: 1. In WPML -> Lingue: - Selezionare "Directory con lingue diverse" - Attivare "Usa la directory per lingua predefinita" - Selezionare "file HTML" - Inserire "lang.php" all'interno del campo di testo

2. Attivare il reindirizzamento in base alla lingua del browser in WPML -> Lingue

3. Nella cartella principale della tua installazione WordPress, la stessa dove si trova il file wp-config.php: - Creare un nuovo file di testo e nominarlo "lang.php" - Modificare questo file con un editor di testi e inserire il codice contenuto in questo post (cambiare la URL secondo il sito e la lingua preferita): https://wpml.org/it/forums/topic/formato-degli-url-per-le-lingue-2/#post-896268

Documentazione utile: https://wpml.org/documentation/getting-started-guide/language-setup/directory-default-language/

Etichettato: 

This topic contains 7 risposte, has 3 voci.

Last updated by valeriaS-4 1 anno, 6 mesi fa.

Assigned support staff: Vincenzo.

Autore Post
June 3, 2016 at 7:53 am #896258

Renzo

Sto cercando di configurare WPML per un sito multilingue hidden link e, mentre in locale funzionava correttamente, dopo averlo pubblicato ci deve essere qualcosa che non va.
Secondo me c'è qualcosa di errato nei miei settaggi su "Formato degli URL per le lingue": non capisco bene cosa significa "Cosa mostrare nell'url della root:" e se devo settare qualcosa o no. Le spiegazioni non mi sono chiare.

June 3, 2016 at 8:12 am #896268

Vincenzo
Supporter

Languages: Inglese (English ) Italiano (Italiano )

Timezone: Europe/Rome (GMT+01:00)

Salve e grazie per aver contattato il supporto WPML!
Mi occuperò di questo ticket

L'impostazione "Cosa mostrare nell'url della root:" serve per specificare cosa appare quando il visitatore arriva nella root del sito (http://www.TUOSITO.it) visto che le homepage nelle varie lingue sono state "spostate" all'interno di directory (/it e /en).

Ci sono diverse possibilità:

1. Puoi creare una pagina con una breve presentazione del sito e con i link per le due lingue.
- Se la pagina la crei manualmente in HTML, bisogna salvare la pagina nella cartella di WordPress e inserire il nome del file nel campo "File HTML"

- Si può creare la pagina usando WordPress. In quel caso bisogna utilizzare l'opzione "Una pagina" e creare la pagina tramite WordPress.

2. Si può creare una pagina HTML con un redirect alla lingua che si preferisce.
Per farlo segui questi passaggi:

* In WPML -> Lingue :
- Seleziona 'Directory con lingue diverse'
- Attiva 'Usa la directory per lingua predefinita'
- Seleziona 'file HTML'
- inserisci 'lang.php' all'interno del campo di testo

* Nella cartella principale della tua installazione WordPress, la stessa dove si trova il file wp-config.php:
- crea un nuovo file di testo e chiamalo 'lang.php' .
- Modifica questo file con un editor di testi e inserisci il seguente codice (cambia la URL secondo il tuo sito e la tua lingua preferita):

<?php
   
   header( 'Location: http://www.TUOSITO.it/it/' ) ;
   
?>

Fammi sapere se così risolvi.

Grazie

June 3, 2016 at 9:55 am #896365

Renzo

Buongiorno Vincenzo.
Andiamo per gradi, altrimenti non capisco.

1.
Il mio obiettivo, come spiegato nel file Screen è di avere il sito, nelle 2 lingue, in questo modo:
italiano > hidden link
inglese > hidden link

In questo momento (se vuoi lo puoi vedere..), con i settaggi che vedi nel file Screen, sembra che funzioni…. ma da ciò che hai scritto tu sembrerebbe che non avessi dovuto settare:

Cosa mostrare nell'url della root:
File HTML > it

Dimmi se ho capito giusto!

2.
Nelle informazioni (preziose) che mi hai dato (per casi diversi dal mio) la cosa che non capisco è la seguente: se io creo il file 'lang.php' come hai scritto tu, e nell'istruzione metto SOLO header( 'Location: hidden link' ) ; come fa wordpress ad indirizzare un inglese, da un browser inglese, ad andare a hidden link ?
E poi, a cosa serve l'opzione:
Reindirizzamento in base alla lingua del browser > Reindirizza i visitatori in base alla lingua del browser solo se le traduzioni sono disponibili

oppure
Reindirizza sempre i visitatori in base alla lingua del browser (reindirizzali alla pagina iniziale se le traduzioni non sono disponibili)?

Non dovrebbe essere questa la funzione per indirizzare i visitatori secondo la lingua del browser?

Grazie

June 3, 2016 at 10:25 am #896389

Vincenzo
Supporter

Languages: Inglese (English ) Italiano (Italiano )

Timezone: Europe/Rome (GMT+01:00)

1. Esatto. Il valore "it" non è una pagina HTML e quindi genera il problema.

- Gli indirizzi che hai postato funzioneranno correttamente ma la root del sito ( http://www.TUOSITO.it ) non può funzionare se non si stabilisce cosa deve mostrare.

2. Se decidi di non utilizzare una pagina root (cioè una pagina con informazioni di base e/o con i link alle due lingue del sito), la soluzione migliore è quella di creare una pagina che effettui un redirect ad una delle due lingue del sito.
- Una volta raggiunta la homepage ci sono due possibilità:

* Il visitatore utilizza il selettore lingue per scegliere la lingua desiderata.

* Si viene rediretti alla lingua del browser (se è attiva l'opzione di reindirizzamento automatico).

Se attivi l'opzione di reindirizzamento automatico, questo è ciò che avviene ad un visitatore con browser in Inglese che visita la root del sito:

- http://www.TUOSITO.it
- Si apre lang.php
- Il visitatore viene rediretto sulla homepage Italiana http://www.TUOSITO.it/it
- WPML reindirizzerà il visitatore su http://www.TUOSITO.it/en

Fammi sapere se hai bisogno di maggiori dettagli

Grazie

Documentazione relativa:
- https://wpml.org/documentation/getting-started-guide/language-setup/directory-default-language/

June 3, 2016 at 3:18 pm #897045

Renzo

"In questo momento (se vuoi lo puoi vedere..), con i settaggi che vedi nel file Screen, sembra che funzioni…. ma da ciò che hai scritto tu sembrerebbe che non avessi dovuto settare:"

… infatti provando da un browser esterno, ho visto che il sito non funzionava.. :((

Quindi ho provato l'opzione con la creazione della pagina di Benvenuto usando l'opzione "> Cosa mostrare nell'url della root > Una pagina > Crea pagina principale" con WordPress.
Questa funziona bene, si vede in molti siti ma costringe sempre a fare questa scelta!

Poi ho provato l'opzione con il file lang.php che mi avevi consigliato nella 1a risposta e funziona benissimo! Ed è quella che ho scelto.

Ora mi sono scritto un tutorial personale con tutte le opzioni per il prossimo sito...

Grazie infinite! 🙂

Renzo Granzotto

August 7, 2018 at 8:12 am #2618967

valeriaS-4

Buongiorno, ho difficoltà nel far funzionare i menu in lingue diverse del mio sito. Ho letto il vostro topic e sto provando a seguire le istruzioni di Vincenzo per creare il file "lang.php" per il reindirizzamento alla lingua del browser del visitatore.

Non mi è chiaro però cosa devo scrivere esattamente nel codice di questo file, visto che ci sono hidden link in tutta la spiegazione.
Ipotizziamo che il mio sito di ecommerce in italiano sia "pippo.com" e la versione inglese vorrei che fosse "pippo.com/en", come devo settare il tutto?

Grazie mille!

August 7, 2018 at 8:19 am #2618975

Vincenzo
Supporter

Languages: Inglese (English ) Italiano (Italiano )

Timezone: Europe/Rome (GMT+01:00)

Buongiorno @valerias-4

i link vengono nascosti per proteggere la privacy. Ho effettuato delle modifiche al ticket in maniera da rendere visibili i più importanti.

In caso di ulteriori domande ti chiedo di aprire un nuovo ticket.
Puoi farlo da questo indirizzo: https://wpml.org/it/forums/forum/supporto-in-italiano/

Grazie

August 7, 2018 at 8:31 am #2619016

valeriaS-4

Perfetto. Grazie mille!