A pasta de idiomas http://wordpress.org/extend/plugins/bbpress/ bbpress '(wp-content / plugins / bbpress / bbp-languages) tem esse aviso:
/**
* Do not put custom translations here. They will be deleted on bbPress updates.
*
* Keep custom bbPress translations in /wp-content/languages/
*/
Na verdade, este não é um problema novo e sim, eles estão certos. Este é um grande problema se você estiver usando plugins wordpress com um idioma que não seja o inglês.
Basicamente, traduzi o bbpress e criei arquivos .po e .mo. Os arquivos estão funcionando se eu os colocar em sua pasta normal wp-content / plugins / bbpress / bbp-languages. Mas, como o aviso acima, diz que será excluído quando a atualização. Mas o problema é que a tradução não está funcionando se eu os colocar na pasta wp-content / languages /, conforme sugerido no bbpress.
Eu acho que deve haver um gancho ou algo que eu possa ativá-lo, mas qual é a melhor solução para isso? Simplesmente quero manter os arquivos de idioma do plugin em wp-content / languages /
fonte
Respostas:
Você precisa substituir a chamada para o arquivo de idioma do BBpress.
Um bom lugar para fazer isso é um arquivo específico do idioma no diretório de idiomas geral. Para o turco, provavelmente seria um arquivo chamado
tr_TR.php
. Isso será carregado automaticamente e somente se corresponder ao idioma do seu blog. Não será substituído.O BBPress não usa a função
load_plugin_textdomain
, masload_textdomain
sim. Aqui você pode encontrar um filtro:Portanto, no seu arquivo php do idioma, adicione um filtro para alterar o caminho:
fonte
WP_LANG_DIR
) mais o seu arquivo mo.load_plugin_textdomain()
chamadas durante a ação "init", caso contrário, não podemos conectar-nos ao filtro "load_textdomain_mofile". Já será tarde demais então.O que você precisa fazer é criar um plug-in simples que gerencie o domínio de texto dos plug-ins instalados. Se você não quiser ter uma solução global, adicione o código ao seu functions.php no seu tema.
A idéia é instruir o wordpress sobre onde encontrar traduções. Internamente em todos os plugins, isso é feito usando algo semelhante ao
esta é a função que você usará. Como você pode ver aqui , o último argumento é usado para definir o relativo ao caminho do plug-in, onde os arquivos de tradução residem.
Você pode fazer o que quiser colocando uma linha para cada plug-in que deseja alterar a pasta de idiomas da seguinte maneira.
isso instruirá o wordpress a carregar seus arquivos de tradução personalizados de uma pasta ao lado da
plugins
pasta que possui uma pasta chamadabbpress
que possui os arquivos de tradução usando a mesma nomeação EXATA que cada plug-in usa.Seu método, que instrui os domínios de texto para todos os plugins, deve ser executado na
init
fase da seguinte maneira(Não esqueça de marcar isso como resposta se você achou útil)
fonte
Para que isso funcione, você precisa ter os arquivos de tradução do WordPress no WP_LANG_DIR e ter o código de idioma global definido para esse idioma. Se você estiver incluindo apenas traduções para o bbPress sem alterar o código do idioma ou sem os principais arquivos de tradução do WordPress, nada será traduzido apesar de você carregá-los.
Se você deseja substituir o código do idioma apenas pelo bbPress, é necessário adicionar um filtro a 'bbpress_locale' que permita substituir o arquivo mo do bbPress.
Embora seja verdade que o bbPress 2.0 usa a função load_textdomain (), load_plugin_textdomain () é apenas um invólucro para load_textdomain () de qualquer maneira. O método bbPress 2.0 é mais robusto e permite a colocação global de arquivos de tradução, para que você não os perca durante a atualização do plug-in.
fonte
No meu caso, a criação de tradução personalizada permanente para o plug-in requer as seguintes etapas (exemplos para tradução de plug-in ACF):
wp-content/languages/plugins/
diretório.po
dalang/
pasta do plug-in (ou qualquer outro com traduções) para o criadowp-content/languages/plugins/
(por exemplo, delang/acf-pl_PL.po
parawp-content/languages/plugins/acf-pl_PL.po
).po
arquivos e, em seguida, gere.mo
e salve emwp-content/languages/plugins/
(por exemplowp-content/languages/plugins/acf-pl_PL.mo
)Dessa forma, a tradução deve ser preservada mesmo após a atualização do plugin.
Não tenho certeza se essa estratégia funcionará para todos os plugins, mas definitivamente vale a pena tentar.
fonte