- 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.