A tradução do plugin no diretório MU-PLUGINS não funciona

2

Traduzi com sucesso um tema filho, mas não o mesmo resultado na pasta mu-plugins.

O nome do plugin é "mu-functions.php". Neste arquivo eu adicionei o "Text Domain: mu-functions" no cabeçalho e depois carreguei o textdomain:

add_action( 'plugins_loaded', 'myplugin_muload_textdomain' );
function myplugin_muload_textdomain() {
load_muplugin_textdomain( 'mu-functions', basename( dirname(__FILE__) ) . '/inc/languages' );
}

A estrutura do plugin que eu criei no diretório mu-plugins é a seguinte:

No mesmo diretório eu tenho uma pasta "inc" (include) onde eu coloco todos os outros arquivos que estão sendo chamados através da função "include_once ()" no arquivo "mu-function.php". Junto com esses arquivos, no mesmo diretório da pasta "inc", eu tenho a pasta "languages" onde eu criei o arquivo "mu-functions.pot" que foi traduzido para o português e depois gerado para o ".mo" e arquivos ".po".

No meu tema filho, tive um problema com esses arquivos ".mo" e ".po". Eu encontrei em outro fórum que eu tinha que nomeá-los apenas pela localidade (então, neste caso, "pt_PT") e não "Text-Domain-pt_PT". Este problema foi resolvido com sucesso. Sendo assim, para fins de teste, gerou mais 2 arquivos ".mo" e ".po". Estes são os arquivos que estão na pasta my languages:

  • mu-functions-pt_PT.mo
  • mu-functions-pt_PT.po
  • mu-functions.pot
  • pt_PT.mo
  • pt_PT.po

Alguém pode, por favor, me ajudar? O que estou perdendo?

    
por Eduardo Leão 10.12.2016 / 22:55

2 respostas

0

Você precisa usar outra ação quando estiver em um mu-plugins.

add_action('muplugins_loaded', 'myplugin_muload_textdomain');
A ação

plugins_loaded funciona somente depois que plug-ins ativos e funções conectáveis são carregados.

Os plug-ins mu não são plugins regulares e não serão carregados como eles.

Como você pode ver no link a seguir, mu-plugins são carregados antes de qualquer outra coisa. Ações executadas durante uma solicitação típica

    
por Benoti 11.12.2016 / 12:54
0

O problema foi a linha:

load_muplugin_textdomain( 'mu-functions', basename( dirname(__FILE__) ) . '/inc/languages' );

e mais especificamente a função:

basename( dirname(__FILE__) ) 

Como minha pasta de plugins e idiomas está na raiz da pasta mu-plugins, o código correto é:

load_muplugin_textdomain( 'mu-functions', 'lang' );

Encontrei mais informações nos links a seguir: enlace enlace

Eu acho que tenho que jogar mais para entender se eu quiser colocar meu plugin como uma pasta de subdiretórios mu-plugin.

Desculpe pelo atraso Benoti, e obrigado pelo apoio!

    
por Eduardo Leão 10.02.2017 / 14:52