WPML
Stato
Risolto
Tipo
Bug

Panoramica del problema

Quando cambi il locale di una lingua, ad esempio per il tedesco da de_DE a de_DE_formal, potresti notare che la traduzione delle stringhe non viene più visualizzata.

Questo problema si verifica perché WPML non riesce più a trovare i file MO con il locale della lingua corrispondente. Nel nostro esempio, cercherebbe some-domain-de_DE_formal.mo, ma questo file non esiste. Invece, WPML ha solo un record di some-domain-de_DE.mo.

Soluzione alternativa

Per risolvere questo problema, devi fare due cose:

1. Se hai delle stringhe tradotte tramite la pagina WPML -> Traduzione stringhe, vai su WPML -> Supporto -> Database & strings maintenance (su WPML 5.0 e versioni successive, questo strumento è incluso nel plugin WPML Troubleshooting, installabile da WPML → Activate & Update) e fai clic sul pulsante Show custom MO Files Pre-generation dialog box. Nella finestra di dialogo che appare, fai clic sul pulsante blu per rigenerare i file MO personalizzati.

2. Molto probabilmente, il primo passaggio non ripristinerà tutte le stringhe mancanti. Questo perché alcuni valori potrebbero provenire da file MO nativi mancanti, forniti da altri plugin o temi. Per risolvere il problema, devi trovare i file MO mancanti e crearne delle copie utilizzando nuovi nomi con il nuovo codice della lingua.

Nel nostro esempio, se una stringa viene normalmente caricata dal file woocommerce-de_DE.mo, dobbiamo trovare quel file e crearne una copia utilizzando un nome che corrisponda alle impostazioni locali attuali: woocommerce-de_DE_formal.mo. Devi copiare tutti i file mancanti che sono utilizzati dal tuo sito.

Le posizioni tipiche in cui puoi trovare questi file MO sono:


  • ../wp-content/languages/

  • ../wp-content/plugins/plugin-in-question/

  • ../wp-content/plugins/plugin-in-question/languages/

Infine, puoi anche trovare i percorsi specifici nella tabella wp_icl_mo_files_domains del tuo database.

Tutti i problemi noti