มีข้อโต้แย้งที่สองใน__()
ฟังก์ชั่น ควรตั้งค่าเป็นโดเมนที่คุณใช้สำหรับปลั๊กอินหรือธีมของคุณ 'text_domain'
ในตัวอย่างด้านล่างที่ผมใช้ สตริงโดเมนของคุณควรไม่ซ้ำกัน ไม่ควรตรงกับสตริงโดเมนอื่น การไม่ใช้อาร์กิวเมนต์โดเมนข้อความจะใช้ค่าเริ่มต้น'default'
เป็นชื่อโดเมน WordPress ดูลิงค์สำหรับรายละเอียดเพิ่มเติม
ใช้สตริง ( 'text_domain'
) เสมอ อย่าใช้ตัวแปรฟังก์ชั่นหรือค่าคงที่กับสตริง โปรแกรมการแปล (ทั้งหมด?) ส่วนใหญ่จะไม่เห็นมันหากไม่มีสตริง
รหัสของคุณ:
echo __( 'Hello ' . $first . ' you own me money.' );
ห้ามรวมตัวแปรในสตริง
วิธีที่ดีกว่า:
echo sprintf( __( 'Hello %s you own me money.', 'text_domain' ), $first );
หรือเพียงแค่:
printf( __( 'Hello %s you own me money.', 'text_domain' ), $first );
%s
ยึดบอกแปลว่ามนุษย์สตริงเป็นไปในนั้น ใช้%d
สำหรับตัวเลข นอกจากนี้ยังมีตัวยึดตำแหน่งอื่น ๆ
(ประโยคนี้เป็นภาษาอังกฤษที่ไม่ถูกต้องตามหลักไวยากรณ์ใช้อย่างใดอย่างหนึ่ง'Hello %s, you owe me money.'
หรือ'Hello %s, you own my money.'
ขึ้นอยู่กับความหมายที่คุณตั้งใจ)
รหัสของคุณ:
$html = '<div><p>Top: ' . $t_margin . '</p>' . <p>Bottom: ' . $b_margin . '</p></div>';
อย่าแปล HTML มันเหมือนกันในทุกภาษา
วิธีที่ดีกว่า:
$html = sprintf( '<div><p>%s</p><p>%s</p></div>', __( 'Top: ', 'text_domain' ) . $t_margin, __( 'Bottom: ', 'text_domain' ) . $b_margin );
หรือแบ่งออกเป็นหลายบรรทัด:
$html = sprintf(
'<div><p>%s</p><p>%s</p></div>',
__( 'Top: ', 'text_domain' ) . $t_margin,
__( 'Bottom: ', 'text_domain' ) . $b_margin
);
หากไม่ชัดเจนว่าTopและBottomคืออะไรคุณอาจใช้_x()
เพื่ออธิบายบริบทของข้อกำหนดเหล่านี้
คุณสามารถค้นหากรณีการแปลอื่น ๆ ได้ที่นี่: ความเป็นสากล: คุณอาจทำผิด