do_action( 'wpml_register_single_string', string $context, string $name, string $value )
- ประเภท
- action
- หมวดหมู่
- การแทรกเนื้อหา
- เวอร์ชันของ WPML
- 3.2
คำอธิบาย
ลงทะเบียนสตริงข้อความแต่ละรายการสำหรับการแปล (ซึ่งต่างจากสตริงที่เป็นส่วนหนึ่งของแพ็คเกจ) การดำเนินการนี้มักจะใช้สำหรับข้อความที่ผู้ใช้ป้อน หรือที่เรียกว่า “สตริงข้อความแบบไดนามิก”
สำหรับการดึงข้อมูลการแปลสตริง โปรดดู: wpml_translate_single_string
สำหรับการลงทะเบียนสตริงข้อความที่เป็นส่วนหนึ่งของแพ็คเกจ โปรดดู: wpml_register_string
หมายเหตุ: ฮุกนี้จำเป็นต้องมีโมดูล WPML การแปลสตริง
อาร์กิวเมนต์
- $context
- (string) (จำเป็น) ค่านี้จะให้บริบทแก่สตริงที่คุณกำลังจะลงทะเบียน ซึ่งมักจะเป็นชื่อของปลั๊กอินหรือธีมในรูปแบบที่มนุษย์อ่านได้
- $name
- (string) (จำเป็น) ชื่อของสตริงซึ่งช่วยให้นักแปลเข้าใจว่ากำลังแปลอะไรอยู่
- $value
- (string) (จำเป็น) สตริงที่ต้องการการแปล
- $allow_empty_value
- (bool: ค่าเริ่มต้นคือ false) (ไม่บังคับ) อนุญาตให้ใช้ค่าว่างหรือไม่
- $source_lang_code
- (string) (ไม่บังคับ) รหัสภาษาสำหรับสตริงที่ลงทะเบียน
ตัวอย่างการใช้งาน
ลองจินตนาการว่าคุณได้สร้างวิดเจ็ตแบบกำหนดเองที่มีฟิลด์ป้อนชื่อและตัวเลือกอื่น ๆ คุณสามารถลงทะเบียนชื่อวิดเจ็ตสำหรับการแปลโดยใช้ apply_filters แต่คุณยังต้องการลงทะเบียนข้อความที่ป้อนซึ่งคุณสามารถบันทึกในฟิลด์ตัวเลือกอื่น ๆ ของวิดเจ็ตได้อีกด้วย
การลงทะเบียนข้อความที่ป้อนสำหรับการแปลจะทำได้ดีที่สุดเมื่อมีการบันทึกหรืออัปเดตตัวเลือกวิดเจ็ต เช่น ภายในเมธอด ‘update’ ของวิดเจ็ต
ด้านล่างนี้คือตัวอย่างลักษณะของโค้ด วิดเจ็ตแบบกำหนดเองในตัวอย่างของเรามีชื่อ ฟิลด์ป้อนข้อมูลบรรทัดเดียว และพื้นที่ข้อความ
ตัวอย่าง
function update($new_instance, $old_instance){
$instance = $old_instance;
$instance['title'] = strip_tags($new_instance['title']);
$instance['custom_input'] = strip_tags($new_instance['custom_input']);
$instance['custom_textarea'] = $new_instance['custom_textarea'];
//WPML
/**
* register strings for translation
*/
do_action( 'wpml_register_single_string', 'Widgets', 'Custom Widget - input field', $instance['custom_input'] );
do_action( 'wpml_register_single_string', 'Widgets', 'Custom Widget - textarea field', $instance['custom_textarea'] );
//WPML
return $instance;
}
โค้ดด้านบนจะบอก WPML ว่าข้อความที่ผู้ใช้ป้อนสำหรับฟิลด์ป้อนข้อมูลและพื้นที่ข้อความต้องการการแปล ข้อความจะถูกลงทะเบียนภายใต้บริบทสตริง Widgets ด้วยชื่อ Custom Widget – input field และ Custom Widget – textarea field ตามลำดับ
ฮุกที่เกี่ยวข้อง
wpml_set_element_language_details, wpml_make_post_duplicates, wpml_admin_make_post_duplicates, wpml_copy_post_to_language, wpml_delete_package, wpml_import_get_trid_from_imported_translations, wpml_register_string, wpml_show_package_language_ui, wpml_delete_package_action