Traduza um plugin usando arquivos .po .mo

33

Eu quero traduzir este plugin

.

O plugin já foi traduzido para outros idiomas e tem .pot arquivos para adicionar novos idiomas (tanto quanto eu entendi da descrição).

Como faço para criar arquivos .po e .mo para meu novo idioma e torná-los acessíveis para serem usados pelo plug-in? Eu tentei definir o idioma russo no meu arquivo wp-config.php , inserindo a definição abaixo:

define ('WPLANG', 'ru_RU');
    
por s976 02.07.2012 / 21:20
fonte

5 respostas

41

O Editor

Existem outros, mas isso é mais usado: Poedit , um catálogo de texto cruzado de várias plataformas (arquivos .po) editor.

Os formatos

  • .mo significa Objeto de Máquina
    - exportação compilada do arquivo .po que é usado pelo WordPress
  • .po significa Objeto Portátil
    - arquivo de texto editável com as strings de tradução
    - com base no arquivo master .pot , usando o Atualizar do arquivo POT da função PoEdit | - algumas pessoas distribuem isso como um arquivo mestre, mas ele deve ser usado apenas para traduções
  • .pot significa o modelo de objeto portátil
    - arquivo de texto editável usado para pegar todas as strings traduzíveis do próprio WordPress e Temas e Plugins, usando Atualizar de fontes função PoEdit

O procedimento

  • Duplique o arquivo .pot e renomeie-o para plugin-basename-lang_COUNTRY.po
  • Exemplo do caso de plug-in mencionado: subscribe-reloaded-pt_BR.po
    - pt_BR significa português do Brasil, mas muitas línguas não têm variação de país ...
    - você terá que preencher com seu próprio idioma
  • WPLANG no arquivo wp-config.php deve ser definido para o seu idioma, por exemplo, pt_BR
  • Toda vez que você salva o arquivo .po , o PoEdit gera automaticamente um arquivo .mo , que é o que o WordPress usa e basicamente o único que você precisa carregar

Observações

  • Se você fizer uma tradução parcial completa ou decente, envie-a ao autor do plug-in para que ele possa incluí-la no Repositório e você é creditado por isso
  • Não se esqueça de fazer um backup da sua tradução, porque se você atualizar o plug-in, seu arquivo será perdido
  • @ user17078 sugestão de plugin é bem legal, mas eu nunca usei muito
por brasofilo 03.07.2012 / 00:02
fonte
8

Você pode tentar este plug-in codestyling-localization: . Você pode traduzir seus plugins e temas usando isso.

    
por Aristeides 02.07.2012 / 22:20
fonte
8

(Aqui está um EXEMPLO de tradução para a DEUTSCH. MUDE as alfândegas para as SUAS DESEJADAS.)

em toda cabeça de plugins, existe um nome único. (por exemplo:

/*
Plugin Name: my-pluginname
.......
*/

então, na pasta desse plugin, crie uma pasta "languages";

então, no seu arquivo plugin .php (em algum lugar no topo), insira o código de inicialização:

class load_language 
{
    public function __construct()
    {
    add_action('init', array($this, 'load_my_transl'));
    }

     public function load_my_transl()
    {
        load_plugin_textdomain('my-pluginname', FALSE, dirname(plugin_basename(__FILE__)).'/languages/');
    }
}

$zzzz = new load_language;

abra qualquer editor de texto e insira como este código (OBSERVAÇÃO: só estamos adicionando duas mensagens de amostra, "olá" e "tchau", para que você possa adicionar MUITAS mensagens como VOCÊ QUER nas linhas semelhantes) .

# English translations for PACKAGE package.
# Copyright (C) 2012 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: my-pluginname 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-06 13:46-0400\n"
"PO-Revision-Date: 2013-03-21 11:20+0400\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"X-Poedit-SourceCharset: iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.5.4\n"


#: mypluginindex.php:87 (it is just a line of a note, to remind where our code appears)
msgid "mymessage1"
msgstr "Hello"

#: mypluginindex.php:88
msgid "mymessage2"
msgstr "Bye"

salve esse arquivo como "my-pluginname-en_US.po" (observe que .po é uma extensão do arquivo, portanto verifique se o seu programa de edição de texto não foi salvo em "my-pluginname-en_US.po.TXT ").

faça o download do software POEDIT e abra este arquivo. em seguida, edite o campo "translation" e salve como "my-pluginname-de_DE" serão gerados dois arquivos (Se poEdit não gerar o segundo arquivo .mo automaticamente, basta ir em Arquivo - > Preferências - > Editor e marcar a caixa que diz "Compilar automaticamente o arquivo .mo ao salvar"),

depois coloque esses dois arquivos na pasta "languages".

depois disso, abra wp-config.php e encontre este código:

define ('WPLANG, '');

e mude para

define ('WPLANG, 'de_DE');

Isso é tudo. Quando o WordPress é carregado, ele lerá seu arquivo de idioma de plugins, com o prefixo -de_DE.

Então, no arquivo .php do plugin, em vez de:

echo "Something string";

você deve usar:

echo __("mymessage1", 'my-pluginname');



Acabado. Agora você deve testar seu plugin.

p.s. links usados:

por T.Todua 25.10.2013 / 01:37
fonte
5

Você vai querer usar POEdit . É um aplicativo gratuito para criar arquivos .po / .mo.

Eu escrevi um tutorial bem detalhado sobre o tópico inteiro aqui . Você pode pular para a Etapa 3 - Criar o arquivo de tradução para o domínio de texto.

    
por Pippin 02.07.2012 / 23:29
fonte
5

Eu também sugiro h ttp: //poeditor.com/ . É uma ferramenta de tradução baseada na web que funciona muito bem com arquivos .po, .mo, .pot e outros tipos de arquivos.

    
por Taji M. 29.01.2013 / 12:56
fonte