เรียนรู้วิธีลงทะเบียนเนื้อหาของปลั๊กอินสร้างหน้าเว็บแบบกำหนดเองสำหรับการแปลโดยใช้ไฟล์ wpml-config.xml ลงทะเบียนสตริง สื่อ วิดเจ็ตของปลั๊กอินสร้างหน้าเว็บ ID ของ shortcode และอื่น ๆ
คู่มือนี้จัดทำขึ้นสำหรับนักพัฒนาที่สร้างธีมและปลั๊กอิน หรือเพิ่มโค้ดของปลั๊กอินสร้างหน้าเว็บแบบกำหนดเองลงในเว็บไซต์ของตน
หากคุณใช้ปลั๊กอินสร้างหน้าเว็บของบุคคลที่สามและไม่สามารถแปลวิดเจ็ตแบบกำหนดเองบนเว็บไซต์ของคุณได้ โปรดติดต่อฝ่ายสนับสนุนของ WPML
ต้องการสร้างไฟล์ wpml-config.xml ใช่หรือไม่ ไปที่คู่มือทีละขั้นตอนของเราสำหรับการสร้างไฟล์การกำหนดค่าโดยอัตโนมัติโดยใช้ปลั๊กอิน Multilingual Tools
การแปลสตริง
ลองพิจารณาตัวอย่างที่คุณมีตัวคั่นข้อความที่เพิ่มลงในหน้าเว็บโดยใช้ Visual Composer ตัวคั่นนั้นมีชื่อ และ shortcode ของตัวคั่นจะมีลักษณะดังนี้:
[vc_text_separator title="Separator Title"]
ในการแปลชื่อของตัวคั่นข้อความนี้ คุณต้องเพิ่มโค้ดสองสามบรรทัดลงในไฟล์ wpml-config.xml ของคุณ วิธีนี้จะทำให้ WPML "รู้" ว่าชื่อของตัวคั่นนั้นจำเป็นต้องได้รับการแปล
โค้ดต่อไปนี้คือตัวอย่างของสิ่งที่คุณต้องเพิ่มลงในไฟล์ wpml-config.xml ในกรณีนี้
ตัวอย่างการเพิ่ม shortcode ของปลั๊กอินสร้างหน้าเว็บลงในไฟล์ wpml-config.xml
<wpml-config>
<shortcodes>
<shortcode>
<tag>vc_text_separator</tag>
<attributes>
<attribute>title</attribute>
</attributes>
</shortcode>
</shortcodes>
</wpml-config>เรามาดูโครงสร้างของตัวอย่างด้านบนกัน:
- เริ่มต้นด้วยแท็ก shortcodes ควรใส่ shortcode ใด ๆ ในเว็บไซต์ของคุณที่ต้องการแปลไว้ภายใต้แท็กนี้
- ใช้แท็ก shortcode เพื่อครอบแท็กทั้งหมดที่เป็นของ shortcode เดียว
- ใช้แท็กที่เรียกว่า tag เพื่อกำหนดชื่อของ shortcode ในกรณีนี้คือ vc_text_separator หากต้องการ คุณสามารถเพิ่มป้ายกำกับแบบกำหนดเองที่เป็นตัวเลือกให้กับแท็กได้ ป้ายกำกับเหล่านี้จะแสดงถัดจากข้อความทั้งในตัวแก้ไขการแปลขั้นสูงและตัวแก้ไขการแปลแบบคลาสสิก ไฟล์ XLIFF ที่ส่งออกจะรวมป้ายกำกับเหล่านี้ไว้ด้วย ดูตัวอย่างด้านล่างสำหรับวิธีเพิ่มป้ายกำกับให้กับแท็กและแอตทริบิวต์
- shortcode สามารถมีได้ตั้งแต่หนึ่งแอตทริบิวต์ขึ้นไป ดังนั้นคุณต้องครอบแอตทริบิวต์เหล่านั้นด้วยแท็ก attributes (พหูพจน์) และใช้แท็ก attribute (เอกพจน์) เพื่อกำหนดชื่อของแต่ละแอตทริบิวต์
ปลั๊กอินสร้างหน้าเว็บ (ในบางครั้ง) จะรวมองค์ประกอบการออกแบบที่มีแอตทริบิวต์ลิงก์ไว้ด้วย
คุณสามารถทำให้ลิงก์ภายในชี้ไปยังเวอร์ชันที่แปลแล้วของโพสต์นั้นได้โดยอัตโนมัติ โดยใช้ตัวเลือกลิงก์: type="link"
คุณสามารถใช้แอตทริบิวต์ encoding กับตัวเลือกนี้ได้ ซึ่งจะจัดการกับการเข้ารหัสพิเศษที่ปลั๊กอินสร้างหน้าเว็บต่าง ๆ ใช้ โดยปกติแล้ว แอตทริบิวต์การเข้ารหัสจะเฉพาะเจาะจงกับปลั๊กอินสร้างหน้าเว็บที่คุณใช้ โดยยอมรับค่าต่อไปนี้:
- base64 – shortcode HTML ดิบของ Visual Composer โดย shortcode จะจัดเก็บ HTML เป็นสตริง base64
- vc_link – การจัดรูปแบบลิงก์พิเศษสำหรับ Visual Composer
- vc_values – การเข้ารหัสพิเศษของ Visual Composer สำหรับค่าในวิดเจ็ต progress-bar, pie-chart และ line-chart
- av_link – การจัดรูปแบบลิงก์พิเศษสำหรับ Enfold
- allow_html_tags – โดยปกติแล้วแท็ก HTML จะถูกตัดออกจากแอตทริบิวต์ของ shortcode ให้ตั้งค่าการเข้ารหัสเป็น allow_html_tags หากแอตทริบิวต์ของ shortcode ควรอนุญาตให้ใช้แท็ก HTML โปรดใช้ด้วยความระมัดระวัง เนื่องจากการอนุญาตให้ใช้แท็ก HTML ในบางสถานการณ์อาจทำให้การจัดรูปแบบยุ่งเหยิงและอาจเป็นปัญหาด้านความปลอดภัยได้
ตัวอย่างการเพิ่มแอตทริบิวต์ลิงก์ของ shortcode: type="link"
<wpml-config>
<shortcodes>
<shortcode>
<tag>av_button</tag>
<attributes>
<attribute>label</attribute>
<attribute type="link" encoding="av_link">link</attribute>
</attributes>
</shortcode>
</shortcodes>
</wpml-config>หากคุณกำลังคิดที่จะใช้ shortcode แบบ urlencoded อย่าลืมอ่านหน้าเกี่ยวกับการแปล shortcode แบบ urlencoded
ตัวอย่างการเพิ่มป้ายกำกับแท็กและแอตทริบิวต์
<wpml-config>
<shortcodes>
<shortcode>
<tag label="My shortcode label">my_shortcode</tag>
<attributes>
<attribute label="Shortcode title">title</attribute>
</attributes>
</shortcode>
</shortcodes>
</wpml-config>การเพิ่มป้ายกำกับให้กับแท็กและแอตทริบิวต์ช่วยให้คุณสามารถแสดงป้ายกำกับแบบกำหนดเองใน ตัวแก้ไขการแปลขั้นสูง หรือ ตัวแก้ไขการแปลแบบคลาสสิก ได้ สิ่งนี้สามารถช่วยให้นักแปลเข้าใจบริบทของสตริงได้ดียิ่งขึ้น
จัดกลุ่มฟิลด์เพื่อการจัดระเบียบที่ดีขึ้น
เพื่อปรับปรุงความชัดเจนและการจัดระเบียบการกำหนดค่า XML ของคุณ คุณสามารถนำหน้าป้ายกำกับฟิลด์ด้วยชื่อกลุ่มได้ ลองพิจารณาตัวอย่างของปุ่ม CTA นี้:
<wpml-config>
<shortcodes>
<shortcode>
<tag label="Call To Action: Content">et_pb_cta</tag>
<attributes>
<attribute label="Call To Action: Title">title</attribute>
<attribute label="Call To Action: Button Text">button_text</attribute>
<attribute label="Call To Action: Button URL" type="link">button_url</attribute>
</attributes>
</shortcode>
</shortcodes>
</wpml-config>
ในที่นี้ แต่ละแอตทริบิวต์ของ shortcode et_pb_cta จะมีป้ายกำกับ Call To Action: WPML จะไม่ส่งผ่านป้ายกำกับเหล่านั้นไปยัง ตัวแก้ไขการแปลขั้นสูง: นักแปลจะเห็นแต่ละแอตทริบิวต์เป็นฟิลด์ของตัวเองซึ่งจัดกลุ่มไว้ภายใต้ shortcode และแยกความแตกต่างของฟิลด์ตามข้อความที่แต่ละฟิลด์มี แอตทริบิวต์ label ยังคงเป็นส่วนหนึ่งของรูปแบบการกำหนดค่าและยังคงคุ้มค่าที่จะตั้งค่า:

