Permalink multilingue in qtranslate

15 nov 2011, 13:50:20
Visualizzazioni: 18K
Voti: 4

Sto utilizzando il plugin qTranslate per il mio sito WordPress per renderlo multilingue.

Ora ho un requisito come:

  • Per l'inglese l'URL dovrebbe essere www.sitename.com/contact-en
  • Per il francese l'URL dovrebbe essere www.sitename.com/fr/contact-fr

Come posso realizzarlo? (il plugin utilizzato è qTranslate)

Nota: Non dovrebbe apparire alcun ID articolo nell'URL

Come suggerito nel post https://wordpress.stackexchange.com/questions/24061/multilingual-permalinks-qtranslate ho provato http://www.3dolab.net/en/qtranslateslug-plugin-widget ma ricevo errori "pagina non trovata". Sembra che l'autore abbia smesso di sviluppare quel plugin, come indicato nel 29° commento di quella pagina.

1
Commenti

Sto affrontando esattamente lo stesso problema, quindi sono molto interessato a questa soluzione. Purtroppo, sono lontano dall'essere un esperto in PHP e quindi non sono riuscito a farlo funzionare per me. Potresti per favore fornire qualche dettaglio in più sul tuo pezzo di codice? Grazie in anticipo.

User User
24 nov 2011 02:20:04
Tutte le risposte alla domanda 3
1

Nelle impostazioni di qTranslate nel pannello di amministrazione, apri le opzioni avanzate e seleziona il pulsante radio per utilizzare i prefissi della lingua dopo il nome del dominio. Suppongo che tu abbia il francese elencato nelle impostazioni delle Lingue del plugin, corretto? Dopo questa modifica, potresti notare che le date vengono visualizzate in modo errato; utilizza la funzione PHP date per correggere questo problema nelle impostazioni della lingua specifica (modifica lingua). Ad esempio, j F. Vedi un esempio su minexrussia.com/2011 dove il prefisso "ru" è posizionato nello stesso modo.

Per evitare il prefisso "en", seleziona l'inglese come lingua predefinita e attiva l'impostazione nelle Opzioni avanzate per non mostrare il prefisso per la lingua predefinita. Suggerisco di rimuovere tutte le altre lingue tranne l'inglese (en) e il francese (fr) nelle impostazioni del plugin.

15 nov 2011 16:03:00
Commenti

Sì, ho il francese nella mia lista di lingue. La data non dovrebbe comparire nell'URL. La mia richiesta di base è che voglio poter assegnare slug diversi per le diverse lingue. Ad esempio: /contact-en per l'inglese, /contact-fr per il francese come descritto nella mia domanda.

Beniston Beniston
16 nov 2011 05:49:52
0

Avendo il plugin "qtranslateslug-plugin-widget" funzionante nella parte amministrativa per memorizzare gli slug nella tabella degli slug, ho inserito il mio codice nella parte utente.

Nella pagina wp-blog-header.php ho aggiunto il mio codice appena prima dell'inclusione del file wp-load.php. Ho preso l'URL da $_SERVER['REQUEST_URI'] e, utilizzando lo slug e la lingua in esso contenuti, ho recuperato il nome del post e assegnato l'URI modificato a $_SERVER['REQUEST_URI'] in modo appropriato.

Ad esempio:

Prima della modifica: $_SERVER['REQUEST_URI'] = '/fr/french-slug';

Dopo la modifica: $_SERVER['REQUEST_URI'] = '/post-name';

Lasciatemi spiegare in modo più dettagliato:

  1. Assegna $_SERVER['REQUEST_URI'] a una variabile

  2. Ottieni lo slug facendo l'explode con la barra (/)

  3. Verifica lo slug nella tabella del database degli slug che il plugin "qtranslateslug-plugin-widget" sta utilizzando e ottieni l'ID del post da lì

  4. Ora utilizza l'ID del post per ottenere il nome del post dalla tabella dei post.

  5. Fai l'implode in modo da ottenere il risultato mostrato nell'esempio precedente.

  6. Assegnalo nuovamente a $_SERVER['REQUEST_URI']

22 nov 2011 11:09:43
0

Per favore dai un'occhiata a http://wordpress.org/plugins/qtranslate-slug/

Qtranslate è un ottimo plugin ma purtroppo oggi è obsoleto. Qtranslate Slug è un addon per QTranslate, che aggiunge il supporto per la traduzione dei permalink e corregge alcune carenze di QTranslate a partire da WordPress 3.0.

19 giu 2014 19:13:06