Se seus widgets incluem strings que devem ser traduzidas, você poderá editar a tradução com o WPML, mas não é garantido que as traduções sejam exibidas no site.

Método 1) Usando filtros WordPress

O WPML usa os filtros padrão do WordPress e traduz o conteúdo que você filtra.

Todos os widgets que vêm com o WordPress aplicam filtros por padrão. Quando você cria seus próprios widgets, precisa garantir que o mesmo ocorra.

Por exemplo, para aplicar filtros ao título do widget, use o seguinte:

$wtitle = apply_filters('widget_title', $wtitle);

O WPML conecta-se à chamada apply_filters e possibilita a tradução dessas strings através da página de Tradução de Strings.

Método 2) Registrando strings manualmente

Alternativamente, você pode usar as funções de tradução de strings do WPML manualmente. Você pode registrar as strings para tradução e visualizar suas traduções durante a exibição.

Para registrar strings, use a chamada icl_register_string:

icl_register_string($context, $name, $value)
    • $context – o nome do plugin, em um formato legível por humanos.
    • $name – o nome da string que ajuda o usuário (ou o tradutor) a entender o que está sendo traduzido.
    • $value – a string que precisa ser traduzida.

Quando for exibir os textos, use icl_t para exibir com as traduções:

icl_t($context, $name, $value)

Método 3) Usando GetText para strings no código

Os métodos descritos anteriormente são melhores para textos gerados dinamicamente. Esses textos são editáveis pelos usuários através do painel administrativo do WordPress.

Se você tem textos estáticos, incluídos no código PHP, pode usar chamadas GetText como:

<?php __('Hello world','cool_theme'); ?>

O WPML intercepta as chamadas para GetText e possibilita a tradução desses textos através da interface de Tradução de Strings. Note que esse método funciona somente para textos que não podem ser editados e são fixos no tema.