Arquivo do autor:Ederson Peka

Sobre Ederson Peka

EU SOU ASSIM Pensando bem, eu sou assim: Aquilo que eu mesmo edifico; E vou além, e excedo a mim, E mais que sei eu comunico. Pensando assim, eu sou do bem: Eu quero o bem, e o bem que eu quis, Se ao menos foi bem para alguém, É menos mal: me fez feliz! E, sem pensar, eu sou sentir, Eu sou ter fé, eu sou sorrir, Sem bem saber o como e o quando; Pensando em mim, eu sou amar; No fim do túnel, continuar... Eu sou assim... Eu vou levando... (01/03/2005)

O caminho das pedras pra gerar traduções de temas do WordPress

Primeiro temos que reescrever tudo que escreve texto fixo na tela, usando as funções de internacionalização do WordPress. Então em vez de:

<h2>Notícias</h2>

Fazemos:

<h2><?php echo __( ‘Notícias’, ‘text-domain’ ); ?></h2>

Ou ainda:

<h2><?php _e( ‘Notícias’, ‘text-domain’ ); ?></h2>

“text-domain” é o “domínio” desse arquivo de tradução. No nosso caso, o nome do diretório do tema (“meu-tema”).

Se quisermos dar uma força para o tradutor, podemos usar as funções que fornecem “contexto”; tipassim:

<h2><?php echo _x( ‘Notícias’, ‘Título da tela de notícias’, ‘meu-tema’ ); ?></h2>

Ou ainda:

<h2><?php _ex( ‘Notícias’, ‘Título da tela de notícias’, ‘meu-tema’ ); ?></h2>

Existe mais um monte de funções prontas bem interessantes: pra já escapar atributos de tags, pra lidar com singular e plural, pra lidar com data…


Depois disso, temos que carregar este “domínio de texto” no nosso tema. Colocamos uma linha a mais no cabeçalho do style.css :

/*
Theme Name: Meu Tema
Theme URI: https://meutema.com.br
Author: Ederson Peka
Author URI: https://ederson.peka.nom.br
Text Domain: meu-tema
Version: 1.0
*/

E uma função num hook:

public static function load_my_theme_textdomain() {
    load_theme_textdomain( ‘meu-tema’, get_template_directory() . ‘/languages’ );
}
add_action( ‘after_setup_theme’, ‘load_my_theme_textdomain’ );


Aí temos que criar um diretório “languages” dentro do tema, e dentro dele vão os arquivos de tradução. Só agora começa a complicar, rsrs.

O primeiro arquivo que criamos é um “modelo de tradução”. A extensão é “.pot”. Este arquivo tem todas as strings que existem para serem traduzidas, e as linhas onde estariam as traduções ficam vazias. É o arquivo que a gente vai copiar pra criar cada tradução de cada idioma. Um pedacinho dele:

#: footer.php:42
msgctxt “Citação de Douglas Adams”
msgid “Resumindo: É um fato bem conhecido que todos que querem governar as outras pessoas são, por isso mesmo, os menos indicados para isso.”
msgstr “”

#: footer.php:934
msgctxt “Citação de Alvo Dumbledore”
msgid “Palavras são, na minha nada humilde opinião, nossa inesgotável fonte de magia. Capazes de formar grandes sofrimentos e também de remediá-los.”
msgstr “”

Chamei esse arquivo de “meu-tema.pot”. Você pode criar esse arquivo na mão, varrendo todas as strings utilizadas no tema (trabalho escravo), ou usar uma ferramenta que faz isso automagicamente. Eu usei o wp-cli, dentro do diretório do tema, assim:

/caminho/para/wp-cli.phar i18n make-pot . languages/meu-tema.pot –ignore-domain

Ele gerou um meu-tema.pot pra mim dentro da pasta languages. Aí eu copiei esse cara para languages/es_ES.po , abri no editor e comecei a traduzir:

#: footer.php:42
msgctxt “Citação de Douglas Adams”
msgid “Resumindo: É um fato bem conhecido que todos que querem governar as outras pessoas são, por isso mesmo, os menos indicados para isso.”
msgstr “Resumamos: es un hecho bien conocido que las personas que más deseos tienen de gobernar a la gente son, ipso facto, las menos adecuadas para ello.”

