He visto diferentes formas de hacer que un texto con un hipervínculo sea traducible. Sin embargo, no he podido encontrar una sola mejor práctica.
Entonces, aquí están algunas de las soluciones que encontré:
// 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' );
Mi primer pensamiento sería que el método 1 sería el mejor. No requiere que sus traductores sepan HTML. Pero tampoco permite que los que lo hacen se metan. También es bastante SECO (no se repita) ya que no tiene que traducir toda la parte HTML una y otra vez.
Sin embargo, al publicar esta pregunta en Twitter, la gente respondió que el método 3 sería el mejor, como puede ver aquí .
Entonces, ¿cómo debo hacer un texto con hipervínculo traducible en WordPress?
fuente
_x
lugar de__
%s
significa<strong>
o significa<a href target="#">
? ¿Influye en su traducción?En estos días trabajo con muchos sitios web multilingües, y tengo que decir:
__()
pero siempreesc_html__()
/esc_attr__()
. Lo que significa que la cadena a traducir no puede contener HTML de ningún tipo.*_x()
variante de las funciones de traducción.%1$sthis%2$s
un traductor no técnico no comprende que los
justo antesthis
es necesario para una representación adecuada, y también puede pensar que el desarrollador quería escribirthis
pero tenía un error tipográfico y escribiósthis
.Por todas estas razones, traducir "correctamente" el texto que contiene enlaces es difícil. La única solución viable que tiene en cuenta todo lo dicho anteriormente es:
Lo cual es seguro y fácil de traducir por personas no técnicas, pero también detallado y un PITA para implementar, especialmente si esto tiene que hacerse para varios enlaces ...
Sin embargo, para un código lanzado en la naturaleza con miles de usuarios (reales o potenciales) que hablan muchos idiomas, esta es la forma en que lo tomaría.
Esta es realmente la forma en que tomo incluso el código de uso interno, pero ese soy yo.
Nota :
Puede parecer demasiado hacer que la palabra "Google" sea traducible por separado, y eso probablemente sea cierto para este caso específico. Pero a veces incluso asumir que las marcas están mal. Solo por nombrar un ejemplo, en Italia tenemos la marca "Algida" que se conoce con ~ 30 nombres diferentes en todo el mundo .
En tal caso, codificar la URL y / o el nombre de la marca causará problemas.
Proporcionar contexto para la traducción ayudará a los traductores a decidir si necesitan traducir el nombre de la marca o no.
fuente
Debe mantener el marcado en la cadena traducible, porque los traductores deben saber que hay un enlace. En algunos idiomas, el texto del enlace resultante puede abarcar varias palabras, incluso podría haber una coma (o un equivalente) dentro u otro marcado que deba anidarse correctamente.
También es importante construir un texto de enlace hablado, no este o aquí .
2 o 3 son las únicas opciones traducibles, pero también debe hacer que la URL sea traducible.
fuente