מאמר אחד 19 שפות: מבנה קבצים, prompt תרגום, 5 מלכודות אמיתיות, איך לשלוח POST בבת אחת.
התיעוד הרשמי של Anthropic ושל OpenAI הוא באנגלית בלבד. זה פער ענק במערכת האקולוגית של התוכן למפתחי AI בעולם. how2claude סותם את הפער הזה — כל מאמר יוצא ב-19 שפות בבת אחת: zh / en / zh-TW / ja / ko / es / pt-BR / id / vi / tr / ar / fr / de / it / ru / uk / pl / he / th.
לשכור מתרגמים אנושיים לא ריאלי (20 תרגומים למאמר, כל אחד באלפי דולרים). לתת ל-Claude לעשות את זה מוריד את עלות השוליים כמעט לאפס — אבל לזרוק מעל הגדר "תרגם ליפנית" ולקבל טקסט בטעם תרגום מכונה שבו קולו של הכותב התנדף. להלן התהליך המלא לעשות את זה נכון: מבנה קבצים, איך לכתוב prompt תרגום, היכן Claude יכשל בוודאות, איך לשלוח POST אחד עם 19 שפות ועם ציוצים לפי שפה ל-API.
שני דברים שונים מאוד.
תרגום מעביר משמעות משפה A לשפה B — מה שעושה Google Translate. קריא "נכון" אבל "שטוח".
לוקליזציה שומרת על הרגיסטר, הקצב והרמה המקצועית של הכותב, ומשכתבת ב"קול בלוג טכנולוגי" של שפת היעד. התוצאה קריאה כאילו נכתבה על ידי דובר ילידי.
תרגום עבור Claude הוא עבודת 5 דקות; לוקליזציה מחייבת את ה-prompt לפרט:
הפקודה /write-article ב-how2claude נושאת דרישת סגנון לכל שפה:
| קובץ שפה | דרישת סגנון |
|---|---|
ja.md |
קול בלוג טכנולוגי, יפנית טבעית |
ko.md |
קול בלוג טכנולוגי, קוריאנית טבעית |
zh-TW.md |
שימוש טייוואני, אותיות מסורתיות |
ar.md |
ערבית סטנדרטית מודרנית (כתובה) |
id.md |
אינדונזית סטנדרטית |
זה נראה כמו שורה אחת נוספת. אבל עבור Claude זה מכריע — בלי השורה הזו, ברירת המחדל היא "תרגום מספר לימוד".
תיקייה אחת לכל טיוטה, 20 קבצים:
docs/drafts/let-claude-translate-articles/
├── meta.json # title + summary לכל 19 השפות
├── zh.md # סינית (המקור, נכתב ראשון)
├── en.md # אנגלית (גל תרגומים ראשון)
├── zh-TW.md
├── ja.md
├── ko.md
├── ...(עוד 14)
└── th.md
meta.json:
{
"category_slug": "use-cases",
"series_slug": "writing",
"free": true,
"title": {
"zh": "让 Claude 把一篇文章翻译成 19 种语言",
"en": "Letting Claude Translate One Article Into 19 Languages",
"he": "לתת ל-Claude לתרגם מאמר אחד ל-19 שפות",
"...": "..."
},
"summary": {
"he": "מאמר אחד 19 שפות: מבנה קבצים, prompt תרגום, 5 מלכודות אמיתיות, איך לשלוח POST בבת אחת.",
"...": "..."
}
}
השורה הראשונה של כל קובץ .md היא # כותרת, היתר הוא תוכן. ה-title לא נלקח מהשורה הראשונה של ה-md — אלא מ-meta.json, כך שלכל שפה יש כותרת קצרה ומלוטשת במיוחד, לא משפט הפתיחה של המאמר שיכול היה להתארך בתרגום.
שני תהליכים שצריך להימנע מהם:
שגוי: תרגום בשרשרת. zh → en → ja → ko → ...
הבעיה: ja מבוסס על en, ko על ja — כל קפיצה מדליפה קצת משמעות. עד ה-th (תאית) מדובר במידע יד רביעית.
נכון: תרגום קרני. לסיים את zh → לייצר en / ja / ko / ar / id / ... ישירות מהמקור.
כל שפה יוצאת ישירות מהמקור, ללא תחנות ביניים.
מבנה ה-prompt (ארוז בתוך /write-article):
זהו מאמר בלוג טכנולוגי על X, מקור בסינית:
[zh.md מלא]
תרגם לשפות הבאות עם דרישות ספציפיות לכל שפה:
- ja.md: קול בלוג טכנולוגי, יפנית טבעית
- ko.md: קול בלוג טכנולוגי, קוריאנית טבעית
- ar.md: ערבית סטנדרטית מודרנית (כתובה)
...
כללים:
1. שמור על הרגיסטר הישיר, המקצועי, עם נגיעה של הומור עצמי של הכותב
2. אל תתרגם בלוקים של קוד, פקודות, שמות API, URLs
3. כותרות, תתי-כותרות, זרימת פסקאות מותר לשחזר
4. הפק title נפרד לכל שפה — קצר, עם קרס, לא תרגום מילולי של הכותרת המקורית
לתרגם 18 שפות במקביל, session אחד של Claude פותר הכול. פרט מפתח: לעשות את זה באותה session / באותה גרסת מודל — הקול נסחף בין sessions ובין דורות מודל.
X סופר תווי CJK (סינית/יפנית/קוריאנית) בחומרה רבה יותר. ביקשתי מ-Claude לייצר ציוצים עם האילוץ הזה:
במעבר הראשון שלושה ציוצים בסינית חרגו (160, 164, 152). Claude תרגם את הציוצים האנגליים מילולית — ציוץ אנגלי של 260 תווים הופך לסינית בדיוק בגבול.
חוק: ציוצים בסינית חייבים להיכתב מחדש, לא להיתרגם. דרישות: תקרה של 140 תווים, קרס חובה, אובדן פרטים מותר.
zh → zh-TW מזמין עצלנות: להעביר דרך ממיר מפושט-למסורתי. התווים תואמים, אוצר המילים לא:
| zh | zh-TW (שגוי) | zh-TW (נכון) |
|---|---|---|
| 文件 | 文件 | 檔案 |
| 信息 | 信息 | 資訊 |
| 软件 | 軟件 | 軟體 |
| 视频 | 視頻 | 影片 |
כאשר מבקשים zh-TW מ-Claude, לומר את שני החלקים: "שימוש טייוואני, אותיות מסורתיות". "מסורתיות בלבד" ייתן המרת תווים.
ערבית ועברית נקראות מימין לשמאל. בצד Rails נדרש <html dir="rtl"> וגרסאות rtl: של Tailwind. אבל גם בתרגום עצמו יש מלכודות:
unicode-bidi: isolate אחרת הקוד "נשאב" לתוך זרימת ה-RTL، במקום ,, וב-؟ במקום ?. Claude בברירת מחדל משתמש בסימני פיסוק אנגליים; צריך לציין במפורש2026) בתוך פסקה שזורמת מימין לשמאל. דפדפנים מטפלים בזה, אבל Claude לעיתים קרובות מבלבל בטקסט גולמיביטויים מדוברים מהמקור ("מכה אחת", "דרכתי בבור", "פספסתי") Claude מתרגם ליפנית/קוריאנית בברירת מחדל לצורות כתובות פורמליות (「一気に実装」「落とし穴」「失敗」) — המשמעות תואמת, הטון מתנדף.
פתרון: לנסח במפורש ב-prompt — "שמור על הקול הישיר, עם הומור עצמי, הלא-פורמלי של בלוג טכנולוגי; בלי אקדמיזציה". גם אז, שפות מסוימות (גרמנית, רוסית) ינחתו טיפה יותר "פורמליות" מהמקור — השפות עצמן נוטות לרגיסטר הכתוב.
מחרוזות בקוד נחלקות לשני דליים — טקסט UI (מתרגמים) ו-placeholders/שמות משתנים (לא):
t("pricing.page_title") # אל תתרגם (i18n key)
"user_id" # אל תתרגם (שם משתנה)
"Monthly subscription" # מוצג כדוגמה בטקסט לקורא → אל תתרגם
לכל דבר הצמוד לקוד, "אל תתרגם" היא ברירת מחדל בטוחה יותר. מה שבאמת יש לתרגם הם קבצי i18n locale (config/locales/xx.yml), וזו עבודה נפרדת.
/publish-article שולחת POST של הטיוטה ל-how2claude.com/api/articles:
{
"category_slug": "use-cases",
"series_slug": "writing",
"free": true,
"thread": true,
"title": { "zh": "...", "en": "...", "ja": "...", ... },
"summary": { "zh": "...", "en": "...", ... },
"content": { "zh": "<md>", "en": "<md>", ... },
"tweets": { "en": ["...", "..."], "zh": [...], ... }
}
בקשה אחת ~300KB (19 שפות × ~15KB). השרת מפרק לטבלאות DB:
articles, title / summary / content הם jsonb לפי localex_queue_tweets, לפי locale + חשבון, נשלחת לתור תזמוןציוצים יוצאים רק ל-locales עם חשבון X מחובר (כרגע en/zh/ja/ko/ar/id — 6). שפות בלי חשבון שולחות []. בדיקת חשבונות:
Account.all.each { |a| puts "#{a.locale}: #{a.name}" }
# en: @how2claude
# zh: @howtoclaude
# ja: @how2claude_ja
# ko: @how2claude_ko
# ar: @how2claude_ar
# id: @how2claude_id
רשימת פעולות מלאה לתת ל-Claude לתרגם מאמר אחד ל-19 שפות:
dir="rtl" + גרסאות rtl: של Tailwind בצד Rails. סימני פיסוק מעורבים ובידוד בלוקי קוד — טיפול נפרד.צוואר הבקבוק האמיתי אינו איכות התרגום — מודלים מסוג Claude 4 מתרגמים ליפנית/קוריאנית/ערבית/רוסית ברמה קרובה לזו של דובר ילידי. צוואר הבקבוק הוא האם אתה מוכן להציב מאמר אחד לפני קוראים ב-19 שפות בבת אחת. טכנית זה 5 דקות. מבחינת תוכן — מוכנות לשרת פי 200 מהקהל בבת אחת.