- Status
- Resolvido
Visão geral do problema
Quando você altera a localidade de um idioma, por exemplo, para o alemão, de de_DE para de_DE_formal, você pode notar que a tradução de strings parou de ser exibida.
Esse problema acontece porque o WPML não consegue mais encontrar arquivos MO com a localidade do idioma correspondente. No nosso exemplo, ele procuraria por some-domain-de_DE_formal.mo, mas esse arquivo não existe. Em vez disso, o WPML tem apenas um registro de some-domain-de_DE.mo.
Solução alternativa
Para resolver esse problema, você precisa fazer duas coisas:
1. Se você tiver strings traduzidas pela página WPML -> Tradução de Strings, vá para a página WPML -> Suporte -> Solução de problemas e clique no botão Show custom MO Files Pre-generation dialog box. Na caixa de diálogo que aparecer, clique no botão azul para regerar os arquivos MO personalizados.
2. Muito provavelmente, o primeiro passo não corrigirá todas as strings ausentes. Isso ocorre porque alguns valores podem vir de arquivos MO nativos ausentes, fornecidos por outros plugins ou temas. Para resolver isso, você deve encontrar os arquivos MO ausentes e criar cópias usando novos nomes com o novo código de idioma.
Em nosso exemplo, se uma string for normalmente carregada do arquivo woocommerce-de_DE.mo, devemos encontrar esse arquivo e criar uma cópia dele usando um nome que corresponda à localidade atual: woocommerce-de_DE_formal.mo. Você precisa copiar todos os arquivos ausentes que são usados pelo seu site.
Os locais típicos onde você pode encontrar esses arquivos MO são:
- ../wp-content/languages/
- ../wp-content/plugins/plugin-in-question/
- ../wp-content/plugins/plugin-in-question/languages/
Por fim, você também pode encontrar caminhos específicos na tabela wp_icl_mo_files_domains no seu banco de dados.