İşlevde ikinci bir argüman var __()
. Eklentiniz veya temanız için kullandığınız etki alanına ayarlanmalıdır. Aşağıdaki örneklerde kullanıyorum 'text_domain'
. Etki alanı dizenizin benzersiz olması gerekir. Başka bir etki alanı dizgisiyle eşleşmemelidir. Varsayılan olarak bir metin etki alanı argümanı kullanmamak'default'
, WordPress etki alanı adına . Daha fazla bilgi için linke bakınız.
Her zaman dizeyi kullan ('text_domain'
) . Asla içinde bir dize olan değişken, işlev veya sabit kullanmayın. (Tümü?) Çeviri programlarının çoğu, orada dize olmadan onu görmez.
Senin kodun:
echo __( 'Hello ' . $first . ' you own me money.' );
Dize değişkenleri dahil etmeyin.
En iyi yol:
echo sprintf( __( 'Hello %s you own me money.', 'text_domain' ), $first );
Ya da sadece:
printf( __( 'Hello %s you own me money.', 'text_domain' ), $first );
Yer %s
tutucu, insan tercümana bir ipin oraya girdiğini söyler. %d
Sayılar için kullanın . De vardır diğer tutucuları .
(Bu cümle dilbilgisi açısından yanlışdır. İngilizce ya 'Hello %s, you owe me money.'
da 'Hello %s, you own my money.'
niyetlendiğiniz anlama bağlı olarak kullanın .)
Senin kodun:
$html = '<div><p>Top: ' . $t_margin . '</p>' . <p>Bottom: ' . $b_margin . '</p></div>';
HTML'yi çevirme. Herhangi bir dilde aynıdır.
En iyi yol:
$html = sprintf( '<div><p>%s</p><p>%s</p></div>', __( 'Top: ', 'text_domain' ) . $t_margin, __( 'Bottom: ', 'text_domain' ) . $b_margin );
Veya birden fazla satıra bölün:
$html = sprintf(
'<div><p>%s</p><p>%s</p></div>',
__( 'Top: ', 'text_domain' ) . $t_margin,
__( 'Bottom: ', 'text_domain' ) . $b_margin
);
Hangi Üst ve Alt ne olduğu belli değilse _x()
, bu terimlerin içeriğini açıklamak için kullanabilirsiniz .
Diğer çeviri örneklerini burada bulabilirsiniz: Uluslararasılaşma: Muhtemelen yanlış yapıyorsun