अपने कुंजियों को छुए बिना JSON लोकल फाइलों का अनुवाद करें।
कुंजियाँ कुंजियाँ बनी रहती हैं। नेस्टिंग अक्षुण्ण रहती है। केवल स्ट्रिंग मानों का अनुवाद किया जाता है — और केवल स्ट्रिंग मानों का। हर अन्य संपत्ति प्रकार बिल्कुल वैसे ही वापस आता है जैसा भेजा गया था।
मानक अनुवाद उपकरण JSON को समझते नहीं हैं।
सामान्य अनुवाद API आपकी JSON को एक दीवार की तरह देखते हैं। वे मानों के साथ कुंजी नामों का भी अनुवाद करते हैं। वे नेस्टेड ऑब्जेक्ट्स को फ्लैट कर देते हैं। वे स्ट्रिंग्स को जोड़ देते हैं जो नहीं जोड़नी चाहिए। जो वापस आता है वह संरचनात्मक रूप से टूटा हुआ JSON होता है जिसे उपयोग करने से पहले मैन्युअल सुधार की आवश्यकता होती है। यदि आप प्रोडक्शन एप्लिकेशन के लिए लोकल फाइलें बनाए रखते हैं, तो आप जानते हैं कि उन्हें मानक अनुवाद API में देना बचत से अधिक काम पैदा करता है।
समस्या केवल कुंजी नामों से गहरी है। मानक अनुवाद API इंटरपोलेशन वेरिएबल्स को भी बिगाड़ देते हैं। "Hello {name}, you have {count} messages" जैसी स्ट्रिंग वापस आती है जिसमें वेरिएबल नाम अनुवादित होते हैं — "Hola {nombre}, tienes {cuenta} mensajes" — जो हर रनटाइम को तोड़ देता है जो मूल वेरिएबल नाम की उम्मीद कर रहा था। इसके बाद घंटों की डिबगिंग होती है।
प्रोडक्शन एप्लिकेशन के लिए कई भाषाओं में लोकल फाइलें बनाए रखने वाली टीमों के लिए यह कोई सैद्धांतिक चिंता नहीं है। यह पहले ही हो चुका है। सवाल यह है कि मैन्युअल मरम्मत प्रक्रिया हर बार कितनी देर लेती है।
PolyLingo आपके JSON को अनुवाद से पहले ट्रैवर्स करता है।
PolyLingo JSON संरचना को समझता है। यह आपके ऑब्जेक्ट को पुनरावर्ती रूप से ट्रैवर्स करता है, उन स्ट्रिंग मानों की पहचान करता है जिनमें अनुवाद योग्य टेक्स्ट होता है, और केवल उन मानों को अनुवाद मॉडल को भेजता है। कुंजी नाम कभी संशोधित नहीं होते। संख्याएँ, बूलियन, नल मान, और गैर-स्ट्रिंग प्रकार बिना बदलाव के पास किए जाते हैं। आउटपुट वैध 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\"}",
# ...
# }
# }हर JSON अनुवाद के लिए PolyLingo की गारंटी
- ✓कुंजी नाम कभी संशोधित नहीं होते
- ✓नेस्टेड ऑब्जेक्ट्स और एरेज़ को पुनरावर्ती रूप से संभाला जाता है
- ✓संख्याएँ, बूलियन, नल मान बिना बदलाव के पास किए जाते हैं
- ✓एक ही अनुरोध में सभी 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 अनुवाद सबसे महत्वपूर्ण है
next-intl या i18next के साथ ऐप i18n
अपने messages/*.json या locales/*.json फाइलों का सीधे अनुवाद करें। कुंजियाँ अक्षुण्ण रहती हैं, नेस्टिंग संरक्षित रहती है, और इंटरपोलेशन वेरिएबल्स बिना बदलाव के आते हैं। फाइलों को अपने messages डायरेक्टरी में डालें और डिप्लॉय करें।
CMS कंटेंट एक्सपोर्ट्स
हेडलैस CMS प्लेटफ़ॉर्म अक्सर संरचित कंटेंट JSON के रूप में एक्सपोर्ट करते हैं। PolyLingo स्ट्रिंग मानों का अनुवाद करता है जबकि फ़ील्ड नाम, नेस्टेड कंटेंट टाइप्स, और गैर-स्ट्रिंग मान जैसे तिथियाँ, बूलियन, और आईडी संरक्षित रहते हैं।
API प्रतिक्रियाएँ और कॉन्फ़िग फाइलें
कोई भी JSON संरचना जिसमें अनुवाद योग्य स्ट्रिंग मान होते हैं — उत्पाद विवरण, नोटिफिकेशन टेम्पलेट्स, API के माध्यम से परोसी गई इन-ऐप कॉपी — को बिना आपकी एप्लिकेशन की निर्भर संरचना को बदले अनुवादित किया जा सकता है।
JSON अनुवाद के बारे में अक्सर पूछे जाने वाले प्रश्न
क्या इंटरपोलेशन वेरिएबल्स जैसे {name} या {{count}} संरक्षित रहते हैं?
हाँ। PolyLingo सामान्य इंटरपोलेशन पैटर्न जैसे {variable}, {{variable}}, %(variable)s, और %s को अनुवाद से पहले पहचानता है। इन्हें स्थिर प्लेसहोल्डर्स से बदला जाता है, आस-पास का टेक्स्ट अनुवादित होता है, और मूल वेरिएबल नाम आउटपुट में पुनर्स्थापित होते हैं। अनुवाद मॉडल वेरिएबल नामों को कभी अनुवाद योग्य सामग्री के रूप में नहीं देखता।
गैर-स्ट्रिंग मानों — संख्याएँ, बूलियन, नल — का क्या होता है?
गैर-स्ट्रिंग मान पूरी तरह बिना बदलाव के पास किए जाते हैं। PolyLingo केवल उन स्ट्रिंग मानों का अनुवाद करता है जिनमें प्राकृतिक भाषा का टेक्स्ट होता है। संख्याएँ, बूलियन, नल मान, और गैर-स्ट्रिंग्स के एरे बिल्कुल वैसे ही संरक्षित रहते हैं जैसे स्रोत में हैं।
क्या PolyLingo गहराई से नेस्टेड JSON संरचनाओं को संभाल सकता है?
हाँ। PolyLingo किसी भी नेस्टिंग गहराई के ऑब्जेक्ट्स को पुनरावर्ती रूप से ट्रैवर्स करता है। अनुवाद संरचना में सभी स्ट्रिंग मानों पर लागू होता है, चाहे वे कितनी भी गहराई में क्यों न हों।
अगर कुछ कुंजियाँ गैर-अनुवादनीय सामग्री जैसे स्लग या कोड्स रखती हैं तो क्या होगा?
PolyLingo डिफ़ॉल्ट रूप से सभी स्ट्रिंग मानों का अनुवाद करता है। यदि आपके पास ऐसे स्ट्रिंग फ़ील्ड हैं जिन्हें अनुवाद नहीं करना चाहिए — स्लग, भाषा कोड, तकनीकी पहचानकर्ता — तो अनुशंसित तरीका है कि या तो उन्हें भेजे गए JSON से बाहर रखें, या स्पष्ट फॉर्मेट पैरामीटर का उपयोग करें और छोड़ने के लिए फ़ील्ड निर्दिष्ट करें (जल्द आ रहा है)। अधिकांश लोकल फाइलों के लिए, सभी स्ट्रिंग मानों का अनुवाद करना ही उद्देश्य होता है।
क्या यह JSON5 या JSONC (टिप्पणियों के साथ JSON) के साथ काम करता है?
वर्तमान में PolyLingo मानक JSON को प्रोसेस करता है। JSON5 और JSONC (टिप्पणियों के साथ) को भेजने से पहले टिप्पणियाँ हटाने और मानक JSON में बदलने के लिए पूर्व-प्रोसेस किया जाना चाहिए। यह बिल्ड पाइपलाइनों में एक सामान्य कदम है और न्यूनतम ओवरहेड जोड़ता है।
मैं एक अनुरोध में कितनी भाषाओं को लक्षित कर सकता हूँ?
एक ही अनुरोध में सभी 36 समर्थित भाषाओं तक। प्रतिक्रिया में प्रत्येक भाषा कोड के लिए एक अनुवादित JSON ऑब्जेक्ट होता है। दर सीमाएँ योजना के अनुसार भिन्न होती हैं — मुफ्त स्तर प्रति मिनट 10 अनुरोध की अनुमति देता है, जबकि Growth और Scale योजनाएँ प्रति मिनट 200–600 अनुरोध की अनुमति देती हैं।
संबंधित मार्गदर्शक
अपने लोकल फाइलों का सेकंडों में अनुवाद करें।
अपना JSON पेस्ट करें, अपनी भाषाएँ चुनें, हर लक्ष्य भाषा के लिए वैध लोकल फाइलें प्राप्त करें।
मुफ़्त अनुवाद शुरू करेंअपना लोकल JSON पेस्ट करें और आउटपुट देखें — मुफ्त, कोई खाता आवश्यक नहीं।