Auto-I18N: เครื่องมือการแปลหลายภาษาอัตโนมัติโดยใช้ chatgpt
Auto-I18N เป็นเครื่องมือที่แปลไฟล์ markdown เป็นภาษาหลายภาษาโดยอัตโนมัติโดยใช้ chatgpt มันใช้ระบบอัตโนมัติเต็มรูปแบบของบล็อกโพสต์ i18n (ความเป็นสากล) คุณจะต้องส่งโพสต์บล็อกของคุณไปยังที่เก็บ GitHub ของคุณเพื่อแปลเป็นภาษาหลายภาษาโดยอัตโนมัติด้วยการกระทำของ GitHub (ปัจจุบันได้รับการสนับสนุนภาษาอังกฤษสเปนและอาหรับและจะมีการสนับสนุนภาษาเพิ่มเติมในอนาคต)
คุณสมบัติหลักของ Auto-I18N:
- การแปลหลายภาษาแบทช์ : Auto-I18N ให้ฟังก์ชั่นของการแปลแบบแบทช์ช่วยให้คุณสามารถแปลเอกสารการทำเครื่องหมายทั้งหมดในเส้นทางทั้งหมดเป็นภาษาหลายภาษาในครั้งเดียวปรับปรุงประสิทธิภาพของโครงการหลายภาษา
- เข้ากันได้กับสสารด้านหน้า : Auto-I18N เข้ากันได้กับไวยากรณ์ของ Markdown Front Matter คุณสามารถปรับแต่งกฎการแปลหรือการเปลี่ยนสำหรับฟิลด์ที่แตกต่างกัน
- การเปลี่ยนเนื้อหาคงที่ : Auto-I18N ยังรองรับการเปลี่ยนเนื้อหาคงที่ หากคุณต้องการการแปลของฟิลด์ที่ซ้ำกันบางอย่างในเอกสารที่จะไม่เปลี่ยนแปลงคุณสมบัตินี้สามารถช่วยให้คุณบรรลุเอกสารที่สอดคล้องกัน
- เวิร์กโฟลว์อัตโนมัติ : คุณสามารถใช้การกระทำของ GitHub เพื่อใช้กระบวนการแปลอัตโนมัติ หากไม่มีการแทรกแซงด้วยตนเองงานแปลจะดำเนินการต่อและอัปเดตเอกสารโดยอัตโนมัติช่วยให้คุณสามารถมุ่งเน้นเนื้อหาเพิ่มเติมได้
เริ่มต้นอย่างรวดเร็ว
- การโคลนนิ่งที่เก็บในเครื่องเปลี่ยนชื่อ
env_template.py เป็น env.py และให้ API chatgpt ของคุณ หากคุณไม่มี API ของคุณเองคุณสามารถสมัครฟรีได้ฟรีใน GPT_API_FREE; นอกจากนี้คุณยังสามารถใช้ Go-Chatgpt-API เพื่อแปลง Web เวอร์ชันของ ChatGPT เป็น API เพื่อใช้ - ติดตั้งโมดูลที่ต้องการ:
pip install -r requirements.txt - เรียกใช้คำสั่ง
python auto-translater.py เพื่อเรียกใช้โปรแกรมซึ่งจะประมวลผลไฟล์ markdown ทั้งหมดโดยอัตโนมัติในไดเรกทอรีทดสอบ testdir/to-translate และแบทช์แปลเป็นภาษาอังกฤษสเปนและอาหรับ (จะให้การสนับสนุนภาษาเพิ่มเติมในอนาคต)
คำอธิบายโดยละเอียด
ตรรกะการทำงานของโปรแกรม auto-translater.py มีดังนี้:
- โปรแกรมจะประมวลผลไฟล์ Markdown ทั้งหมดในไดเรกทอรีทดสอบโดยอัตโนมัติ
testdir/to-translate คุณสามารถยกเว้นไฟล์ที่ไม่จำเป็นต้องแปลในตัวแปร exclude_list - ชื่อไฟล์ที่ประมวลผลจะถูกบันทึกไว้ใน
processed_list.txt ที่สร้างขึ้นโดยอัตโนมัติ ไฟล์ที่ประมวลผลจะไม่ถูกแปลอีกครั้งในครั้งต่อไปที่โปรแกรมจะเรียกใช้ - สำหรับบทความที่เขียนเป็นภาษาอังกฤษโปรแกรมจะไม่แปลเป็นภาษาอังกฤษอีกครั้งและจะไม่ถูกแปลกลับเป็นภาษาจีน แต่จะถูกแปลเป็นภาษาอื่น คุณต้องเพิ่มฟิลด์ในบทความ
> This post was originally written in English. (โปรดทราบว่ามีเส้นเปล่าในแต่ละด้านบนและล่าง) สำหรับโปรแกรมที่จะรับรู้ โปรดดูที่บทความทดสอบ _en.md - หากคุณต้องการแปลบทความที่ระบุอีกครั้ง (ตัวอย่างเช่นผลการแปลไม่ถูกต้องหรือเนื้อหาของบทความมีการเปลี่ยนแปลง ฯลฯ ) คุณสามารถเพิ่มฟิลด์
[translate] ลงในบทความ (คุณต้องทิ้งบรรทัดว่างไว้ที่ด้านบนและด้านล่าง) สิ่งนี้จะไม่สนใจกฎ exclude_list และ processed_list และการประมวลผลการแปล โปรดดูที่บทความทดสอบ _force-mark.md - หากไฟล์ markdown มีสสารด้านหน้าวิธีการประมวลผลต่อไปนี้จะถูกเลือกตามกฎในโปรแกรม
front_matter_translation_rules :- การแปลอัตโนมัติ: แปลโดย chatgpt ใช้กับฟิลด์ชื่อบทความหรือบทความคำอธิบาย
- การเปลี่ยนฟิลด์คงที่: ใช้ได้กับฟิลด์หมวดหมู่หรือฉลาก ตัวอย่างเช่นหากชื่อฉลากภาษาจีนเดียวกันไม่ต้องการแปลเป็นฉลากภาษาอังกฤษที่แตกต่างกันจะทำให้เกิดข้อผิดพลาดของดัชนี
- ไม่มีการประมวลผล: หากฟิลด์ไม่ปรากฏในสองกฎข้างต้นข้อความต้นฉบับจะถูกเก็บไว้และจะไม่มีการประมวลผล ใช้ได้กับวันที่ URL ฯลฯ
คู่มือการกระทำของ GitHub Actions
คุณสามารถสร้าง .github/workflows/ci.yml ภายใต้ที่เก็บโครงการของคุณ เมื่อตรวจพบที่เก็บ GitHub คุณสามารถใช้การกระทำของ GitHub เพื่อแปลและประมวลผลโดยอัตโนมัติและส่งกลับไปยังที่เก็บเดิมโดยอัตโนมัติ
เนื้อหาของ ci.yml สามารถอ้างอิงเป็นแม่แบบ: ci_template.yml
คุณต้องเพิ่มสองความลับใน Settings ที่เก็บ - Secrets and variables - Repository secrets : CHATGPT_API_BASE และ CHATGPT_API_KEY และแสดงความคิดเห็นคำสั่ง import env ในโปรแกรม auto-translater.py
การแก้ไขข้อผิดพลาด
- หากคุณต้องการตรวจสอบความพร้อมใช้งานของคีย์ CHATGPT API คุณสามารถใช้โปรแกรม Verify-api-Api-key.py เพื่อทดสอบ หากคุณใช้ API อย่างเป็นทางการในประเทศคุณต้องมีพร็อกซีท้องถิ่น
- หากไม่สามารถรับรู้เรื่องด้านหน้าได้ตามปกติคุณสามารถใช้โปรแกรม detect_front_matter.py เพื่อทดสอบ
- เมื่อคุณพบปัญหาโดยใช้การกระทำของ GitHub ให้จัดลำดับความสำคัญการตรวจสอบว่าการอ้างอิงเส้นทางนั้นถูกต้อง (ตัวอย่างเช่น
dir_to_translate dir_translated_en dir_translated_es dir_translated_ar processed_list )
ปัญหาที่จะแก้ไข
- ในบางกรณีพิเศษการแปลอาจไม่ถูกต้องหรือบางสาขาไม่ได้แปล ขอแนะนำให้ตรวจสอบบทความด้วยตนเองหลังจากการแปล
- (แก้ไข)
หากมีการรวมเรื่องด้านหน้าไว้ใน Markdown เนื้อหาต้นฉบับของสสารด้านหน้าจะถูกเก็บไว้ ด้านหน้าฟังก์ชั่นการแปลพารามิเตอร์บางอย่างอยู่ระหว่างการพัฒนา
มีส่วนช่วย
ยินดีต้อนรับสู่การมีส่วนร่วมในการปรับปรุงโครงการนี้! หากคุณต้องการมีส่วนร่วมในรหัสรายงานคำถามหรือทำข้อเสนอแนะตรวจสอบคู่มือการบริจาค
ลิขสิทธิ์และใบอนุญาต
โครงการนี้ใช้ใบอนุญาต MIT
คำถามและการสนับสนุน
หากคุณพบปัญหาใด ๆ กับ Auto-I18N หรือต้องการการสนับสนุนด้านเทคนิคโปรดส่งปัญหา
บล็อกของฉันใช้ Auto-I18N เพื่อใช้การสนับสนุนหลายภาษาและคุณสามารถไปที่ Wiki ของ Power เพื่อดูเอฟเฟกต์การสาธิต
กิตติกรรมประกาศ
- ขอบคุณ Chatanywhere/GPT_API_FREE สำหรับคีย์ CHATGPT API ฟรี
- ขอบคุณ Linweiyuan/go-chatgpt-API สำหรับวิธีการแปลง chatgpt เป็น API บนเว็บ