As cordas traduzidas não aparecem – o que estou faltando?

Eu examinei todos os tópicos semelhantes que eu posso encontrar, e acho que eu deveria ter todas as peças no lugar para que as cordas traduzidas apareçam, mas elas não são. Estou pronto para tirar meu cabelo!

Aqui está o que eu tenho – Eu estou fazendo um tema personalizado (com base no iniciador _s) e adicionei modelos para alguns tipos de postagem personalizados (criados em meus próprios plugins). Instalei o plugin Loco Translate para criar e editar arquivos po / mo. Os arquivos são armazenados em ‘mytheme / languages’.

Nas funções do meu tema.php eu tenho:

/** * Load theme text domain for translations */ function mytheme_load_theme_textdomain() { if (load_theme_textdomain('mytheme', get_template_directory() . '/languages')) { error_log("Text Domain loaded."); } } add_action('after_setup_theme', 'mytheme_load_theme_textdomain'); 

No meu arquivo de parte do modelo, eu tenho as seqüências de caracteres configuradas para exibição assim:

Quando eu carregar a página que deve ter as seqüências traduzidas, veja o arquivo debug.log, vejo a mensagem “Código de texto carregado”. Então essa parte deve estar funcionando. Loco Translate corretamente vê as cordas e me permite traduzi-las. Então, tudo no arquivo .mo deve estar correto.

Eu tentei codificar a localidade em wp-config.php (apenas para verificar) adicionando define('WPLANG', 'es_ES'); e ecoando a variável de $locale global para o log de debugging dentro da function descrita acima. Isso funciona corretamente.

Editar: adicionando o resultado do plugin do debug-mo-translations

 Debug MO Translations (Version 1.0) Locale: es_ES Domain: mytheme File: /wp-content/languages/themes/mytheme-es_ES.mo (not found) Called in: /wp-includes/l10n.php line 792 load_textdomain Domain: mytheme File: /wp-content/languages/loco/themes/mytheme-es_ES.mo (not found) Called in: /wp-content/plugins/loco-translate/src/hooks/LoadHelper.php line 103 load_textdomain Domain: mytheme File: /wp-content/themes/mytheme/languages/es_ES.mo (0.62kb) Called in: /wp-includes/l10n.php line 800 load_textdomain 

Então, eu tenho cadeias traduzíveis no meu arquivo de modelo, eu tenho traduções nos arquivos .po / .mo no meu tema, o local está configurado corretamente e carrego meu domínio de texto do tema no meu arquivo functions.php. Mas as cordas ainda não aparecem em forma traduzida no front-end! o que estou perdendo?

Desde já, obrigado!

Solutions Collecting From Web of "As cordas traduzidas não aparecem – o que estou faltando?"

Você deve analisar o caminho do arquivo de idioma, está correto?

Plugins úteis para este trabalho:

  • Objetos de debugging
  • debug-mo-translations

Você deve verificar a function para obter o caminho. A function get_template_directory obtém o caminho para o tema pai, e não um tema filho. Se você usar seu arquivo de tradução de um tema infantil, use get_stylesheet_directory_uri . Essa function sempre é o caminho da folha de estilos ativa.

Bem, parece que ele já foi ordenado agora. No meu caso, voltei e atualizei o arquivo de modelo .pot fazendo uma pequena alteração e salvando (usando Loco Translate). Então eu voltei para a canvas do editor de arquivo .po, voltei a sincronizar com o arquivo .pot e salvo para atualizar o arquivo .mo. As traduções estão agora aparecendo no meu tema. Woo hoo!

Espero que isso possa ajudar a próxima pessoa a enfrentar uma situação semelhante!