POEdit com o código mu-plugins personalizado

3

Eu tenho uma estrutura de diretórios muito restrita a qual devo aderir dentro dos plug-ins, mas gostaria que o POEdit me ajudasse a gerar arquivos de tradução para código específico dentro dessa estrutura, ignorando um monte de outros.

No momento, o POEdit está tendo dificuldades para localizar um código válido. Eu comprei a versão Pro, mas acho que minha estrutura é muito personalizada para se beneficiar dos recursos automatizados do Pro. Eu também tentei usar o arquivo .pot WordPress em branco localizado em enlace como um ponto de partida, mas eu ainda estou obter resultados semelhantes.

Aqui está minha estrutura:

- mu-plugins
   - vendor [don't translate]
   - languages [.mo, .po and .pot files should go here]
   - client [translate some of these]
      - Custom_Class
         - Custom_Class.php [the file that is automatically loaded by _loader.php]
      - Custom_Class_2
         - Custom_Class_2.php [file that is automatically loaded by _loader.php]
         - includes
             - Included_File_1.php [files included by Custom_Class_2.php]
      - react_app [all these files should be EXCLUDED, especially node_modules/*]
   - _loader.php [contains the WordPress plugin headers, and includes all the other php files within the other folders]

_loader.php tem o seguinte:

define( 'MY_TEXTDOMAIN', 'MY_TEXTDOMAIN' );
function load_mu_plugin_textdomain(){
    load_plugin_textdomain( MY_TEXTDOMAIN, false, plugin_dit_path( __FILE__ ) );
}
add_action( 'plugins-loaded', 'load_mu_plugin_textdomain' );

nota: há erros de digitação no código acima que são abordados na minha resposta abaixo. Deixando isso aqui para um registro do problema.

Estou usando o define() exclusivamente para o preenchimento de código IDE. Como você pode ver, a string é a mesma que a constante, então POEdit não deve ter problemas para encontrar coisas como __( 'my string', MY_TEXTDOMAIN );

Eu percebo que há uma série de abordagens fora do padrão a partir de uma perspectiva do POEdit, mas eu sinto que deveria ser capaz de personalizar manualmente o meu arquivo .pot para lidar com isso. Aqui está o meu arquivo .pot como está:

# WordPress Blank Pot
# Copyright (C) 2014 ...
# This file is distributed under the GNU General Public License v2 or later.
msgid ""
msgstr ""
"Project-Id-Version: MY_PROJECT\n"
"POT-Creation-Date: 2012-10-05 10:50+0100\n"
"PO-Revision-Date: \n"
"Last-Translator: Your Name <[email protected]>\n"
"Language-Team: Your Team <[email protected]>\n"
"Report-Msgid-Bugs-To: Translator Name <[email protected]>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Textdomain-Support: yes"
"X-Generator: Poedit 1.6.4\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: __;_e;esc_html_e;esc_html_x:1,2c;esc_html__;esc_attr_e;esc_attr_x:1,2c;esc_attr__;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_x:1,2c;_n:1,2;_n_noop:1,2;__ngettext:1,2;__ngettext_noop:1,2;_c,_nc:4c,1,2;\n"
"X-Poedit-Basepath: ../client/\n"
"X-Poedit-SearchPath-0: .\n"
"X-Poedit-Language: English\n"
"X-Poedit-Country: UNITED STATES\n"
"X-Poedit-Bookmarks: \n"
    
por Tom Auger 15.05.2017 / 23:29

1 resposta

1

Não tenho 100% de certeza de que este é o problema somente que estava impedindo o POEdit de analisar corretamente meu código (não tenho certeza se realmente se importa com o lado do WordPress), mas consertando Esses (estúpidos) erros e re-execução POEdit do arquivo .pot abaixo parece ter gerado as seqüências de tradução correta:

define( 'MY_TEXTDOMAIN', 'MY_TEXTDOMAIN' );
function load_mu_plugin_textdomain(){
    load_plugin_textdomain( MY_TEXTDOMAIN, false, plugin_dir_path( __FILE__ ) );
}
add_action( 'muplugins_loaded', 'load_mu_plugin_textdomain' );

Alterado da postagem original:

muplugins_loaded em vez de plugins-loaded (que não é uma ação de qualquer maneira: plugins_loaded é o gancho de ação correto - anote o sublinhado em vez do traço).

plugin_dir_path() em vez do erro de digitação: plugin_dit_path()

Aqui está o arquivo .pot atualizado que eu carreguei e, em seguida, gerou uma nova tradução para:

# WordPress Blank Pot
# Copyright (C) 2014 ...
# This file is distributed under the GNU General Public License v2 or later.
msgid ""
msgstr ""
"Project-Id-Version: MY_PROJECT\n"
"POT-Creation-Date: 2012-10-05 10:50+0100\n"
"PO-Revision-Date: \n"
"Last-Translator: Your Name <[email protected]>\n"
"Language-Team: Your Team <[email protected]>\n"
"Report-Msgid-Bugs-To: Translator Name <[email protected]>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Textdomain-Support: yes"
"X-Generator: Poedit 1.6.4\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: __;_e;esc_html_e;esc_html_x:1,2c;esc_html__;esc_attr_e;esc_attr_x:1,2c;esc_attr__;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_x:1,2c;_n:1,2;_n_noop:1,2;__ngettext:1,2;__ngettext_noop:1,2;_c,_nc:4c,1,2;\n"
"X-Poedit-Basepath: ../client/\n"
"X-Poedit-SearchPath-0: .\n"
"X-Poedit-Language: English\n"
"X-Poedit-Country: UNITED STATES\n"
"X-Poedit-Bookmarks: \n"
    
por Tom Auger 17.05.2017 / 15:57