WPML
Stato
Risolto

Panoramica del problema

Quando modifichi 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 alla pagina WPML -> Supporto -> Risoluzione dei problemi 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 questo problema, devi trovare i file MO mancanti e crearne delle copie utilizzando nuovi nomi con il nuovo codice 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 al locale attuale: woocommerce-de_DE_formal.mo. Devi copiare tutti i file mancanti che vengono 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 →