Có một đối số thứ hai trong __()
hàm. Nó nên được đặt thành tên miền bạn đang sử dụng cho plugin hoặc chủ đề của bạn. Trong các ví dụ dưới đây tôi sử dụng 'text_domain'
. Chuỗi tên miền của bạn phải là duy nhất. Nó không nên phù hợp với bất kỳ chuỗi tên miền khác. Không sử dụng đối số miền văn bản mặc định cho 'default'
tên miền WordPress. Xem các liên kết để biết thêm chi tiết.
Luôn sử dụng chuỗi ( 'text_domain'
). Không bao giờ sử dụng một biến, hàm hoặc hằng với chuỗi trong đó. Hầu hết (tất cả?) Các chương trình dịch thuật sẽ không thấy nó nếu không có chuỗi ở đó.
Ma cua ban:
echo __( 'Hello ' . $first . ' you own me money.' );
Không bao gồm các biến trong chuỗi.
Một cách tốt hơn:
echo sprintf( __( 'Hello %s you own me money.', 'text_domain' ), $first );
Hoặc chỉ:
printf( __( 'Hello %s you own me money.', 'text_domain' ), $first );
Trình %s
giữ chỗ nói với người dịch rằng một chuỗi đang đi vào đó. Sử dụng %d
cho số. Ngoài ra còn có giữ chỗ khác .
(Câu này là tiếng Anh sai ngữ pháp. Sử dụng một trong hai 'Hello %s, you owe me money.'
hoặc 'Hello %s, you own my money.'
tùy thuộc vào ý nghĩa bạn đang có ý định.)
Ma cua ban:
$html = '<div><p>Top: ' . $t_margin . '</p>' . <p>Bottom: ' . $b_margin . '</p></div>';
Đừng dịch HTML. Nó là như nhau trong bất kỳ ngôn ngữ.
Một cách tốt hơn:
$html = sprintf( '<div><p>%s</p><p>%s</p></div>', __( 'Top: ', 'text_domain' ) . $t_margin, __( 'Bottom: ', 'text_domain' ) . $b_margin );
Hoặc chia nó thành nhiều dòng:
$html = sprintf(
'<div><p>%s</p><p>%s</p></div>',
__( 'Top: ', 'text_domain' ) . $t_margin,
__( 'Bottom: ', 'text_domain' ) . $b_margin
);
Nếu không rõ Top và bottom là gì thì bạn có thể sử dụng _x()
để giải thích bối cảnh của các điều khoản này.
Bạn có thể tìm thấy các trường hợp dịch thuật khác tại đây: Quốc tế hóa: Có thể bạn đang làm sai