Saya telah melihat berbagai cara melakukan pembuatan teks dengan hyperlink yang dapat diterjemahkan. Namun, saya tidak dapat menemukan satu pun praktik terbaik.
Jadi, berikut adalah beberapa solusi yang saya temukan:
// 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' );
Pikiran pertama saya adalah bahwa metode 1 akan menjadi yang terbaik. Itu tidak mengharuskan penerjemah Anda untuk mengetahui HTML. Tapi itu juga tidak memungkinkan orang-orang yang melakukannya mengacaukannya. Ini juga cukup KERING (Jangan Ulangi Diri Sendiri) karena Anda tidak perlu menerjemahkan seluruh bagian HTML berulang-ulang.
Namun, ketika memposting pertanyaan ini di twitter, orang-orang menjawab bahwa metode 3 akan menjadi yang terbaik seperti yang Anda lihat di sini .
Jadi, bagaimana cara membuat teks dengan hyperlink yang dapat diterjemahkan di WordPress?
sumber
_x
bukan__
%s
kepanjangan dari<strong>
atau<a href target="#">
? Apakah itu mempengaruhi terjemahan mereka?Hari ini saya bekerja dengan banyak situs web multi bahasa, dan saya harus mengatakan:
__()
tetapi selaluesc_html__()
/esc_attr__()
. Yang berarti bahwa string yang akan diterjemahkan tidak boleh berisi HTML dalam bentuk apa pun.*_x()
varian fungsi terjemahan.%1$sthis%2$s
seorang penerjemah non-teknis tidak mengerti bahwas
sebelumthis
itu diperlukan untuk rendering yang tepat, dan mungkin juga berpikir bahwa pengembang ingin mengetikthis
tetapi memiliki kesalahan ketik dan menulissthis
.Karena semua alasan ini, "menerjemahkan dengan benar" teks yang berisi tautan sulit. Satu-satunya solusi yang mempertimbangkan semua yang disebutkan di atas adalah:
Yang aman dan mudah diterjemahkan oleh orang-orang non-teknis, tetapi juga verbose dan PITA untuk diterapkan, terutama jika ini harus dilakukan untuk beberapa tautan ...
Namun, untuk kode yang dirilis di alam bebas dengan ribuan pengguna (nyata atau potensial) berbicara banyak bahasa, ini adalah cara yang akan saya ambil.
Ini sebenarnya cara saya mengambil bahkan untuk kode internal-gunakan-saja, tapi itu saya.
Catatan :
Mungkin terlihat terlalu banyak untuk membuat kata "Google" diterjemahkan secara terpisah, dan itu mungkin benar untuk kasus khusus ini. Namun terkadang bahkan menganggap nama merek itu salah. Sebagai contoh, di Italia kami memiliki merek "Algida" yang dikenal dengan ~ 30 nama berbeda di seluruh dunia .
Dalam kasus seperti itu, pengodean URL dan / atau nama merek, akan menyebabkan masalah.
Berikan konteks untuk terjemahan akan membantu penerjemah memutuskan apakah mereka perlu menerjemahkan nama merek atau tidak.
sumber
Anda harus menyimpan markup dalam string yang dapat diterjemahkan, karena penerjemah harus tahu ada tautan. Dalam beberapa bahasa, teks tautan yang dihasilkan mungkin menjangkau beberapa kata, bahkan mungkin ada koma (atau yang setara) di dalam atau markup lainnya yang perlu disarangkan dengan benar.
Penting juga untuk membangun teks tautan berbicara, bukan ini atau di sini .
2 atau 3 adalah satu-satunya opsi yang dapat diterjemahkan, tetapi Anda juga harus membuat URL dapat diterjemahkan.
sumber