我已经看到了使带有超链接的文本可翻译的不同方法。但是,我一直找不到一个最佳实践。
因此,这是我发现的一些解决方案:
// 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' );
我首先想到的是方法1最好。它不需要您的翻译者了解HTML。但是,它也不允许这样做的人弄乱它。它也很干燥(不要重复自己),因为您不必一遍又一遍地翻译整个HTML部分。
但是,当在Twitter上发布此问题时,人们回答说方法3最好,如您在此处看到的那样。
因此,我应该如何使带有超链接的文本在WordPress中可翻译?
_x
而不是__