fbpx

Bem vindo ao
Blog da FULL.

Aprenda, crie e cresça seu negócio na internet.

Encontre conteúdos, dicas, tutoriais e novidades sobre as principais ferramentas Wordpress

Como internacionalizar o WordPress para localização

Você está em:

Como internacionalizar o WordPress para localização

Uau! Se você quer saber o que significa este post, não se preocupe, você não é o único! Como você sabe, o WordPress é traduzido para muitos idiomas, mas muitas vezes os plugins ou temas contêm algumas strings que não são traduzidas para o seu próprio idioma e isso é mais do que frustrante: é irritante.

Então por que isso acontece? Provavelmente porque os desenvolvedores não usam como deveriam a internacionalização . Ou seja, o uso de funções específicas incluídas no WordPress que permitem uma maneira fácil de traduzir tudo.

Passo 1 – Carregando arquivos de tradução

O primeiro passo ao criar um tema é carregar os arquivos de tradução, existem muitas maneiras de fazer isso, mas a mais simples é usar este código:

add_action(‘after_setup_theme’, ‘my_theme_setup’);

function my_theme_setup(){

    load_theme_textdomain(‘my_theme’, get_template_directory() . ‘/languages’);

}

Ao trabalhar em um plugin, é praticamente a mesma coisa:

function myplugin_init() {

  load_plugin_textdomain( ‘my-plugin’, false, dirname( plugin_basename( __FILE__ ) ) ); 

}

add_action(‘plugins_loaded’, ‘myplugin_init’);

Agora que os arquivos estão carregados em uma pasta “languages”, você pode criar um arquivo .pot ou .po usando o software gratuito POedit  .

Passo 2 – Traduzindo strings

Quando você precisa que uma string seja traduzível, você precisa incluir a string contida em uma função. As funções mais utilizadas são _e() e __(). Aqui está um exemplo de como usar __():

echo ‘<p>’ . __( ‘This is the string content’, ‘textdomain’ ) . ‘</p>’;

O que esta função está retornando a string contém, mas não a imprime. É por isso que precisamos usar echo. Mas a função _e() está imprimindo a string sem usar echo ou print:

echo ‘<p>’;

_e( ‘This is the string content’, ‘textdomain’ );

echo ‘</p>’;

Passo 3 – Traduzindo string contendo variáveis

Mas às vezes sua string pode conter variáveis. Usar _e() e __() não funciona. Então, nesse caso você precisa das funções printf() e sprintf(). Como vimos anteriormente, printf() ecoa a string enquanto sprintf() a armazena.

echo ‘<p>’;

printf( __( ‘I bought %d books.’ ), $_books_count );

echo ‘</p>’;

echo ‘<p>’;

echo sprintf( __( ‘I bought %d books.’ ), $_books_count );

echo ‘</p>’;

Passo 4 – Strings com mais de uma variável

No caso de uma string contendo mais de uma variável, use o seguinte código:

printf( __( ‘I bought %1$s books, and %2$s tomatoes.’ ), $books_count, $tomatoes_count );

Passo 5 – Lidando com plurais

No exemplo acima eu comprei livros e tomates. Mas o que eu comprei apenas um livro? O código imprimirá “1 livros”, e isso não está correto. Então, para lidar com o plural, existe outra função chamada _n(). Aqui está como usá-lo:

printf( _n( ‘i bought %d book.’, ‘i bought %d books.’, $books_count ), $books_count );

Passo 6 – Contextos

Às vezes, uma palavra pode ter significados diferentes devido ao seu contexto. Você pode então usar essas funções _x() e _ex(). O segundo ecoa a string enquanto o primeiro armazena apenas seu conteúdo. Essas funções têm um segundo argumento para explicar seu contexto. Por exemplo, se uma palavra for usada duas vezes em uma página, mas tiver significados diferentes no conteúdo e na barra lateral, seu código ficará assim:

/*

APPARENT (obvious vs. not clear) — It was apparent to all, Joe was the apparent loser. 

Two different contexts for the word “apparent”

*/

// In the content

echo _x( ‘apparent’, ‘in_content’, ‘my-plugin-domain’ );

// In the sidebar

echo _x( ‘apparent’, ‘in_sidebar’, ‘my-plugin-domain’ );

Passo 7 – Internacionalização do Javascript

E finalmente quando você tem uma string que precisa ser traduzível em um arquivo javascript, você pode usar um método definido no codex usando wp_localize_script().

// In your PHP file:

wp_enqueue_script( ‘script-handle’, … );

wp_localize_script( ‘script-handle’, ‘objectL10n’, array(

‘speed’  => $distance / $time,

‘submit’ => __( ‘Submit’, ‘my-plugin-domain’ ),

) );

// in the javascript file:

$(‘#submit’).val(objectL10n.submit);

$(‘#speed’).val(‘{speed} km/h’.replace(‘{speed}’, objectL10n.speed));

Basta substituir suas próprias variáveis e pronto!

Aprenda com a FULL.

Junte-se a mais de 50 mil pessoas que recebem em primeira mão as principais ferramentas e tecnologia para desenvolvimento web

Meu carrinho
🎁 Faltam R$300,00 para liberar o Cupom Secreto
Seu carrinho está vazio.

Parece que você não adicionou nada ao seu carrinho =(