__
(sublinhado duplo) é a função de tradução base. Ele traduz uma string e a retorna como uma string.
_e
faz o mesmo que __
, mas o eco é o resultado imediatamente.
_x
é a função de tradução contextual. Tem uma segunda opção para fornecer contexto às pessoas que fazem a tradução.
_ex
é o mesmo que _x
, mas o resultado é o eco.
Exemplo de uso de _x
:
$string = _x( 'Buffalo', 'an animal', 'plugin-domain' );
$string = _x( 'Buffalo', 'a city in New York', 'plugin-domain' );
$string = _x( 'Buffalo', 'a verb meaning to confuse somebody', 'plugin-domain' );
Às vezes, a mesma string pode ser diferente em outros idiomas. Fornecer contexto aos tradutores pode ajudá-los a escolher as palavras certas.
Funções de atalho:
-
esc_attr__
: Equivalente a__
, mas também executa o resultado emesc_attr
. -
esc_html__
: Equivalente a__
, mas também executa o resultado emesc_html
. -
esc_attr_e
: Equivalente a_e
, mas também executa o resultado emesc_attr
. -
esc_html_e
: Equivalente a_e
, mas também executa o resultado emesc_html
. -
esc_attr_x
: Equivalente a_x
, mas também executa o resultado emesc_attr
. -
esc_html_x
: Equivalente a_x
, mas também executa o resultado emesc_html
.
_n
é o manipulador de pluralização. Exemplo:
$string = sprintf( _n(
'You have %d taco.',
'You have %d tacos.',
$number,
'plugin-domain'),
$number );
Nesse exemplo, há duas maneiras de dizer o número de tacos, dependendo se é singular ou não. O primeiro uso de $ number informa a função _n
qual versão usar. O segundo uso de $ number acontece no sprintf, para substituir o% d pelo número real na string.
Não há função de eco equivalente a _n
, mas existe uma função chamada _nx
. É uma combinação de _n
e _x
. Pluralização e contexto.
_n_noop
é especial. É usado para traduzir strings pluralizadas, mas na verdade não realiza a tradução imediatamente. Isso é útil se você quiser tornar as strings centralizadas, mas na verdade faz o trabalho em outro lugar. A função que realmente faz o trabalho em outro lugar é translate_nooped_plural
.
Exemplo:
$holder = _n_noop('You have %d taco.', 'You have %d tacos.', 'plugin-domain');
// ... later ...
$string = sprintf( translate_nooped_plural( $holder, $count ), $count );
Isso não é muito usado, mas pode ser útil para a organização. Se você colocar todas as suas strings em um arquivo, por exemplo, então referenciá-las em outro lugar, isso não seria possível com apenas _n
, você precisa de algo como _n_noop
para fazer isso.
_nx_noop
é o mesmo que _n_noop
, mas também pode ter um contexto para os tradutores, o mesmo que _x
.
Observe que você pode colocar o domínio na chamada de função noop ou na chamada de função translate_nooped_plural. O que fizer mais sentido para sua organização. Se ambos tiverem um domínio, aquele que foi passado para a chamada noop ganha.
number_format_i18n
é o equivalente ao number_format do PHP, mas adiciona o manuseio de coisas como decimais e assim por diante, que são diferentes em outras localidades.
date_i18n
é o equivalente à data do PHP, com todas as informações pertinentes manipulação lá também. Nomes dos meses, nomes dos dias, etc.
Além disso, nunca viola as leis . Apenas um lembrete. :)