Há um segundo argumento na __()
função. Ele deve ser definido como o domínio que você está usando para o seu plugin ou tema. Nos exemplos abaixo eu uso 'text_domain'
. A string do seu domínio deve ser única. Não deve corresponder a nenhuma outra sequência de domínio. Não usar um argumento de domínio de texto é 'default'
o padrão para o nome de domínio do WordPress. Veja o link para mais detalhes.
Sempre use a string ( 'text_domain'
). Nunca use uma variável, função ou constante com a string nela. A maioria dos programas de tradução (todos?) Não o verá sem a string lá.
Seu código:
echo __( 'Hello ' . $first . ' you own me money.' );
Não inclua variáveis na sequência.
Uma maneira melhor:
echo sprintf( __( 'Hello %s you own me money.', 'text_domain' ), $first );
Ou apenas:
printf( __( 'Hello %s you own me money.', 'text_domain' ), $first );
O %s
marcador indica ao tradutor humano que uma string está sendo inserida lá. Use %d
para números. Existem também outros espaços reservados .
(Esta frase está em inglês gramaticalmente incorreto. Use um 'Hello %s, you owe me money.'
ou 'Hello %s, you own my money.'
dependendo do significado que você pretendia.)
Seu código:
$html = '<div><p>Top: ' . $t_margin . '</p>' . <p>Bottom: ' . $b_margin . '</p></div>';
Não traduza HTML. É o mesmo em qualquer idioma.
Uma maneira melhor:
$html = sprintf( '<div><p>%s</p><p>%s</p></div>', __( 'Top: ', 'text_domain' ) . $t_margin, __( 'Bottom: ', 'text_domain' ) . $b_margin );
Ou divida-o em várias linhas:
$html = sprintf(
'<div><p>%s</p><p>%s</p></div>',
__( 'Top: ', 'text_domain' ) . $t_margin,
__( 'Bottom: ', 'text_domain' ) . $b_margin
);
Se não estiver aparente o que é Top e Bottom, você pode usá-lo _x()
para explicar o contexto desses termos.
Você pode encontrar outros casos de tradução aqui: Internacionalização: você provavelmente está fazendo errado