Eu já vi maneiras diferentes de fazer um texto com um hiperlink traduzível. No entanto, não consegui encontrar uma única prática recomendada.
Então, aqui estão algumas das soluções que encontrei:
// METHOD 1
sprintf( __( 'Please read %1$sthis%2$s.', 'tacoverdo-example-domain' ), '<a target="_blank" href="' . esc_url( 'https://goo.gl' ) . '">', '</a>' );
// METHOD 2
echo '<a target="_blank" href="' . esc_url( 'https://goo.gl' ) . '">';
_e( 'Please read this.', 'tacoverdo-example-domain' );
echo '</a>';
// METHOD 3
sprintf( __( 'Please read <a href="%s">this</a>.', 'tacoverdo-example-domain' ), esc_url( 'https://goo.gl' ) );
// METHOD 4
sprintf( __( 'Please read %sthis%s.', 'tacoverdo-example-domain' ), '<a target="_blank" href="' . esc_url( 'https://goo.gl' ) . '">', '</a>' );
// METHOD 5
_e( 'Please read <a target="_blank" href="' . esc_url( 'https://goo.gl' ) . '">this</a>', 'tacoverdo-example-domain' );
Meu primeiro pensamento seria que o método 1 seria o melhor. Não requer que seus tradutores conheçam HTML. Mas também não permite que os que fazem mexam com isso. Também é bastante SECO (não se repita), pois você não precisa traduzir toda a parte HTML repetidas vezes.
No entanto, ao postar essa pergunta no twitter, as pessoas responderam que o método 3 seria o melhor, como você pode ver aqui .
Então, como devo fazer um texto com hiperlink traduzível no WordPress?
fonte
_x
em vez de__
%s
representa<strong>
ou<a href target="#">
? Isso influencia a tradução deles?Atualmente, trabalho com muitos sites multilíngues e devo dizer:
__()
, mas sempreesc_html__()
/esc_attr__()
. O que significa que a string a ser traduzida não pode conter HTML de nenhum tipo.*_x()
variante das funções de tradução.%1$sthis%2$s
um tradutor não técnico não entende que os
pouco antesthis
é necessário para a renderização adequada e também pode pensar que o desenvolvedor quis digitar,this
mas teve um erro de digitação e escreveusthis
.Por todas essas razões, é difícil traduzir corretamente o texto que contém os links. A única solução viável que leva em conta tudo o que foi dito acima é:
O que é seguro e fácil de ser traduzido por pessoas não técnicas, mas também detalhado e um PITA para implementar, especialmente se isso tiver que ser feito para vários links ...
No entanto, para um código liberado na natureza com milhares de usuários (reais ou potenciais) falando muitos idiomas, é assim que eu adotaria.
Essa é realmente a maneira que eu tomo, mesmo para códigos de uso interno, mas sou eu.
Nota :
Pode parecer exagero tornar a palavra "Google" traduzível separadamente, e provavelmente isso é verdade para este caso específico. Mas às vezes até assume que os nomes das marcas estão errados. Só para citar um exemplo, na Itália temos a marca "Algida", que é conhecida com ~ 30 nomes diferentes ao redor do mundo .
Nesse caso, a codificação incorreta do URL e / ou do nome da marca causará problemas.
Fornecer contexto para a tradução ajudará os tradutores a decidir se precisam traduzir o nome da marca ou não.
fonte
Você deve manter a marcação na string traduzível, porque os tradutores precisam saber que existe um link. Em alguns idiomas, o texto do link resultante pode abranger várias palavras; pode até haver uma vírgula (ou equivalente) dentro ou outra marcação que precise ser aninhada corretamente.
Também é importante criar um texto de link para falar, não este ou aqui .
2 ou 3 são as únicas opções de tradução, mas você também deve tornar o URL traduzível.
fonte