การแปลสื่อ
คุณสามารถใช้ การแปลสื่อ ของ WPML เพื่อใช้รูปภาพที่แตกต่างกันสำหรับภาษาต่าง ๆ ในเนื้อหาของปลั๊กอินสร้างหน้าเว็บได้ ซึ่งทำได้โดยการแปลง ID รูปภาพและ URL รูปภาพ คุณต้อง "บอก" ปลั๊กอินสร้างหน้าเว็บที่ใช้ shortcode ว่าจะทำการแปลงนี้อย่างไร โค้ดต่อไปนี้คือตัวอย่างของสิ่งที่คุณต้องเพิ่มลงในไฟล์ wpml-config.xml ในกรณีนี้
ตัวอย่างการเพิ่ม shortcode ของปลั๊กอินสร้างหน้าเว็บลงในไฟล์ wpml-config.xml สำหรับการแปลรูปภาพ
<wpml-config>
<shortcodes>
<shortcode>
<!-- Convert media IDs in `gallery_ids` attribute, and ignore the shortcode content -->
<tag ignore-content="1">et_pb_gallery</tag>
<attributes>
<attribute type="media-ids">gallery_ids</attribute>
<attributes>
</shortcode>
<shortcode>
<!-- Convert the media URL in the content, translate some string attributes for `title` and `alt`, convert media URL in `src` attribute -->
<tag type="media-url">et_pb_image</tag>
<attributes>
<attribute>title_text</attribute>
<attribute>alt</attribute>
<attribute type="media-url">src</attribute>
</attributes>
</shortcode>
</shortcodes>
</wpml-config>คุณสามารถใช้ค่าต่อไปนี้ได้:
- ignore-content – คุณสามารถใช้ได้ภายในองค์ประกอบ tag ค่านี้เป็นทางเลือกและสามารถเป็น 0 หรือ 1 ก็ได้ คุณสามารถใช้แอตทริบิวต์นี้เพื่อให้มีความเข้ากันได้แบบย้อนหลังสำหรับ shortcode สื่อใหม่ หากตั้งค่าเป็น 1 เนื้อหาของ shortcode จะไม่ได้รับการประมวลผล
- type – คุณสามารถใช้ได้ภายในองค์ประกอบ tag คุณยังสามารถใช้เนื้อหาของ shortcode ที่มี URL ของสื่อเป็นค่าทางเลือกภายใน media-url ได้ด้วย
- type – คุณยังสามารถใช้ได้ภายในองค์ประกอบ attribute ในกรณีนี้ สามารถมีค่าทางเลือกใดค่าหนึ่งต่อไปนี้:
- media-ids – รายการ ID สื่อที่คั่นด้วยเครื่องหมายจุลภาค
- media-url – URL ของสื่อ
- link – ชี้ไปยังหน้าอื่นบนเว็บไซต์และ WPML จะแปลงเป็น URL ของหน้าที่แปลแล้วโดยอัตโนมัติ
การแปลสื่อในแอตทริบิวต์ของบล็อก
คุณยังสามารถใช้ประเภทแอตทริบิวต์ media-url และ media-ids กับบล็อก Gutenberg เพื่อแปลสื่อ เช่น ภาพพื้นหลังได้ด้วย วิธีนี้ทำงานคล้ายกับ shortcode แต่ใช้องค์ประกอบ <gutenberg-block> ที่มีองค์ประกอบ <key> ซ้อนกันอยู่เพื่อกำหนด type="media-url" และ type="media-ids"
การใช้องค์ประกอบนี้ช่วยให้ส่วนเสริม การแปลสื่อ ของ WPML ของเราสามารถแปลภาพพื้นหลังได้
วิธีนี้ใช้ได้กับทั้งบล็อก Gutenberg และ Divi 5 โดย Divi เวอร์ชันนี้ใช้บล็อกในการจัดเก็บเนื้อหา ดังนั้นองค์ประกอบ <gutenberg-block> จึงสามารถทำงานเพื่อเพิ่มการแปลสื่อได้
นี่คือตัวอย่างการเพิ่มการแปลสื่อสำหรับแอตทริบิวต์ของบล็อก Gutenberg:
<wpml-config>
<gutenberg-blocks>
<gutenberg-block type="divi/section" translate="1">
<key name="module">
<key name="decoration">
<key name="background">
<key name="desktop">
<key name="value">
<key name="image">
<key name="url" type="media-url" />
</key>
</key>
</key>
</key>
</key>
</key>
</gutenberg-block>
</gutenberg-blocks>
</wpml-config>
การแปลวิดเจ็ตของปลั๊กอินสร้างหน้าเว็บ
WPML ช่วยให้คุณสามารถลงทะเบียนวิดเจ็ตของปลั๊กอินสร้างหน้าเว็บได้ภายในไฟล์การกำหนดค่าภาษาของคุณ สำหรับข้อมูลโดยละเอียด โปรดดูหน้าเอกสารประกอบของเราเกี่ยวกับวิธีลงทะเบียนวิดเจ็ตของปลั๊กอินสร้างหน้าเว็บสำหรับการแปล
การแปลง ID ของ shortcode โดยอัตโนมัติ
ตั้งแต่ WPML 4.5.9 เป็นต้นไป คุณสามารถประกาศ ID ของโพสต์หรือคำในอนุกรมวิธานที่อยู่ในแอตทริบิวต์ของ shortcode ได้ จากนั้น ID เหล่านี้จะสามารถแปลงได้โดยอัตโนมัติที่ส่วนหน้าของเว็บไซต์คุณ
ตั้งแต่ WPML 4.8 เป็นต้นไป ตรรกะเดียวกันนี้จะขยายไปยัง ID ของอ็อบเจ็กต์ที่จัดเก็บไว้ในข้อความผู้ดูแลระบบ ตลอดจน ID ในฟิลด์กำหนดเองของโพสต์และฟิลด์คำในอนุกรมวิธานที่กำหนดเอง
ตัวอย่างเช่น ลองพิจารณา shortcode ต่อไปนี้:
[foo_product_list product_ids="12,34,56"]
คุณสามารถประกาศว่าแอตทริบิวต์ product_ids กำลังเก็บ ID ของโพสต์ด้วยการกำหนดค่าต่อไปนี้:
การประกาศว่าแอตทริบิวต์ product_ids กำลังเก็บ ID ของโพสต์
<shortcode>
<tag ignore-content="1">foo_product_list</tag>
<attributes>
<attribute type="post-ids" sub-type="product">product_ids</attribute>
</attributes>
</shortcode>ที่ส่วนหน้า shortcode จะแปลงเป็นรูปแบบนี้โดยอัตโนมัติ:
[foo_product_list product_ids="13,35,57"]
คุณสามารถใช้แอตทริบิวต์การกำหนดค่าต่อไปนี้ได้:
- type – เป็น post-ids หรือ taxonomy-ids
- sub-type (ไม่บังคับ) – เอนทิตีเฉพาะของ type หากทราบอยู่แล้ว ตัวอย่างเช่น product สำหรับประเภทโพสต์แบบกำหนดเอง Product ที่มาจาก WooCommerce หากไม่ได้กำหนดไว้ ระบบจะคาดเดาเอนทิตีเฉพาะนั้น
การแปลง ID มีความอเนกประสงค์และพยายามปรับให้เข้ากับรูปแบบ ID ที่เป็นไปได้ส่วนใหญ่ (ID เดี่ยว, รายการ ID, อาร์เรย์แบบอนุกรม, อาร์เรย์ที่เข้ารหัส JSON)
ชื่อแอตทริบิวต์ที่มีไวลด์การ์ด
shortcode บางตัวจัดเก็บ ID ไว้ในหลายแอตทริบิวต์ที่มีชื่อคล้ายกัน ตัวอย่างเช่น include_category, include_portfolio_category และ include_product_cat บรรทัด <attribute> เพียงบรรทัดเดียวสามารถครอบคลุมทั้งหมดได้ โดยใส่ * ในชื่อแอตทริบิวต์:
การประกาศให้แอตทริบิวต์ include_ และ exclude_ ทั้งหมดเป็นตัวเก็บ ID อนุกรมวิธาน
<shortcode>
<tag>fusion_post_cards</tag>
<attributes>
<attribute type="taxonomy-ids" exclude="include_product_skus">include_*</attribute>
<attribute type="taxonomy-ids" exclude="exclude_product_skus">exclude_*</attribute>
</attributes>
</shortcode>- * ตรงกับตัวอักษร ตัวเลข _ หรือ - ตั้งแต่หนึ่งตัวขึ้นไป
- * ใช้งานได้กับ type="post-ids" และ type="taxonomy-ids" เท่านั้น
- WPML จะจับคู่ส่วนที่เหลือของชื่ออย่างตรงกันทั้งหมด WPML ไม่ยอมรับนิพจน์ทั่วไปในชื่อแอตทริบิวต์
- exclude (ไม่บังคับ) – รายการชื่อแอตทริบิวต์แบบเต็มที่คั่นด้วยเครื่องหมายจุลภาค WPML จะไม่แปลง ID ในแอตทริบิวต์เหล่านี้ ใช้สำหรับแอตทริบิวต์ที่ตรงกับชื่อแต่ไม่ได้เก็บ ID ไว้ เช่น include_product_skus
แหล่งข้อมูลเพิ่มเติม
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับไฟล์ wpml-config.xml โปรดไปที่คู่มือไฟล์การกำหนดค่าภาษา
สำหรับการปรับแต่งองค์ประกอบอื่น ๆ โดยใช้ไฟล์ wpml-config.xml โปรดไปที่คู่มือเพิ่มเติมของเรา:
- การลงทะเบียนวิดเจ็ตของปลั๊กอินสร้างหน้าเว็บแบบกำหนดเองสำหรับการแปล
- การแปล shortcode แบบกำหนดเองด้วย WPML
- การตั้งค่าตัวเลือกการแปลสำหรับฟิลด์กำหนดเองโดยใช้ไฟล์การกำหนดค่าของ WPML
- การลงทะเบียนคำ ประเภท & อนุกรมวิธานแบบกำหนดเองให้แปลได้
- การทำให้บล็อก Gutenberg แบบกำหนดเองสามารถแปลได้
- การแปลข้อความที่ธีมและปลั๊กอินบันทึกไว้ใน wp_options
- การปรับแต่งตัวสลับภาษา WPML โดยใช้ไฟล์การกำหนดค่าของ WPML