תרגם קבצי JSON מבלי לשנות את המפתחות שלך.
המפתחות נשארים מפתחות. ההיררכיה נשמרת שלמה. רק ערכי המחרוזת מתורגמים — ורק ערכי המחרוזת. כל סוג נכס אחר נשאר בדיוק כפי שנשלח.
כלי תרגום סטנדרטיים לא מבינים JSON.
ממשקי תרגום כלליים רואים את ה-JSON שלך כקיר טקסט. הם מתרגמים שמות מפתחות לצד הערכים. הם מפשטים אובייקטים מקוננים. הם מחברים מחרוזות שלא צריכים להיות מחוברות. מה שמתקבל הוא JSON שבור מבחינה מבנית ודורש תיקון ידני לפני שניתן להשתמש בו. אם אתה מנהל קבצי לוקליזציה לאפליקציה פרודקשן, אתה יודע שהזנתם לממשק תרגום סטנדרטי יוצרת יותר עבודה ממה שהיא חוסכת.
הבעיה עמוקה יותר משמות מפתחות בלבד. ממשקי תרגום סטנדרטיים גם משבשים משתני אינטרפולציה. מחרוזת כמו "Hello {name}, you have {count} messages" חוזרת עם שמות המשתנים מתורגמים — "Hola {nombre}, tienes {cuenta} mensajes" — מה ששובר כל זמן ריצה שציפה לשם המשתנה המקורי. שעות של איתור באגים עוקבות.
לצוותים שמנהלים קבצי לוקליזציה במספר שפות לאפליקציה פרודקשן, זו לא דאגה תיאורטית. זה כבר קרה. השאלה היא כמה זמן תהליך התיקון הידני לוקח בכל פעם.
PolyLingo סורק את ה-JSON שלך לפני התרגום.
PolyLingo מבין את מבנה ה-JSON. הוא סורק רקורסיבית את האובייקט שלך, מזהה ערכי מחרוזת המכילים טקסט לתרגום, ושולח רק את אותם ערכים למודל התרגום. שמות המפתחות לעולם אינם משתנים. מספרים, בוליאנים, ערכי null וסוגים שאינם מחרוזת עוברים ללא שינוי. הפלט הוא JSON תקין עם מבנה זהה — רק עם ערכי מחרוזת מתורגמים.
משתני אינטרפולציה — {name}, {{count}}, %s ודפוסים דומים — מזוהים ונשמרים לאורך כל תהליך התרגום. הם מוחלפים במקומות שמורים לפני התרגום, ומוחזרים לצורתם המקורית בפלט. מודל התרגום לעולם אינו רואה אותם כטקסט לתרגום.
מערכים מטופלים כראוי: כל אלמנט מחרוזת מתורגם, בעוד שמספרי אינדקס ומבנה המערך נשארים ללא שינוי. מערכים מעורבים המכילים מחרוזות וסוגים שאינם מחרוזת (מספרים, אובייקטים) מטופלים כראוי כאשר סוגים שאינם מחרוזת עוברים ללא שינוי.
{
"nav_home": "Home",
"nav_pricing": "Pricing",
"hero_title": "Grow your audience globally",
"hero_cta": "Get started for free",
"footer_rights": "All rights reserved."
}{
"nav_home": "Accueil",
"nav_pricing": "Tarifs",
"hero_title": "Développez votre audience mondiale",
"hero_cta": "Commencer gratuitement",
"footer_rights": "Tous droits réservés."
}{
"nav": {
"home": "Home",
"pricing": "Pricing",
"blog": "Blog"
},
"hero": {
"title": "Grow your audience globally",
"subtitle": "Translate in seconds.",
"cta": "Get started for free"
},
"errors": {
"notFound": "Page not found",
"serverError": "Something went wrong"
}
}{
"nav": {
"home": "Inicio",
"pricing": "Precios",
"blog": "Blog"
},
"hero": {
"title": "Expande tu audiencia globalmente",
"subtitle": "Traduce en segundos.",
"cta": "Comienza gratis"
},
"errors": {
"notFound": "Página no encontrada",
"serverError": "Algo salió mal"
}
}curl -X POST https://api.usepolylingo.com/v1/translate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "{\"nav_home\": \"Home\", \"hero_title\": \"Get started\"}",
"format": "json",
"targets": ["es", "fr", "de", "ja", "zh"],
"model": "standard"
}'
# Response:
# {
# "translations": {
# "es": "{\"nav_home\": \"Inicio\", \"hero_title\": \"Empezar\"}",
# "fr": "{\"nav_home\": \"Accueil\", \"hero_title\": \"Commencer\"}",
# ...
# }
# }מה ש-PolyLingo מבטיחה בכל תרגום JSON
- ✓שמות מפתחות לעולם אינם משתנים
- ✓אובייקטים ומערכים מקוננים מטופלים רקורסיבית
- ✓מספרים, בוליאנים, ערכי null עוברים ללא שינוי
- ✓כל 36 השפות בבקשה אחת
- ✓זוהה אוטומטית כ-JSON — אין צורך בדגל פורמט
- ✓עובד עם קבצי לוקליזציה שטוחים ועמוקים
- ✓משתני אינטרפולציה ({name}, {{count}}, %s) נשמרים בדיוק
- ✓הפלט הוא JSON תקין — ניתן לפענוח ללא שינוי
שלושה שלבים לקבצי לוקליזציה מתורגמים
הדבק את ה-JSON שלך או קרא ל-API
השתמש במתרגם ללא קוד לתרגומים חד-פעמיים: הדבק את ה-JSON שלך, בחר את השפות, הורד את הקבצים המתורגמים. לאוטומציה, קרא ל-POST /v1/translate עם תוכן ה-JSON וקודי שפות היעד.
קבל את כל השפות בתגובה אחת
ה-API מחזיר אובייקט JSON עם כניסה אחת לכל שפת יעד, שכל אחת מכילה את קובץ הלוקליזציה המתורגם במלואו עם מבנה זהה. אין קריאות נפרדות לכל שפה. אין לולאות. בקשה אחת לכל הפלטים.
הכנס את הפלטים לתיקיית ההודעות שלך
כתוב כל קובץ מתורגם ל-messages/es.json, messages/fr.json, messages/de.json — או לכל מקום שבו ספריית ה-i18n שלך מצפה להם. המבנה זהה לקובץ המקור שלך, כך שאין צורך בעיבוד נוסף.
איפה תרגום JSON חשוב במיוחד
i18n לאפליקציות עם next-intl או i18next
תרגם ישירות את הקבצים messages/*.json או locales/*.json שלך. המפתחות נשארים שלמים, ההיררכיה נשמרת, ומשתני אינטרפולציה עוברים ללא שינוי. הכנס את הקבצים לתיקיית ההודעות ופרוס.
ייצוא תוכן מ-CMS
פלטפורמות CMS ללא ראש לרוב מייצאות תוכן מובנה כ-JSON. PolyLingo מתרגם את ערכי המחרוזת תוך שמירה על שמות השדות, סוגי התוכן המקוננים וערכים שאינם מחרוזת כמו תאריכים, בוליאנים ומזהים.
תגובות API וקבצי קונפיגורציה
כל מבנה JSON עם ערכי מחרוזת לתרגום — תיאורי מוצרים, תבניות התראות, טקסטים באפליקציה המוגשים דרך API — ניתן לתרגום מבלי לשנות את המבנה שהאפליקציה שלך תלויה בו.
שאלות נפוצות על תרגום JSON
האם משתני אינטרפולציה כמו {name} או {{count}} נשמרים?
כן. PolyLingo מזהה דפוסי אינטרפולציה נפוצים כולל {variable}, {{variable}}, %(variable)s, ו-%s לפני התרגום. הם מוחלפים במקומות שמורים יציבים, הטקסט הסובב מתורגם, ושמות המשתנים המקוריים מוחזרים בפלט. מודל התרגום לעולם אינו רואה את שמות המשתנים כטקסט לתרגום.
מה קורה לערכים שאינם מחרוזת — מספרים, בוליאנים, null?
ערכים שאינם מחרוזת עוברים ללא שינוי מוחלט. PolyLingo מתרגם רק ערכי מחרוזת המכילים טקסט בשפה טבעית. מספרים, בוליאנים, ערכי null ומערכים של סוגים שאינם מחרוזת נשמרים בדיוק כפי שהם מופיעים במקור.
האם PolyLingo יכול לטפל במבני JSON מקוננים עמוקים?
כן. PolyLingo סורק רקורסיבית אובייקטים בכל עומק קוננות. התרגום חל על כל ערכי המחרוזת לאורך כל המבנה, ללא קשר לעומק הקוננות.
מה אם חלק מהמפתחות מכילים תוכן שאינו לתרגום כמו סלגים או קודים?
PolyLingo מתרגם את כל ערכי המחרוזת כברירת מחדל. אם יש לך שדות מחרוזת שלא צריכים תרגום — סלגים, קודי שפה, מזהים טכניים — הגישה המומלצת היא או להוציא אותם מה-JSON שאתה שולח, או להשתמש בפרמטר פורמט מפורש ולציין שדות לדילוג (בקרוב). ברוב קבצי הלוקליזציה, כל ערכי המחרוזת מיועדים לתרגום.
האם זה עובד עם JSON5 או JSONC (JSON עם הערות)?
כרגע PolyLingo מעבד JSON סטנדרטי. JSON5 ו-JSONC (עם הערות) צריכים לעבור עיבוד מוקדם להסרת הערות ולהמרה ל-JSON סטנדרטי לפני השליחה. זו פעולה נפוצה בצינורות בנייה ומוסיפה עומס מינימלי.
כמה שפות אפשר ליעד בבקשה אחת?
עד 36 שפות נתמכות בבקשה אחת. התגובה מכילה אובייקט JSON מתורגם אחד לכל קוד שפה. מגבלות קצב משתנות לפי תוכנית — השכבה החינמית מאפשרת 10 בקשות לדקה, בעוד שתוכניות Growth ו-Scale מאפשרות 200–600 בקשות לדקה.
תרגם את קבצי הלוקליזציה שלך בשניות.
הדבק את ה-JSON שלך, בחר את השפות, וקבל קבצי לוקליזציה תקינים לכל שפת יעד.
התחל לתרגם בחינםהדבק את JSON הלוקליזציה שלך וראה את הפלט — בחינם, ללא צורך בחשבון.