WPML

เรียนรู้วิธีลงทะเบียนเนื้อหาของปลั๊กอินสร้างหน้าเว็บแบบกำหนดเองสำหรับการแปลโดยใช้ไฟล์ 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 ยังคงเป็นส่วนหนึ่งของรูปแบบการกำหนดค่าและยังคงคุ้มค่าที่จะตั้งค่า:

การแปลปุ่ม CTA ในตัวแก้ไขการแปลขั้นสูง
การแปลปุ่ม CTA ในตัวแก้ไขการแปลขั้นสูง

การแปลสื่อ

คุณสามารถใช้ การแปลสื่อ ของ 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 โปรดไปที่คู่มือเพิ่มเติมของเรา:

เขียนโดยAmir