Changelog
ChangelogGato AI Translations for Polylang

Gato AI Translations for Polylang

ต่อไปนี้คือการเปลี่ยนแปลงทั้งหมดในแต่ละเวอร์ชันของปลั๊กอิน Gato AI Translations for Polylang

18.0.0

วันที่วางจำหน่าย: 20/05/2026

การเปลี่ยนแปลงที่ทำให้ระบบเดิมใช้งานไม่ได้

  • วิธีการแปลบล็อก Gutenberg เพิ่มเติม วิดเจ็ต Elementor และองค์ประกอบ Bricks มีการเปลี่ยนแปลง

เพิ่มใหม่

  • รองรับ ChatGPT 5.4 mini (#2319)
  • รองรับ Claude Opus 4.7 (#2320)
  • ใช้ API key สำหรับ ChatGPT และ Claude จาก AI Connectors ของ WordPress 7.0 หากไม่ได้ตั้งค่าในการตั้งค่าปลั๊กอิน (#2324)
  • รองรับ Gemini เป็นผู้ให้บริการแปลภาษา พร้อมการสำรอง API key จาก AI Connectors ของ WordPress 7.0 (#2325)
  • แปลบล็อกที่เป็น PHP เท่านั้น (#2329)
  • แปลบล็อก Advanced Custom Fields (ACF) (#2339)
  • เพิ่มลิงก์ด่วน "Gato Translate" ในหน้ารายการ CPT และมีเดีย (#2359)
  • เพิ่มลิงก์ด่วน "Gato Translate" ในหน้ารายการแท็ก หมวดหมู่ และผู้ใช้ (#2384)
  • เพิ่มปุ่ม "Gato Translate" เพื่อแปลเมนูด้วยตนเอง (#2385)
  • แปลการอ้างอิงเมนูในบล็อก Navigation ของ GenerateBlock (generateblocks-pro/classic-menu) (#2371)
  • ลงทะเบียน WordPress AI Abilities (ผ่าน Abilities API) เพื่อแปลโพสต์แบบกำหนดเอง เทอมของแท็กซอนอมี มีเดีย เมนู และผู้ใช้ (#2386)
  • รองรับบล็อก Kadence (#2389)
  • รองรับบล็อก Greenshift (#2389)
  • รองรับบล็อกทั้งหมดที่ใช้ไฟล์คอนฟิก WMPL (wpml-config.xml) (#2389)
  • การตั้งค่า "Translation Timeouts" (#2392)

การปรับปรุง

  • กำหนดให้ ChatGPT 5.4 mini เป็นโมเดลเริ่มต้นใหม่ (#2319)
  • ทดสอบจนถึง WordPress 7.0 (#2323)
  • ตั้งค่าผู้ให้บริการแปลเริ่มต้นเป็นบริการ AI แรกที่มี API key ผ่าน AI Connectors ของ WP 7.0 (#2326)
  • แปลแอตทริบิวต์บล็อกแบบกำหนดเองผ่าน PHP hooks ด้วย regex (แทนที่ GraphQL) (#2332)
  • แปลวิดเจ็ต Elementor แบบกำหนดเองผ่านการตั้งค่า PHP hooks (แทนที่ GraphQL) (#2337)
  • แปลองค์ประกอบ Bricks แบบกำหนดเองผ่านการตั้งค่า PHP hooks (แทนที่ GraphQL) (#2338)
  • อนุญาตให้แปลโพสต์แบบกำหนดเองที่ไม่มีผู้เขียน (#4cf7c879)
  • ปรับปรุงประสิทธิภาพปลั๊กอิน: รันการแปลได้เร็วขึ้นมาก (#2340)
  • ปรับปรุงประสิทธิภาพปลั๊กอิน: ใช้หน่วยความจำน้อยลง (#2341)
  • ปรับปรุงประสิทธิภาพปลั๊กอิน: แคช queries ที่คอมไพล์แล้ว (#2347)
  • แทนที่สิ่งที่เลิกใช้ใน PHP 8.5 (#2350)
  • แปลวิดเจ็ต icon-box ของ Elementor (#05415577)
  • ระงับคำเตือน "Block type is not server-side registered" (#2358)
  • เพิ่มการรองรับโมเดล GPT-5.5 (gpt-5.5) ของ OpenAI (#2360)
  • เพิ่มการรองรับโมเดล DeepSeek v4 (deepseek-v4-pro) และ DeepSeek v4 Flash (deepseek-v4-flash) (#2360)
  • เพิ่มการรองรับโมเดล Claude Sonnet 4.6 (Claude claude-sonnet-4-6) และ Haiku 4.5 (claude-haiku-4-5) (#2360)
  • แปล entity reference ID ในหน้า Elementor และ Bricks (#2362)
  • แปล entity reference ID ในบล็อก Gutenberg (#2366)
  • หลีกเลี่ยงความขัดแย้งกับปลั๊กอิน BBQ Firewall (#2380)
  • อัปเดตรายการภาษาที่รองรับสำหรับ DeepL (#2381)
  • อัปเดตรายการภาษาที่รองรับสำหรับ Google Translate (#2382)
  • รวมประเภทโพสต์และชื่อโพสต์แบบกำหนดเองที่อ้างอิง แท็กซอนอมีและชื่อเทอมที่อ้างอิง หรือชื่อเมนูที่อ้างอิง ในคำเตือนที่แสดงเมื่อไม่พบรายการที่แปลแล้วสำหรับความสัมพันธ์ฟิลด์แบบกำหนดเอง (#2388)

แก้ไข

  • จัดการการตอบสนอง null จาก license API (เช่น เมื่อถูกปฏิเสธการเข้าถึงผ่านเครือข่าย) (#2322)
  • ป้องกันการลบไฟล์มีเดียที่ใช้ร่วมกัน (original_image, เวอร์ชันที่แก้ไขและภาพขนาดย่อ) เมื่อลบการแปลหนึ่งรายการในขณะที่การแปลที่เกี่ยวข้องยังอ้างอิงถึงไฟล์นั้น (บั๊กจาก Polylang: github.com/polylang/polylang/issues/1883) (#2364)
  • การลบ meta ที่แปลไม่สำเร็จสำหรับภาษาที่ไม่ใช่ค่าเริ่มต้น (#2387)
  • ไม่เพิ่มข้อความเตือนเกี่ยวกับ entity ID ที่หายไปหากได้รับการแปลไปแล้ว เมื่อทำ "Translate content" ใน "Partial Translations" (#2391)
  • แก้ไขบั๊กหลายรายการ (#2392)

17.1.2

วันที่วางจำหน่าย: 07/04/2026

การปรับปรุง

  • เพิ่มการรองรับ Elementor v4 (#2318)

แก้ไข

  • ไม่ดำเนินการแปลใน plugins.php เผื่อว่า PLL() ของ Polylang หายไป (#2317)

17.1.1

วันที่วางจำหน่าย: 24/03/2026

แก้ไข

  • ความขัดแย้งกับปลั๊กอิน "All In One Security" (#2315)

17.1.0

วันที่วางจำหน่าย: 23/03/2026

เพิ่มใหม่

  • รองรับการใช้โมเดล LLM แบบ self-hosted (รันบนเซิร์ฟเวอร์ของตัวเอง) เป็นผู้ให้บริการแปล (#2309)
  • รองรับ ChatGPT 5.4 (#2310)

การปรับปรุง

  • ปิดการซิงค์ meta ของ Polylang (#2307)
  • ลดความต้องการหน่วยความจำขั้นต่ำจาก 1 GB เป็น 512 MB (#2312)

แก้ไข

  • แก้ไข Bricks templates ที่ไม่ซิงค์ประเภทเทมเพลต (#2307)
  • จัดเก็บ meta ของ Bricks templates ภายใต้ meta key ที่ถูกต้อง (#2308)
  • ความขัดแย้งกับปลั๊กอิน "All In One Security" (#6c76aa6)

17.0.0

การปรับปรุง

  • ตรวจสอบความถูกต้องของ license ปลั๊กอินกับร้านค้าใหม่ที่ขับเคลื่อนด้วย FluentCart ของ Gato (#2303)

แก้ไข

  • แก้ไข - แสดงการอัปเดตเวอร์ชันใหม่เมื่อคลิกลิงก์ Show details ในการอัปเดตปลั๊กอิน

16.1.0

เพิ่มใหม่

  • แปลคำอธิบายของผู้ใช้ (#2280)
  • แปลคำอธิบายของผู้ใช้ผ่าน WP-CLI (#2281)
  • รองรับ Claude Opus 4.6 (#2297)

การปรับปรุง

  • อนุญาตให้แสดง log ในลำดับย้อนกลับ (#2279)
  • ส่งพารามิเตอร์ --default-provider ให้ WP-CLI สำหรับเมนู (#2282)
  • ตรวจสอบว่าเซิร์ฟเวอร์ PHP มีหน่วยความจำ 1GB (#2283)
  • เพิ่มลิงก์ไปยัง URL เอกสารที่อธิบายวิธีเพิ่มหน่วยความจำสำหรับปลั๊กอิน (#2284)

แก้ไข

  • ไม่แสดง input สำหรับโพสต์แบบกำหนดเองในฟอร์ม "Gato Translate (Custom)" สำหรับแท็กซอนอมี (#45b09e9f)
  • ดำเนินการแปลเมนูเมื่อการแปลอัตโนมัติสำหรับ CPT ถูกปิดใช้งาน (#271a08c5)

16.0.3

แก้ไข

  • ข้อผิดพลาด "variable 'menuEntityReferenceTranslationLanguageIDs' has not been defined in the operation" (#2278)

16.0.2

แก้ไข

  • การแก้ไข Bricks templates ทำให้เกิดข้อยกเว้น (#2276)

16.0.0

การเปลี่ยนแปลงที่ทำให้ระบบเดิมใช้งานไม่ได้

  • ไม่สามารถปรับแต่ง prompt สำหรับบริการ AI ได้อีกต่อไป (#2271)
  • ย้าย prompt ไปยังแท็บ "AI Translation Options" ในการตั้งค่า (#2271)

เพิ่มใหม่

  • โมเดล ChatGPT 5.2 (#2248)
  • แปลเมนู (#2253)
  • แปลเมนูผ่าน WP-CLI (#2260)
  • แปล entity reference ของเมนูสำหรับวิดเจ็ต "WordPress Menu" ของ Elementor (#2266)
  • แปล entity reference ของเมนูสำหรับองค์ประกอบ "Nav Menu" ของ Bricks (#2267)
  • เพิ่ม CPT "AI Prompt" เพื่อจัดเก็บ prompt แบบกำหนดเอง (#2272)

การปรับปรุง

  • กำหนดโมเดล "GPT-5.2 (Thinking)" เป็นโมเดลเริ่มต้นสำหรับ ChatGPT (#2248)
  • การแปล entity reference สามารถแปลสตริงได้ด้วย (สำหรับ slugs) (#2265)

15.3.0

เพิ่มใหม่

  • การตั้งค่าใน Bricks เพื่อเปิด/ปิดการแทนที่คอมโพเนนต์ (#2218)
  • อนุญาตให้ประมวลผลเฉพาะการแปลที่ล้มเหลว (#2220)
  • ในหน้ารายการ Posts/Media/Tags/Categories: จัดสไตล์ไอคอนแก้ไข Polylang ด้วยพื้นหลังสีเหลืองสำหรับการแปลที่ล้มเหลว (#2221)
  • เพิ่มตัวกรองในหน้ารายการ Posts/Media เพื่อแสดงเฉพาะรายการที่การแปลล้มเหลว (#2222)
  • รองรับรูปแบบเก่าของบล็อก core/list ของ Gutenberg (#2233)
  • รองรับ Claude Opus 4.5 และ Sonnet 4.5 (#2234)
  • เพิ่มพารามิเตอร์ --process-failed ให้คำสั่ง WP-CLI (#2245)

การปรับปรุง

  • แปล slug ได้ดีขึ้น โดยลบ "-" ทั้งหมดออกจาก slug ที่จะแปล (#2217)
  • ซิงค์หมวดหมู่/แท็ก/รูปภาพหน้าปกของโพสต์แบบกำหนดเองเฉพาะสำหรับภาษาเป้าหมาย ไม่ใช่ทุกภาษา (#2223)
  • ลบรายการ meta เฉพาะสำหรับภาษาเป้าหมาย ไม่ใช่ทุกภาษา (#2224)
  • เปิดใช้งานระดับ log DEBUG โดยค่าเริ่มต้น (#2229)
  • แสดงคำเตือน (แทนข้อผิดพลาด) เมื่อ entity ไม่ได้รับการแปล (#2235)
  • ปรับปรุงข้อความแสดงข้อผิดพลาด "lower number of translations" พร้อมวิธีแก้ไข (#2236)
  • ปรับปรุงคำอธิบายสำหรับตัวเลือก "Translate custom posts separately?" (#2240)

แก้ไข

  • ไม่แสดงตัวเลือก "Display query execution response in logs?" ก่อนป้อน license key (#2239)
  • ละเว้นตัวเลือก "Translate custom posts separately?" สำหรับรายการ meta ของมีเดีย (#2241)
  • ไม่เขียนทับเนื้อหา Bricks/Elementor เมื่อ "Translate content" ถูกปิดใช้งาน (#2243)

15.2.1

แก้ไข

  • ปัญหา WordPress 6.9: Queries ไม่ถูกจัดเก็บอย่างถูกต้องใน DB (#2219)

15.2.0

เพิ่มใหม่

  • แปลลิงก์ URL ภายใน (ใน: เนื้อหา Gutenberg/Classic Editor/Bricks/Elementor, meta fields) (#2143)
  • แปลลิงก์ ACF (#2145)
  • รองรับการแปล GenerateBlocks (บล็อก GeneratePress) (#2139)
  • รองรับการแปลบล็อก Yoast SEO (#2163)
  • การผสานรวมกับ ACF: แปล entity reference สำหรับประเภทฟิลด์ "Page Link" (#c573064)
  • หาก slug ถูกระบุในภาษาต้นทาง ให้แปล slug นั้น (เช่น ไม่สร้างจากชื่อที่แปลแล้ว) (#2185)
  • การแปลบางส่วน (ตามงาน และตามส่วนของเนื้อหา) (#2195)
  • โมเดล ChatGPT 5.1 (#2203)
  • รองรับการแปลโพสต์ที่ CPT จัดการโดย Elementor แต่ไม่ได้สร้างด้วย Elementor (#2207)
  • รองรับฟีเจอร์ "reuse slugs" จาก Polylang Pro (#2211)

การปรับปรุง

  • ดำเนินการแปลครั้งเดียวสำหรับแท็ก/หมวดหมู่ที่สร้างทั้งหมด (#2134)
  • ดำเนินการแปลครั้งเดียวสำหรับรายการมีเดียที่อัปโหลดทั้งหมด (#2135)
  • แสดงคำเตือนเมื่อโพสต์แบบกำหนดเองสำหรับการแปลอยู่ในถังขยะ (#2137)
  • เพิ่มพารามิเตอร์ --fail-if-log-notifications ให้คำสั่ง WP-CLI เพื่อพิมพ์ ID เฉพาะเมื่อมีการเพิ่มรายการ log ระหว่างการดำเนินการ (#2138)
  • เพิ่มพารามิเตอร์ --parts ให้คำสั่ง WP-CLI เพื่อเลือกส่วนที่จะแปล (#2184)
  • เพิ่มพารามิเตอร์ --tasks ให้คำสั่ง WP-CLI เพื่อเลือกงานที่จะดำเนินการ (#2195)
  • ตรวจสอบว่าจำนวนการแปลที่ผู้ให้บริการ API คืนมาเท่ากับจำนวนสตริงที่จะแปล (#2161)
  • ลบ " (the)" ที่ท้ายชื่อประเทศ (#2165)
  • ปรับปรุง prompt เพื่อหลีกเลี่ยงการ escape แอตทริบิวต์ HTML (#2166)
  • ปรับปรุง prompt เพื่อแปลข้อความภายใน HTML tags (#0334741)
  • เพิ่มการตั้งค่าเพื่อปิดการพิมพ์รายการ queryExecutionResponse ใน logs (#2174)
  • เพิ่มการตั้งค่าเพื่อเลือกส่วนของโพสต์แบบกำหนดเองที่จะแปล ได้แก่ properties, content และ meta (#2176)
  • เพิ่มการตั้งค่าเพื่อเลือกส่วนของแท็กซอนอมีที่จะแปล ได้แก่ properties และ meta (#2178)
  • จัดเรียงตัวแปรใน logs (#2175)
  • แปลเนื้อหาโพสต์ด้วยแม้จัดการโดย Page Builders (Elementor/Bricks) (#2201)
  • กำหนดโมเดล "GPT-5.1 (Thinking)" เป็นโมเดลเริ่มต้นสำหรับ ChatGPT (#2203)
  • ใช้ 2000 ตัวอักษรเป็นขนาด payload สูงสุดโดยค่าเริ่มต้น (เพื่อทำให้การแปลเร็วขึ้น) (#2214)
  • ทดสอบจนถึง WordPress 6.9 (#2215)

แก้ไข

  • ลบโค้ดจาก GraphQL query สำหรับปลั๊กอินที่ถูกปิดใช้งาน (#2139)
  • การแปลเฉพาะ properties ไม่ทำงาน (#1a3bd58)
  • ใช้ ChatGPT เป็นผู้ให้บริการแปลเริ่มต้นเมื่อยังไม่ได้ตั้งค่า (#2172)
  • แปลการอ้างอิง reusable block เมื่อแปลโพสต์มากกว่า 1 โพสต์ (#2173)
  • แปลบล็อกที่มีช่องว่างที่ไม่ตัดคำ "U+00A0" (ไม่ใช่ช่องว่างปกติ) (#2202)
  • สำหรับ slugs ให้แปล slug ต้นทางของแท็ก/หมวดหมู่แทนชื่อ (#2208)
  • ปรับปรุง regex สำหรับค้นหา/แทนที่สตริงภายในบล็อก Gutenberg เพื่อหลีกเลี่ยงข้อผิดพลาด "Backtrack limit exhausted" (#2213)
  • คำเตือน "Undefined array key"

15.1.0

  • ข้ามเวอร์ชัน (คงเวอร์ชันเดียวกับปลั๊กอิน Gato GraphQL)

15.0.1

  • หลีกเลี่ยงข้อยกเว้นเมื่อจัดลำดับฟิลด์ ACF ใหม่ (#2101)

15.0.0

เพิ่มใหม่

  • ใช้ prompt เดียวกันสำหรับบริการ AI ทั้งหมด (#2068)

แก้ไข

  • ความขัดแย้งกับปลั๊กอิน Nelio A/B Testing (#2066)
  • การตั้งค่าคุณสมบัติบนคลาส BasicService (#2067)

14.0.4

แก้ไข

  • ข้อยกเว้นเมื่อเริ่มต้นปลั๊กอินและมีปลั๊กอินที่ขัดแย้งติดตั้งอยู่ในไซต์ (#2065)

14.0.2

แก้ไข

  • ไม่ทริกเกอร์การแปลเมื่อผู้ใช้ไม่ได้เข้าสู่ระบบ เพื่อหลีกเลี่ยงข้อผิดพลาด "You must be logged in to create or update custom posts" (#2063)
  • ข้อความเตือนเมื่อแปล meta และไม่มีรายการแปลโพสต์แบบกำหนดเองอยู่ (#2064)

14.0.0

การเปลี่ยนแปลงที่ทำให้ระบบเดิมใช้งานไม่ได้

  • อัปเกรดเวอร์ชัน PHP ขั้นต่ำจาก 7.4 เป็น 8.1 (#2057)
  • ต้องระบุ API key ของ OpenRouter อีกครั้ง
  • Hardcode meta key _wp_page_template เพื่อคัดลอก ลบออกจากค่าเริ่มต้นของ Meta Configuration (#1992)
  • เพิ่มการผสานรวมกับปลั๊กอิน SEO, ACF และ Meta Box (ดูด้านล่าง) ดังนั้น meta keys จากปลั๊กอินเหล่านี้ (ที่ไม่ได้อยู่ใน Meta Configuration ก่อนหน้า) จะถูกซิงค์/แปลโดยอัตโนมัติ

เพิ่มใหม่

  • ข้ามการแปลชื่อที่กำหนดไว้ล่วงหน้าสำหรับแท็ก/หมวดหมู่ (#1925)
  • รองรับ glossaries ใน DeepL (#1926)
  • ดำเนินการ bulk action "Gato Translate (Custom)" (#1931)
  • ซิงค์ menuOrder ของโพสต์ (#1948)
  • ซิงค์ parent ของโพสต์ (#1949)
  • แปล arrays ของ arrays ใน meta (เช่น รองรับประเภท group ของ Meta Box) (#1950)
  • แปล arrays ของ arrays ใน meta สำหรับ entity ID (เช่น รองรับประเภท group ของ Meta Box) (#1951)
  • Override prompt ที่ส่งไปยังบริการ AI ผ่าน hooks (#1954)
  • รองรับโมเดลทั้งหมดจาก OpenRouter ผ่าน API (#2003)
  • รองรับโมเดล OpenAI 5 (#1979)
  • รองรับโมเดล OpenAI 5 ผ่าน OpenRouter (เป็นโมเดลที่กำหนดไว้ล่วงหน้า) (#1981)
  • รองรับโมเดล OpenAI 4.1 (#1956)
  • รองรับ Claude Opus 4.1 (#1982)
  • Hooks เพื่อตอบสนองต่อการดำเนินการ query (#1957)
  • Hooks เพื่อ override ตัวแปร GraphQL ก่อนการดำเนินการ query (#1957)
  • การผสานรวมกับ Advanced Custom Fields UI (ผ่าน Field Groups) เพื่อกำหนด meta keys ที่จะซิงค์/แปล (#1971)
  • การผสานรวมกับ Meta Box UI (ผ่าน Custom Fields) เพื่อกำหนด meta keys ที่จะซิงค์/แปล (#1977)
  • การผสานรวมกับปลั๊กอิน SEO เพื่อซิงค์/แปล meta: (#1974)
    • All in One SEO
    • Rank Math
    • SEO Simple Pack
    • SEOPress
    • Slim SEO
    • The SEO Framework
    • WP Meta SEO
    • Yoast SEO
  • เปิด/ปิดการผสานรวมกับปลั๊กอินของบุคคลที่สาม ผ่านแท็บ Plugin Integration Configuration ในการตั้งค่า (#1972)
  • เมื่อแปลโพสต์หลายรายการพร้อมกัน เปิดใช้งานการแปลแต่ละโพสต์แยกกัน (ในคำขอของตัวเองไปยัง API) (#1975)
  • ดำเนินการแปลด้วยโปรแกรม (ผ่าน Gato::translateCustomPosts(), Gato::translateTaxonomyTerms() และ Gato::translateMedia()) (#2030)
  • ดำเนินการแปลผ่าน WP-CLI (#2039)
  • รองรับองค์ประกอบ Countdown ของ Elementor สำหรับการแปล (#2043)

การปรับปรุง

  • อัปเกรดปลั๊กอินเป็น dependencies ล่าสุดสำหรับ PHP 8.1 (#2059)
  • พิมพ์เนื้อหาของคำขอที่ล้มเหลวใน error logs
  • ปรับปรุง prompt ที่ส่งไปยังบริการ AI (เพื่อหลีกเลี่ยงปัญหาเกี่ยวกับ quotes, HTML tags ที่ escaped และการเข้ารหัสตัวอักษร) (#1928)
  • แปล properties ภายใน HTML tags: alt, title, placeholder, aria-label, aria-describedby, aria-labelledby, aria-placeholder (#1929)
  • จัดเรียงผู้ให้บริการและภาษาในรายการดรอปดาวน์ในการตั้งค่า (#1930)
  • เพิ่ม bulk action Gato Translate เฉพาะเมื่อผู้ใช้มีสิทธิ์ edit_posts (#1935)
  • ตรวจสอบว่าตัวแปรที่อ่านจาก/ไปยังภาษาที่จะแปลอยู่ใน AI prompt (#1937)
  • จัดระเบียบแท็บการตั้งค่าใหม่ (#1953)
  • ใช้ input การตั้งค่า System message สำหรับ Claude (#1955)
  • ปรับปรุงข้อความแสดงข้อผิดพลาดสำหรับ ID ที่โหลดไม่ได้ (#1969)
  • ลบโมเดล OpenAI 4.5 preview ที่เลิกใช้งานแล้ว (#1980)
  • รองรับ Claude ผ่าน OpenRouter (#1995)
  • พิมพ์โมเดลในรายการ log (#1997)
  • แสดงการแจ้งเตือนเมื่อ Polylang ถูกปิดใช้งาน (#1998)
  • ปรับปรุงข้อความเตือนเมื่อไม่มีโพสต์แบบกำหนดเองที่จะแปล โดยระบุสาเหตุ (#2007)
  • ให้วิธีแก้ไขปัญหาในรายการ error log (#2011)
  • ใช้ตัวเลือก "Automatically create translation entries" เริ่มต้นสำหรับ CPT ที่ลงทะเบียนผ่านปลั๊กอิน (#2012):
    • ACF
    • MetaBox
    • Custom Post Type UI
  • แสดงป้าย notification ในสีต่างกันตามความรุนแรง (#2013)
  • เปิดใช้งาน log notifications สำหรับคำเตือนโดยค่าเริ่มต้น (#2014)
  • อัปเกรด DeepSeek เป็น v3.1 (#2038)
  • เพิ่ม ID ของแท็ก/หมวดหมู่ที่ไม่มีรายการแปลในข้อความเตือน (#2044)
  • ถือว่าแท็ก/หมวดหมู่ที่แปลแล้วหายไปเป็นข้อผิดพลาด ไม่ใช่คำเตือน (#2045)
  • ถือว่า entities ที่แปลแล้วหายไป (สำหรับ parent ของโพสต์แบบกำหนดเอง, block patterns และ entity relationships ในฟิลด์แบบกำหนดเอง) เป็นข้อผิดพลาด ไม่ใช่คำเตือน (#2046)
  • พิมพ์ทั้งข้อผิดพลาดและคำเตือนในรายการ log เดียวกัน (#2047)
  • แสดงคำเตือนหรือข้อผิดพลาดสำหรับ ID ที่แปลแล้วหายไปขึ้นอยู่กับว่า CPT/taxonomy/media นั้นสามารถแปลได้หรือไม่ (#2048)
  • พิมพ์ debug log เมื่อการสร้างรายการแปลอัตโนมัติสำหรับ CPT นั้นถูกปิดใช้งาน (#2056)

แก้ไข

  • ข้อยกเว้นเมื่อ OpenRouter คืนค่าการแปลเป็น null (#1927)
  • สร้างหมวดหมู่การแปลโดยใช้ name ต้นทางเป็น slug ไม่ใช่ description (#1932)
  • ไม่แสดงเมนูปลั๊กอินที่ว่างเปล่าสำหรับผู้ใช้ที่ไม่มีสิทธิ์ edit_posts (#1933)
  • ใช้สิทธิ์ edit_theme_options เพื่อแสดง Patterns ในเมนู (#1934)
  • ไม่ยกเว้นภาษาจากภาษาปัจจุบันในการเชื่อมโยงของ Polylang (#1960)
  • แก้ไขการแปลรายการมีเดียที่แนบกับโพสต์ที่ไม่มีภาษา (#1961)
  • แก้ไขการแปลหมวดหมู่ที่มี parent ที่ไม่มีภาษา (#1962)
  • หลีกเลี่ยงข้อผิดพลาดเมื่อไม่มีภาษาที่จะแปลสำหรับมีเดีย, แท็ก และหมวดหมู่ (#1963)
  • ทริกเกอร์การแปลอัตโนมัติบนโพสต์ที่สร้างโดยใช้ WP REST API (#1984)
  • ข้อยกเว้นของ Bricks เมื่อทำ Live Preview กับธีมอื่น (#1985)
  • ปลั๊กอินไม่ทำงานกับ PHP 7.4 (#2005)
  • การอัปเดตโพสต์จัดเก็บวันที่ที่ผิดพลาด (#53f6b66)
  • การยืนยันตัวตนผู้ใช้เมื่อดำเนินการ query การแปลที่ทริกเกอร์ผ่าน WP REST API (#68b1ef3)
  • หลีกเลี่ยงข้อผิดพลาดจากการแปลต่อเมื่อผู้ให้บริการไม่มี API key ที่ตั้งค่าไว้ (#2037)
  • Override prompt ของ OpenRouter ใน Custom Settings (v14.0.1)

13.2.0

เพิ่มใหม่

  • บันทึก API requests เมื่อใช้ Google Translate และ DeepL (#1904)
  • ซิงค์ entity ID ใน meta กับ ID ที่สอดคล้องกันสำหรับภาษาเป้าหมาย (#1916)
  • ผู้ให้บริการแปลใหม่: OpenRouter (#1923)

การปรับปรุง

  • รายการ log "ai-requests" ถูกเปลี่ยนชื่อเป็น "api-requests" (เพื่อรองรับ Google Translate และ DeepL ด้วย) (#1904)
  • อัปเดต dependencies เป็นเวอร์ชันล่าสุด (#1907)
  • แปลรายการ meta สำหรับรายการมีเดียพร้อมกันทั้งหมด (#1918)
  • แปลรายการ meta สำหรับแท็กและหมวดหมู่พร้อมกันทั้งหมด (#1919)

แก้ไข

  • เมื่อแปลโพสต์ ให้จัดการสถานะ future เป็น publish เมื่อทำ "Same status as origin" (#1903)
  • แปลโพสต์ที่ป้องกันด้วยรหัสผ่าน (#1916)
  • แปล meta ในรายการมีเดีย (#1916)
  • ไม่ใช้ผู้ให้บริการแปลเริ่มต้นที่เลือกไว้หากถูกปิดใช้งาน (#1922)

13.1.0

หมายเหตุ: v13.1.0 ไม่ได้ถูกวางจำหน่าย แต่ถูกวางจำหน่ายโดยตรงเป็น v13.1.1

เพิ่มใหม่

  • แท็บ "Translation Options" ใหม่ในการตั้งค่า เพื่อเลือกการแปลหลายภาษาแบบซิงค์/อะซิงค์ (#1833)
  • ตัวเลือก "Translate custom post slugs?" ในการตั้งค่า (เพื่อรองรับ shared slugs กับ Polylang PRO) (#1835)
  • เพิ่มการผสานรวมกับ Bricks (#1838)
  • รองรับบล็อก html ของ Gutenberg (#1867)
  • รองรับการแปล reusable blocks (synced patterns) (#1868)
  • กำหนด max payload ของคำขอที่ส่งไปยังผู้ให้บริการ AI (v13.1.1) (#1897)

การปรับปรุง

  • แสดงคำเตือนแทนข้อผิดพลาดหากไม่สามารถอัปเดต slug ของ taxonomy term ได้ (#1842)
  • สร้าง queries ใหม่เมื่อ plugin/theme dependency ถูกเปิด/ปิดใช้งาน (#1843)
  • คำนวณความยาวสตริงสูงสุดสำหรับการแปลโดยลบจำนวนตัวอักษร prompt ออก (#1860)
  • สำหรับข้อผิดพลาด "String to translate exceeds max length" ไม่พิมพ์สตริงเต็มในส่วนหัว log (#1861)
  • หลีกเลี่ยงการดำเนินการ GraphQL query หากโพสต์ (cat/tag/media) มีภาษาต่างจากภาษาต้นทางที่ตั้งค่าไว้ (#1862)
  • พิมพ์การแจ้งเตือน "There were no items to translate" เมื่อ bulk action ไม่มีรายการที่ถูกต้องที่จะประมวลผล (#1862)
  • หากคำขอไปยัง API ล้มเหลว ยังคงดำเนินการแปลสำหรับคำขอที่สำเร็จทั้งหมด (#1872)
  • จัดรูปแบบเนื้อหา markdown ใน logs (#1873)
  • ข้ามการดำเนินการ query หากมีข้อผิดพลาดในการตรวจสอบการแปล (เช่น ไม่ได้กำหนด API key) (#1877)
  • ปรับปรุง prompt สำหรับ Claude (#1879)
  • หากสตริงใดล้มเหลวในการตรวจสอบความยาวสูงสุด ยังคงแปลสิ่งอื่นทั้งหมด (#1880)
  • เพิ่มภาษาในรายการ log "ai-requests" (#1881)
  • สร้างรายการแปลสำหรับ Elementor templates อัตโนมัติ (#1891)
  • คงชื่อเดิมใน JSON properties สำหรับ Elementor Widgets เพื่อปรับปรุงการค้นหา/แทนที่สำหรับแปล widgets ใหม่ (v13.1.1) (#1895)
  • ปรับปรุงชื่อใน JSON properties สำหรับบล็อก Gutenberg เพื่อปรับปรุงการค้นหา/แทนที่สำหรับแปลบล็อกใหม่ (v13.1.1) (#1896)
  • กำหนดสถานะโพสต์ที่แปลแล้วเป็น "Same as origin post" (v13.1.1) (#1899)
  • ในการตั้งค่า ย้ายตัวเลือก "Status to update" จาก "Automatic Translation" ไปยัง "General Configuration" (v13.1.1) (#1900)
  • แปลรายการสตริงสำหรับ cats/tags/media ด้วย (v13.1.1) (#1901)

แก้ไข

  • กำหนดค่าเริ่มต้นให้รายการการตั้งค่าที่เพิ่มหลังจากบันทึกการตั้งค่าไปยัง DB (#1865)
  • ซิงค์รูปภาพหน้าปกเฉพาะเมื่อรองรับสำหรับ CPT นั้น (#1866)

13.0.1

แก้ไข

  • การแปลไม่ทำงานหาก Elementor ไม่ได้ติดตั้ง (#1830)

13.0.0

การเปลี่ยนแปลงที่ทำให้ระบบเดิมใช้งานไม่ได้

  • ย้าย "Logs" จากแท็บ "Advanced Use" ไปยังแท็บ "Logs" ใหม่ในการตั้งค่า (#1819)

เพิ่มใหม่

  • เปิดใช้งาน logs ตามความรุนแรงในการตั้งค่า (#1812)
  • ป้ายนับ log ในลิงก์เมนู Logs (#1821)
  • รองรับ Claude 4 (#1829)

การปรับปรุง

  • ไม่พิมพ์ข้อผิดพลาดที่ซ้อนอยู่กับ @applyField (#1823)
  • แสดงข้อผิดพลาดทุกครั้งที่ mutation สร้างข้อผิดพลาด (#1824)
  • แสดงคำเตือนทุกครั้งที่ไม่มีรายการที่จะแปล (#1825)

แก้ไข

  • การเรียกซ้ำเมื่อแปลรายการมีเดีย (#1828)

12.2.2

แก้ไข

  • แก้ไขการแปลเนื้อหา Elementor ที่มี statusToUpdate: draft และ statusWhenTranslated: publish (#1809)

12.2.1

การปรับปรุง

  • กำหนด meta ที่จะซิงค์เสมอ (#1808)

แก้ไข

  • ซิงค์ประเภทเทมเพลต Elementor (#1808)

12.2.0

เพิ่มใหม่

  • รองรับการแปลสตริงใน arrays และ objects (#1805)

12.1.1

แก้ไข

  • ตรวจสอบว่า Elementor PRO คืนค่า null ใน $document->save() และแปลงเป็น boolean (#1802)
  • เพิ่มลิงก์ "Edit with Elementor" เมื่อแปลหน้า Elementor (#1803)

12.1.0

เพิ่มใหม่

  • แปลวิดเจ็ต html ของ Elementor + การตั้งค่าเพื่อเปิด/ปิด (#1790)
  • ไม่แปลสตริงที่เริ่มต้นด้วย <!-- gato:translation:ignore --> (#1791)

การปรับปรุง

  • เข้ารหัสตัวอักษร Unicode หลายไบต์เมื่อแปลเนื้อหา (#1799)

แก้ไข

  • ข้อยกเว้นเมื่ออัปเดตปลั๊กอินด้วยตนเอง (#1795)
  • การเผยแพร่หน้า Elementor ผ่าน Quick Links จะไม่ทริกเกอร์การแปล (#1796)
  • HTML tags ปิดที่ถูก escape ในเนื้อหาที่แปลโดย ChatGPT (เช่น <\/p> แทน </p>) (#1797)
  • ปรับปรุง prompt ของ ChatGPT เพื่อไม่เปลี่ยนแปลง emoji ในข้อความที่แปลแล้ว (#1798)
  • Language Switcher จากปลั๊กอิน "Connect Polylang for Elementor" ไม่แสดง (#1081)

12.0.1

แก้ไข

  • การแปลวิดเจ็ต icon-list ใน Elementor จะไม่แปลรายการทั้งหมด (#1789)

12.0.0

การปรับปรุง

  • ไม่ดำเนินการ logic ของ Gutenberg ใน GraphQL query หาก Classic Editor ทำงานอยู่ (#1782)

การเปลี่ยนแปลงที่ทำให้ระบบเดิมใช้งานไม่ได้

  • Hooks สำหรับ inject บล็อก Gutenberg แบบกำหนดเองถูกเปลี่ยนชื่อ
  • ซิงค์ meta key _wp_page_template โดยค่าเริ่มต้น (#1775)
  • เปลี่ยนชื่อฟิลด์ PolylangLanguage.isEnabled เป็น isActive (#1744)
  • เปลี่ยนชื่อ input filter arg Root.polylangLanguages(filter.enabled:) เป็น active (#1744)

11.3.0

เพิ่มใหม่

  • แปลและซิงค์ meta (โพสต์แบบกำหนดเอง, แท็ก, หมวดหมู่, มีเดีย)
  • เพิ่มการตั้งค่าสำหรับ Automatic Sync

การปรับปรุง

  • ทดสอบจนถึง WordPress 6.8

แก้ไข

  • การแปลสำหรับภาษาที่ไม่ใช้งานต้องไม่แสดงข้อผิดพลาด (#1743)
  • โค้ดไม่ถูก downgrade เป็น PHP 7.4 (#1749)
  • ข้อความแสดงข้อผิดพลาดการโหลดการแปลใน WordPress 6.8

11.2.0

เพิ่มใหม่

  • รองรับการแปลเนื้อหาโดย Page Builders (#1729)

การปรับปรุง

  • ไม่ซ้ำโค้ดใน query "translate-customposts" (#1727)

แก้ไข

  • ติดตั้งข้อมูลการตั้งค่าปลั๊กอินในคำขอแรกหลังจากเปิดใช้งาน license (#1733)

11.1.2

การปรับปรุง

  • ใช้ประเภท password เพื่อเปิดใช้งาน extensions ในการตั้งค่า (#1725)

แก้ไข

  • Hook template_include สามารถรับค่า null ได้ (อาจเกิดข้อผิดพลาดเมื่อติดตั้ง WooCommerce)

11.1.1

แก้ไข

  • หากการแปลสำหรับภาษาต้นทางถูกตั้งค่าเป็น None (Disable Translation) ในการตั้งค่า อย่ายกเว้นมัน (มิฉะนั้นจะไม่เพิ่มภาษานั้นในการเชื่อมโยงของ Polylang) (#1724)

การปรับปรุง

  • เปลี่ยนชื่อการตั้งค่าจาก "DeepSeek Translation" เป็น "DeepSeek" (#1723)

11.1.0

เพิ่มใหม่

  • โมเดลใหม่: Claude Sonnet 3.7 (#1719)
  • โมเดลใหม่: GPT-4.5 (research preview) (#1721)

การปรับปรุง

  • ใช้ context 128k สำหรับ Claude Sonnet 3.7 และกำหนดเป็นโมเดลเริ่มต้น (#1720)
  • ปรับปรุงรายการ log โดยไม่ล้อมรอบ JSON ด้วย quotes (#1722)

11.0.4

แก้ไข

  • ไม่ลบแท็บ Screen Options ในหน้ารายการโพสต์

11.0.0

การดำเนินการที่จำเป็น

  • สำคัญ: ก่อนอัปเดตปลั๊กอินนี้ คุณต้องปิดใช้งาน license ของคุณ จากนั้นอัปโหลดปลั๊กอินใหม่อีกครั้ง (เปลี่ยนชื่อเป็น Gato AI Translations for Polylang) และสุดท้ายเปิดใช้งานอีกครั้งโดยใช้ license key เดิม

การเปลี่ยนแปลงที่ทำให้ระบบเดิมใช้งานไม่ได้

  • เปลี่ยนชื่อ Gato Multilingual for Polylang เป็น Gato AI Translations for Polylang (#1716)
  • ลงทะเบียน URL changelog สำหรับปลั๊กอิน เพื่อแสดง changelog ของเวอร์ชันใหม่เมื่ออัปเดต (#1707)

เพิ่มใหม่

  • รองรับผู้ให้บริการแปลใหม่:
    • Mistral AI (#1708)
    • DeepSeek (#1714)
  • บันทึก response จาก LLM (#1710)

การปรับปรุง

  • แสดงชื่อโมเดล (แทนที่โค้ด) ในการตั้งค่า (#1711)
  • ลดความซับซ้อนของ queries เพื่อดำเนินการ logic น้อยลง (#1713)
  • ไม่ parse บล็อก Gutenberg เมื่อเผยแพร่โพสต์ที่แปลแล้ว (#1717)

แก้ไข

  • ปัญหาเมื่อการแปลสำหรับแท็ก/หมวดหมู่หายไป (#1712)

10.5.0

การปรับปรุง

  • ไม่เปิดใช้งานการแปลมีเดียหากมีเดียไม่สามารถแปลได้ใน Polylang (#1705)
  • เปิดใช้งานการเลือกสถานะหลายรายการเพื่อทริกเกอร์การแปลอัตโนมัติสำหรับ CPT (#1706)

10.4.0

เพิ่มใหม่

  • กำหนด API keys เป็นประเภท input password (#1693)
  • รองรับการทริกเกอร์ automations บนสถานะโพสต์ future (#1694)
  • รองรับการคัดลอกวันที่ของโพสต์ต้นฉบับไปยังการแปล (#1697)
  • เพิ่ม Claude (Anthropic) เป็นผู้ให้บริการแปล (#1703)

การปรับปรุง

  • เปลี่ยนชื่อส่วน Custom Post Types ในการตั้งค่าเป็น General Configuration (#1698)
  • กำหนดให้ GraphiQL client แสดงแบบเต็มความกว้าง (#1699)
  • จำกัดจำนวนสตริงที่จะแปลในคำขอเดียวตามความยาวสตริง (#1700)
  • หากสตริงที่จะแปลสร้างข้อผิดพลาด ไม่ดำเนินการแปล (#1701)
  • ไม่รวม encodedContentItems ใน ChatGPT prompt (#1702)
  • ปรับปรุงรูปแบบ log (#1704)

10.3.0

เพิ่มใหม่

  • เปิด/ปิดการแปลอัตโนมัติตาม CPT/taxonomy/media (#1684)
  • พิมพ์คำเตือนใน logs เมื่อรายการแปลสำหรับ CPT/taxonomy/media หายไป (#1690)

แก้ไข

  • Override Polylang hooks เฉพาะเมื่อ Gato AI Translations for Polylang มี license ที่ใช้งานอยู่ (#1682)

10.2.0

  • เปิดตัวครั้งแรก