#: footer.php:934
msgctxt “Citação de Alvo Dumbledore”
msgid “Palavras são, na minha nada humilde opinião, nossa inesgotável fonte de magia. Capazes de formar grandes sofrimentos e também de remediá-los.”
msgstr “Las palabras son, en mi no tan humilde opinión, nuestra más inagotable fuente de magia, capaces de infringir daño y de remediarlo.”


Depois que o arquivo .po estiver pronto, temos que compilá-lo (Java feelings?) para um arquivo binário .mo. Eu usei um comando chamado msgfmt:

msgfmt languages/es_ES.po -o languages/es_ES.mo

Esse comando vem num pacote chamado gettext (pode ser necessário um apt-get install gettext ).


Depois disso tudo, eu entrei no painel, em “Configurações”, e selecionei o idioma “Español”. Finalmente, as strings que eu traduzi apareceram em espanhol no site! Glória a Deux!


Problemão: toda vez que a gente gerar o arquivo modelo (.pot), e copiá-lo por cima do arquivo de tradução (.po), ele vai estar vazio e a gente vai ter que colocar as traduções tudinovo. Como resolver isso?

msgmerge languages/es_ES.po languages/meu-tema.pot > languages/es_ES.po

YouTube Player na linha de comando do Ubuntu Linux

No “Microsoft Ubuntu”, com o inacreditável youtube-dl é possível baixar vídeos do vocêtubo. Com o velho e fiel mplayer é possível tocar qualquer formato de vídeo conhecido (e os desconhecidos também, se bem que destes se sabe muito pouco). Juntei os dois no códigozinho abaixo, que eu salvei num arquivo youtube-play num diretório do meu PATH:

#!/bin/bash

function usage {
echo “USAGE: youtube-play [URL] [any other youtube-dl option]”
}

if [ $# -eq 0 ]; then
usage
else
youtube-dl $@ -o – | mplayer -osdlevel 3 -vo xv –
fi

Assim ele já vai baixando e já vai tocando e é o bicho vindo, moleque.

(Tô usando isso pra adiar um pouco aquele momento mágico em que o navegador glutão engole toda sua memória RAM sem mastigar. Em vez de navegar pra URL do vídeo, abro logo no terminal e dou dois ENTER pra mostrar quem manda.)

Clone (tosco) do Responsinator (traduzido para o português)

Já viu o Responsinator? É um site pra você testar seu site em resoluções pequenas (de diversos dispositivos móveis) e descobrir que ele não funciona direito.

A ideia é basicamente simples, então fiz um clone beeem tosco, só pra rodar localmente e tal…

Vê lá: Responsinator Tabajara em Português

Tradução do Plugin “Social” do WordPress para Português

Instalei o plugin Social no WordPress de um amigo. Procurei arquivos de tradução dele para o português brasileiro e não encontrei, então fiz uma tradução tabajara “half-mouth” rapidinha.

Ponha os arquivos “.po” e “.mo” no diretório /wp-content/plugins/social/lang/ (na verdade, só o arquivo “.mo” é necessário; o arquivo “.po” é o “arquivo-fonte”, que você vai editar se quiser alterar a tradução, pra depois, a partir dele, gerar o arquivo “.mo”).

Além disso, fiz uma versãozinha vagabunda traduzida da imagem usada nos links de login. Eu não recomendo simplesmente substituir a imagem do plugin. No meu caso, como o tema era “meu”, preferi colocá-la no diretório images/ dentro do tema, e sobrescrever duas regrinhas do plugin no meu style.css; assim:

div#social .social-sign-in-links .social-twitter{
    background-image:url('images/social.png');
}

div#social .social-sign-in-links .social-facebook{
    background-image:url('images/social.png');
}

Baixaê: social-wordpress-plugin.pt_BR.zip


© Compostela: “Deixe o que puder; leve o que precisar.”

Script Perl pra remover o caractere unicode “byte order mark” (BOM)

Tivemos alguns scripts PHP aqui gerando erro no servidor de homologação por causa de caracteres unicode misteriosos no início do arquivo. Esta marca de ordem de byte é um treco no comecinho do arquivo que de alguma forma diz “em qual das diferentes representações Unicode o texto está codificado.” Só que o PHP não sabe o que é isso Continuar lendo