adventurebrew-translator
v1.0.6
Published
Translate CSV columns using Google Translate - A powerful CLI tool with progress tracking, resume capability, and rate limit handling
Maintainers
Readme
AdventureBrew Translator
כלי CLI חזק לתרגום עמודות CSV באמצעות Google Translate. נבנה עם Bun לביצועים מהירים וכולל תכונות כמו מעקב התקדמות, יכולת המשך מנקודת עצירה, ועיכובים הניתנים להגדרה כדי להתמודד עם הגבלות קצב.
תכונות
- 🌐 תרגום כל עמודה ב-CSV באמצעות Google Translate
- 🔄 היפוך כל התווים בעמודת CSV
- 📊 פס התקדמות בזמן אמת עם זמן משוער לסיום
- 💾 שמירת התקדמות אוטומטית ויכולת להמשיך מנקודת עצירה
- ⚙️ עיכוב הניתן להגדרה בין בקשות כדי להימנע מהגבלות קצב
- 🔄 לוגיקת ניסיון חוזר עם Exponential backoff למקרי הגבלות קצב
- 🛡️ כיבוי חלק (Ctrl+C) עם שמירת התקדמות
- 🎯 תמיכה במספר צמדי שפות
- 📝 תמיכה ב-UTF-8 BOM לטיפול נכון בטקסט עברי/RTL
התקנה
התקנה גלובלית (מומלץ)
npm install -g adventurebrew-translatorלאחר ההתקנה, השתמש בפקודה advheb-trns:
advheb-trns translate --file data.csv --column textשימוש עם npx (ללא התקנה)
npx adventurebrew-translator translate --file data.csv --column textלפיתוח
שכפל את המאגר והתקן תלויות:
git clone https://github.com/yhaggai/adventurebrew-translator.git
cd adventurebrew-translator
bun installשימוש
פקודת תרגום
שימוש בסיסי:
advheb-trns translate --file data.csv --column textאו עם npx:
npx adventurebrew-translator translate --file data.csv --column textפקודת היפוך
היפוך כל התווים בעמודת CSV:
advheb-trns reverse --file data.csv --column textאו עם npx:
npx adventurebrew-translator reverse --file data.csv --column textאפשרויות CLI
אפשרויות פקודת תרגום
advheb-trns translate [options]
אפשרויות:
--file, -f נתיב לקובץ ה-CSV (חובה)
--column, -c שם העמודה לתרגום (חובה)
--delay, -d עיכוב בין תרגומים במילישניות (ברירת מחדל: 1000)
--output, -o נתיב לקובץ פלט (ברירת מחדל: החלפת קובץ הקלט)
--source-lang, -s קוד שפת מקור (ברירת מחדל: "en")
--target-lang, -t קוד שפת יעד (ברירת מחדל: "he")
--resume, -r המשך מהתקדמות קודמת אם קיימת (ברירת מחדל: true)
--help, -h הצג עזרה
--version, -v הצג גרסהאפשרויות פקודת היפוך
advheb-trns reverse [options]
אפשרויות:
--file, -f נתיב לקובץ ה-CSV (חובה)
--column, -c שם העמודה להיפוך (חובה)
--output, -o נתיב לקובץ פלט (ברירת מחדל: החלפת קובץ הקלט)
--help, -h הצג עזרה
--version, -v הצג גרסהדוגמאות
דוגמאות תרגום
תרגום אנגלית לעברית (ברירת מחדל):
advheb-trns translate --file data.csv --column textתרגום עם עיכוב מותאם אישית (1.5 שניות):
advheb-trns translate --file data.csv --column description --delay 1500תרגום לקובץ פלט שונה:
advheb-trns translate --file input.csv --column text --output output.csvתרגום ספרדית לאנגלית:
advheb-trns translate --file data.csv --column text --source-lang es --target-lang enהתחלה מחדש (התעלם מהתקדמות קיימת):
advheb-trns translate --file data.csv --column text --resume falseדוגמאות היפוך
היפוך תווים בעמודה:
advheb-trns reverse --file data.csv --column textהיפוך ושמירה לקובץ שונה:
advheb-trns reverse --file data.csv --column text --output reversed.csvאיך זה עובד
- קריאת CSV: קורא את קובץ ה-CSV ומאמת שהעמודה קיימת
- בדיקת התקדמות: בודק אם קיימת התקדמות ומציע להמשיך
- תרגום: מתרגם כל שורה אחת בכל פעם עם עיכובים הניתנים להגדרה
- שמירת התקדמות: שומר התקדמות אוטומטית אחרי כל תרגום
- פלט: מוסיף עמודה חדשה בשם קוד שפת היעד (למשל
he) עם התרגומים - המשך: אם נקטע, הרץ את אותה הפקודה כדי להמשיך מהמקום שבו עצרת
טיפול בהגבלות קצב
Google Translate עשוי להגביל את קצב הבקשות. כלי זה מטפל בכך על ידי:
- הוספת עיכובים הניתנים להגדרה בין בקשות (ברירת מחדל: 1000ms)
- לוגיקת ניסיון חוזר עם Exponential backoff (3 ניסיונות עם הכפלה פי 2)
- שמירת התקדמות אוטומטית כאשר מגיעים להגבלת קצב
- הוראות ברורות להמתין ולהמשיך
אם הגעת להגבלת קצב:
- המתן מספר דקות
- הרץ את אותה הפקודה שוב
- הכלי ימשיך אוטומטית מהמקום שבו נעצר
קבצי התקדמות
ההתקדמות נשמרת ב-.translation-progress-{filename}-{column}.json בתיקייה הנוכחית. קבצים אלה מנוקים אוטומטית כאשר התרגום מסתיים בהצלחה.
דוגמה לפלט
קובץ קלט:
id,text,category
1,Hello World,greeting
2,Good morning,greetingקובץ פלט:
id,text,category,he
1,Hello World,greeting,שלום עולם
2,Good morning,greeting,בוקר טובהערה: עמודת התרגום נקראת על שם קוד שפת היעד (למשל he לעברית, en לאנגלית).
דרישות מערכת
- Bun גרסה 1.0 ומעלה
רישיון
MIT
תרומה לפרויקט
תרומות מתקבלות בברכה! אתם מוזמנים לפתוח Issues או להגיש Pull Requests.
