فایلهای محلی JSON را بدون تغییر کلیدهای خود ترجمه کنید.
کلیدها همان کلیدها باقی میمانند. تو در تو بودن حفظ میشود. فقط مقادیر رشتهای ترجمه میشوند — و فقط مقادیر رشتهای. هر نوع ویژگی دیگر دقیقاً همانطور که ارسال شده بازگردانده میشود.
ابزارهای ترجمه استاندارد JSON را نمیفهمند.
رابطهای برنامهنویسی ترجمه عمومی JSON شما را به عنوان یک دیوار متن میبینند. آنها نام کلیدها را همراه با مقادیر ترجمه میکنند. اشیاء تو در تو را صاف میکنند. رشتههایی را که نباید به هم میچسبانند. چیزی که باز میگردد JSON ساختاری شکسته است که قبل از استفاده نیاز به اصلاح دستی دارد. اگر فایلهای محلی برای یک برنامه تولیدی نگهداری میکنید، میدانید که وارد کردن آنها به یک API ترجمه استاندارد کار بیشتری ایجاد میکند تا صرفهجویی.
مشکل عمیقتر از فقط نام کلیدها است. APIهای ترجمه استاندارد متغیرهای درونگذاری را نیز خراب میکنند. رشتهای مانند «سلام {name}، شما {count} پیام دارید» با نام متغیر ترجمه شده باز میگردد — «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 بدون تغییر عبور داده میشوند
- ✓تمام ۴۳ زبان در یک درخواست واحد
- ✓به طور خودکار به عنوان 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 استاندارد تبدیل شوند. این یک مرحله رایج در خطوط ساخت است و بار اضافی کمی دارد.
چند زبان میتوانم در یک درخواست هدف قرار دهم؟
تا ۳۰ زبان پشتیبانی شده در یک درخواست واحد. پاسخ شامل یک شیء JSON ترجمه شده برای هر کد زبان است. محدودیت نرخ بسته به پلن متفاوت است — پلن رایگان اجازه ۱۰ درخواست در دقیقه را میدهد، در حالی که پلنهای Growth و Scale اجازه ۲۰۰ تا ۶۰۰ درخواست در دقیقه را میدهند.
فایلهای محلی خود را در چند ثانیه ترجمه کنید.
JSON خود را بچسبانید، زبانهای خود را انتخاب کنید، فایلهای محلی معتبر برای هر زبان هدف دریافت کنید.
شروع ترجمه رایگانJSON محلی خود را بچسبانید و خروجی را ببینید — رایگان، بدون نیاز به حساب کاربری.