Bem-vindo(a)!

Exponho aqui um pouco daquilo que tem a ver com a minha produção diária. Cada publicação, uma novidade: poesias, notícias, pensamentos, reportagens…

No corpo, na alma e no coração RSS

Plugin WordPress WPtouch traduzido para Português do Brasil

Por Isaac Ribeiro | Categoria(s): Downloads, WordPress | 06/10/2009 às 8:59

WPtouch oferece rapidez e elegância ao tema do seu site para dispositivos móveis (Foto: BraveNewCode)

WPtouch oferece rapidez e elegância ao tema do seu site para dispositivos móveis (Foto: BraveNewCode)

O WPtouch, desenvolvido pela BraveNewCode, é um tema para WordPress adaptado aos dispositivos móveis, isto é, iPhone, iPod Touch, Android e BlackBerry. Modelado conforme as especificações da App Store, loja de aplicativos da Apple, o WPtouch transforma o visual do seu site numa aplicação web completamente integrada ao seu portátil, mostrando o conteúdo daquele com rapidez e elegância, e tudo sem interferir no seu tema principal para “computadores de mesa”.

Flexibilidade

O plugin possui uma área administrativa com inúmeras opções, sendo capaz de atender às mais diversas necessidades. Dentre as suas principais características estão a escolha de skins – podendo também alterar as cores de background, textos e links -, a inserção de códigos personalizados para estatísticas de monitoramento, a edição de CSS, a inclusão de logomarca para tela inicial e favoritos, e as notificações push através da sua conta Prowl.

Comentários AJAX postados em tempo real, completo sistema de pesquisa, possibilidade de mostrar ou ocultar resumos, e suporte para os plugins FlickrRSS (fotos) e Blip.it (vídeos) são outras funções que fazem do WPtouch um adicional para WordPress que não pode faltar no seu site.

Internacionalização

Mesmo com tudo isso, o WPtouch, atualmente na versão 1.9.3.3, ainda precisa consolidar-se na era da internacionalização, processo de desenvolvimento de aplicações prontas para tradução. Seu código já está quase todo preparado, porém ele sequer possui um arquivo de linguagem em inglês. Entretanto, segundo Dale Mugford, um dos idealizadores do WPtouch, em breve teremos a versão 2.0, trazendo o esperado suporte para vários idiomas.

Download: Plugin WordPress WPtouch Inglês

Tradução para Português do Brasil

Enquanto a multilinguagem não chega oficialmente ao WPtouch, resolvi a ele dedicar um pouco de tempo e de certa forma contribuir para tal lançamento. Aproveitando a aparente estabilidade da revisão 1.9.3.3, desvendei alguns “segredos” básicos de PHP e traduzi todo o plugin para o Português do Brasil ou pt_BR, como chamamos em linguagem computacional.

Download: Plugin WordPress WPtouch Português do Brasil - 1.9.3.3

Processo de Tradução

Graças ao poder da ferramenta online PHP Text Scanner and .po File Generator, que escaneia páginas PHP e cria arquivos .po (Portable Object) automaticamente, e ao programa Poedit, editor de arquivos .po e gerador dos .mo (Machine Object) correspondentes, a tarefa inicialmente parecia simples e rápida.

