আপনার কী স্পর্শ না করেই 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 এর গ্যারান্টি
- ✓কী নাম কখনই পরিবর্তিত হয় না
- ✓নেস্টেড অবজেক্ট এবং অ্যারে পুনরাবৃত্তিমূলকভাবে পরিচালিত
- ✓সংখ্যা, বুলিয়ান, নাল মান অপরিবর্তিত থাকে
- ✓একক অনুরোধে ৩৬টি ভাষা
- ✓স্বয়ংক্রিয়ভাবে 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 ফাইল সরাসরি অনুবাদ করুন। কী অপরিবর্তিত থাকে, নেস্টিং সংরক্ষিত থাকে, এবং ইন্টারপোলেশন ভেরিয়েবল অপরিবর্তিত থাকে। ফাইলগুলো আপনার মেসেজেস ডিরেক্টরিতে রাখুন এবং ডিপ্লয় করুন।
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 এ রূপান্তর করা উচিত। এটি বিল্ড পাইপলাইনে একটি সাধারণ ধাপ এবং খুব কম ওভারহেড যোগ করে।
একটি অনুরোধে কতগুলো ভাষা লক্ষ্য করা যায়?
একক অনুরোধে সর্বোচ্চ ৩৬টি সমর্থিত ভাষা। প্রতিক্রিয়ায় প্রতিটি ভাষার জন্য একটি অনুবাদকৃত JSON অবজেক্ট থাকে। রেট লিমিট প্ল্যান অনুযায়ী পরিবর্তিত হয় — ফ্রি টিয়ার প্রতি মিনিটে ১০ অনুরোধ দেয়, Growth এবং Scale প্ল্যান প্রতি মিনিটে ২০০–৬০০ অনুরোধ দেয়।
সেকেন্ডের মধ্যে আপনার লোকেল ফাইল অনুবাদ করুন।
আপনার JSON পেস্ট করুন, ভাষা নির্বাচন করুন, প্রতিটি লক্ষ্য ভাষার জন্য বৈধ লোকেল ফাইল পান।
বিনামূল্যে অনুবাদ শুরু করুনআপনার লোকেল JSON পেস্ট করুন এবং আউটপুট দেখুন — বিনামূল্যে, কোনো অ্যাকাউন্টের প্রয়োজন নেই।