Sabendo que todas as palavras e frases citadas no WPtouch estavam no Portable Object, eu deveria, portanto, abri-lo com o Poedit e traduzir uma linha após a outra. O problema é que o arquivo tinha nada menos que 239 linhas. Tudo bem. Reescrevi todas elas em pt_BR e fui conferir o resultado. Felizmente, tradução quase completa. Mas fiquei intrigado: – Por que não fez tudo de uma vez, tendo em vista que o PHP Scanner localiza todas as strings (sequências) iniciadas com “_e(” e “__(“?

Nesse ponto morava o problema central. Algumas expressões estavam fora do padrão internacional, ou seja, não possuíam a gettext para chamar o que seria visualizado e, consequentemente, o PHP Text Scanner não as “enxergou”.

Outra falha dizia respeito a existência da gettext “_e(” ou “__(” em strings nas quais faltavam a referência – normalmente o nome do plugin – necessária para se saber onde está o arquivo de tradução.

No final das contas, somente depois da alteração de diversos arquivos é que a tradução pôde ser concluída, permitindo termos um WPtouch 100% Português do Brasil e abrindo caminho para a internacionalização desse plugin.

Listagem de modificações

  1. Adicionado o seguinte código na linhas 45, 46 e 47 do wptouch/wptouch.php:
    //Internationalization
    $plugin_dir = basename(dirname(__FILE__));
    load_plugin_textdomain( 'wptouch', 'wp-content/plugins/' . $plugin_dir . '/languages', $plugin_dir . '/languages' );
  2. Adicionado o nome do plugin “wptouch” na string da linha 23 do wptouch/ajax/file_upload.php:
    echo __('<p style="color:red">There seems to have been an error.<p>Please try your upload again.</p>', "wptouch" );
  3. Adicionado o nome do plugin “wptouch” na string da linha 25 do wptouch/ajax/file_upload.php:
    echo  __( '<p style="color:green">File has been saved!</p>', "wptouch" );
  4. Adicionado o nome do plugin “wptouch” na string da linha 28 do wptouch/html/plugin-compat-area.php:
    <p><?php _e( "For further documentation visit", "wptouch" ); ?> <?php echo sprintf(__( "%sBraveNewCode.%s", "wptouch" ), '<a href="http://www.bravenewcode.com/wptouch/">','</a>'); ?></p>
  5. Adicionado o nome do plugin “wptouch” na string da linha 26 do wptouch/html/icon-area.php:
    <p><img src="<?php echo compat_get_plugin_url( 'wptouch' ) . '/images/progress.gif'; ?>" alt="" /> <?php _e( "Uploading...", "wptouch" ); ?></p>
  6. Adicionado o nome do plugin “wptouch” na string da linha 30 do wptouch/themes/default/header.php:
    <input type="hidden" id="logsub" name="submit" value="<?php _e('Login', "wptouch"); ?>" tabindex="9" />
  7. Adicionado o nome do plugin “wptouch” na string da linha 142 do wptouch/wptouch.php:
    $settings_link = '<a href="' . admin_url( 'options-general.php?page=wptouch/wptouch.php' ) . '">' . __('Settings', "wptouch") . '</a>';
  8. Alterado o nome do plugin de “wordtwit” para “wptouch” na string da linha 14 do wptouch/html/head-area.php:
    <li><?php echo sprintf(__( "%sNewsletter%s", "wptouch" ), '<a href="http://www.bravenewcode.com/newsletter" target="_blank">','</a>'); ?> | </li>
  9. Adicionada a função gettext do PHP nas duas palavras “Search…” da string da linha 51 do wptouch/themes/default/header.php:
    <input type="text" value="<?php _e('Search...', "wptouch"); ?>" onfocus="if (this.value == '<?php _e( "Search...", "wptouch" ); ?>') {this.value = ''}" name="s" id="s" />
  10. Adicionada a função gettext do PHP na expressão “Select category:” na string da linha 49 do wptouch/themes/core/core-apple-menu.php:
    $select = wp_dropdown_categories( __( 'show_option_none=Select category:&show_count=1&orderby=name&echo=0', "wptouch" ));
  11. Adicionada a função gettext do PHP na expressão “Select Tag:” na string da linha 58 do wptouch/themes/core/core-apple-menu.php:
    <option value=""><?php _e("Select Tag:", "wptouch"); ?></option>
  12. Adicionada a função gettext do PHP na expressão ” day ago” na string da linha 32 do wptouch/themes/default/comments.php:
    else if ($d < 2) echo floor($d) . __( ' day ago', 'wptouch');
  13. Adicionada a função gettext do PHP na expressão ” days ago” na string da linha 33 do wptouch/themes/default/comments.php:
    else echo floor($d) . __( ' days ago', 'wptouch'); ?>
  14. Adicionada a função gettext do PHP na expressão “M jS, Y @ h:i a” na string da linha 08 do wptouch/themes/default/single.php:
    <div class="single-post-meta-top"><?php echo get_the_time( __( "M jS, Y @ h:i a", "wptouch" ) ) ?> › <?php the_author() ?><br />
  15. Alterada a expressão “All content Copyright ©” para “Creative Commons (CC)”.
  16. Cabeçalho do arquivo .po preenchido com:
    msgid ""
    
    msgstr ""
    
    "Project-Id-Version: WPtouch 1.9.3.3\n"
    
    "POT-Creation-Date: \n"
    
    "PO-Revision-Date: \n"
    
    "Last-Translator: Isaac Ribeiro <webmaster@isaacribeiro.com.br>\n"
    "Language-Team: Isaac Ribeiro <webmaster@isaacribeiro.com.br>\n"
    
    "MIME-Version: 1.0\n"
    
    "Content-Type: text/plain; charset=utf-8\n"
    
    "Content-Transfer-Encoding: 8bit\n"
    
    "X-Poedit-Language: Portuguese\n"
    
    "X-Poedit-Country: BRAZIL\n"

Problema conhecido

  1. As expresões “1 Comment” e “% Comments” deveriam ser traduzíveis, mas o POedit enxergou o código
    <h3 onclick=\"bnc_showhide_coms_toggle();\" id=\"com-head\"><img id=\"com-arrow\" src=\"

    no lugar delas na função gettext do PHP na string da linha 18 do wptouch/themes/default/comments.php:

    <?php comments_number( __('', 'wptouch'), __('<h3 onclick="bnc_showhide_coms_toggle();" id="com-head"><img id="com-arrow" src="' . compat_get_plugin_url( 'wptouch' ) . '/themes/core/core-images/com_arrow.png" alt="arrow" />1 Comment</h3>', 'wptouch'), __('<h3 onclick="bnc_showhide_coms_toggle();" id="com-head"><img id="com-arrow" src="' . compat_get_plugin_url( 'wptouch' ) . '/themes/core/core-images/com_arrow.png" alt="arrow" />% Comments</h3>', 'wptouch') ); ?>

Tópicos Relacionados

Comentários

  1. […] traduzido para Português do Brasil – No … Após a sua avaliação, vote ou comente Fonte Download: Plugin WordPress WPtouch 1.9.3.3 Inglês. Tradução para Português do Brasil. Enquanto […]

  2. […] você ainda não conhece este plugin, no artigo WordPress WPtouch traduzido para Português do Brasil, faço uma análise de suas funções e explico como foi o processo de […]

  3. […] Fonte: isaacribeiro […]

  4. […] uma versão oficial do Plugin WPtouch versão 1.9.34, mas sondando na internet, encontrei o blog do IsaccRibeiro, que traduziu a versão anterior do plugin (a 1.9.33) para o Português do Brasil, e isso é uma […]

Escreva um comentário