अक्सर पूछे जाने वाले प्रश्न

आम सवालों के जवाब खोजें

शुरुआत करें

क्या मुझे अनुवाद प्रकाशित करने के बाद अपना ऐप फिर से बनाना होगा?

नहीं। Better i18n रनटाइम पर एक वैश्विक CDN के माध्यम से अनुवाद प्रदान करता है। जब आप प्रकाशित करते हैं, तो बिना किसी पुनर्निर्माण या पुनर्तैनाती के ~60 सेकंड के भीतर आपके ऐप में अनुवाद उपलब्ध हो जाते हैं। आपका SDK स्वचालित रूप से नए अनुवाद प्राप्त करता है।

CDN डाउन हो जाए तो क्या होता है?

CDN को हमेशा HTTP 200 लौटाने के लिए डिज़ाइन किया गया है — यहां तक कि त्रुटियों के दौरान भी, आपका ऐप विफलता की बजाय {} या { "fallback": true } प्राप्त करता है।

SDK में 5-परत की फ़ॉलबैक श्रृंखला है:

  1. इन-मेमोरी कैश (TtlCache, 60s TTL)
  2. CDN fetch (टाइमआउट + पुनः प्रयास के साथ)
  3. स्थायी संग्रहण (यदि कॉन्फ़िगर किया गया हो — जैसे मोबाइल पर AsyncStorage)
  4. स्टैटिक फ़ॉलबैक डेटा (आपके द्वारा प्रदान किए गए बंडल अनुवाद)
  5. त्रुटि (केवल तभी जब सभी परतें विफल हों)

व्यवहार में, उपयोगकर्ता लगभग कभी विफलता नहीं देखते क्योंकि कैश या स्टैटिक डेटा हमेशा उपलब्ध रहता है।

क्या कोई मुफ़्त प्लान है?

हाँ! Better i18n एक मुफ़्त स्तर प्रदान करता है जिसमें शामिल हैं:

  • 1 प्रोजेक्ट
  • असीमित अनुवाद कुंजियाँ
  • AI अनुवाद क्रेडिट
  • CDN डिलीवरी
  • CLI एक्सेस

पेड प्लान में अधिक प्रोजेक्ट, टीम सदस्य, उन्नत सुविधाएं और अधिक उपयोग सीमाएं जुड़ती हैं। वर्तमान विवरण के लिए मूल्य निर्धारण पृष्ठ देखें।

क्या Better i18n RTL भाषाओं का समर्थन करता है?

Better i18n एक स्ट्रिंग डिलीवरी प्लेटफॉर्म है — यह टेक्स्ट दिशा की परवाह किए बिना अनुवाद स्ट्रिंग संग्रहीत और प्रदान करता है। अरबी, हिब्रू और फ़ारसी जैसी RTL भाषाएं अनुवाद लक्ष्य के रूप में पूरी तरह समर्थित हैं।

हालांकि, RTL लेआउट और CSS (जैसे direction: rtl, मिरर किया गया UI) आपके ऐप की जिम्मेदारी है। SDK सही अनुवादित स्ट्रिंग प्रदान करता है; आपका CSS फ्रेमवर्क दृश्य दिशा संभालता है।

अनुवाद प्रबंधन

AI अनुवाद में कितना समय लगता है?

AI अनुवाद की गति मात्रा पर निर्भर करती है:

कुंजियाँ अनुमानित समय
1–50 कुछ सेकंड
50–500 1 मिनट से कम
500–1000 1–3 मिनट
1000+ 3–5 मिनट

अनुवाद समानांतर बैच में चलता है, इसलिए यह अच्छी तरह स्केल होता है। अनुवाद चल रहे समय आप डैशबोर्ड में काम जारी रख सकते हैं।

क्या मैं AI की जगह मानव अनुवादक उपयोग कर सकता हूं?

बिल्कुल। आप कर सकते हैं:

  • अनुवादकों को आमंत्रित करें Translator भूमिका के साथ — उन्हें एक केंद्रित अनुवाद इंटरफ़ेस तक पहुंच मिलती है
  • समीक्षा कतार का उपयोग करें — अनुवादक अनुवादों की समीक्षा, संपादन और अनुमोदन कर सकते हैं
  • AI + मानव का संयोजन — पहले पास के लिए AI का उपयोग करें, फिर मानव अनुवादकों से समीक्षा और परिष्कार कराएं

Translator भूमिका केवल अनुवाद संपादन तक पहुंच रखती है, प्रोजेक्ट सेटिंग या कुंजी प्रबंधन तक नहीं।

namespace क्या है?

namespace अनुवाद कुंजियों का एक तार्किक समूह है। उदाहरण के लिए:

  • common — साझा स्ट्रिंग जैसे "सहेजें", "रद्द करें", "लोड हो रहा है"
  • auth — लॉगिन/साइनअप से संबंधित स्ट्रिंग
  • dashboard — डैशबोर्ड-विशिष्ट स्ट्रिंग

namespace lazy-loading सक्षम करते हैं — आपका ऐप केवल वर्तमान पृष्ठ के लिए आवश्यक अनुवाद प्राप्त करता है। वे बड़े प्रोजेक्ट में कुंजियों को व्यवस्थित करने और संघर्षों को कम करने में भी मदद करते हैं।

कोड में, आप namespace को इस तरह संदर्भित करते हैं: t('common:save_button') या useTranslations('common')

क्या अनुवादों को वापस लाया जा सकता है?

हाँ। हर प्रकाशन आपके अनुवादों का एक स्नैपशॉट बनाता है। अगर कुछ गलत हो जाए:

  1. अपने प्रोजेक्ट के Publish History पर जाएं
  2. पिछला अच्छा प्रकाशन खोजें
  3. Rollback पर क्लिक करें

यह CDN को चुने गए स्नैपशॉट पर पुनर्स्थापित करता है। आपका ऐप ~60 सेकंड के भीतर वापस लाए गए अनुवाद प्रदान करेगा।

डेवलपर एकीकरण

क्या मुझे सिंगलटन या कई SDK इंस्टेंस उपयोग करने चाहिए?

हमेशा सिंगलटन उपयोग करें — मॉड्यूल स्कोप पर एक SDK इंस्टेंस बनाएं और इसे सर्वत्र पुनः उपयोग करें।

SDK का TtlCache एक मॉड्यूल-स्तरीय ग्लोबल है जो एक ही प्रक्रिया में सभी createI18nCore() इंस्टेंस के बीच साझा होता है। कई इंस्टेंस बनाना अनावश्यक है लेकिन हानिकारक नहीं — वे एक ही कैश साझा करेंगे।

// ✅ अच्छा — मॉड्यूल-स्तरीय सिंगलटन
export const i18n = createI18n({ project: 'acme/dashboard', ... });

// ❌ बचें — एक कंपोनेंट/हैंडलर के अंदर बनाना
function handler() {
  const i18n = createI18n({ ... }); // प्रत्येक अनुरोध पर नया इंस्टेंस
}
org/project फॉर्मेट क्या है?

प्रोजेक्ट पहचानकर्ता org/project फॉर्मेट का उपयोग करता है, जैसे acme/dashboard। यह सीधे CDN URL से मेल खाता है:

https://cdn.better-i18n.com/acme/dashboard/manifest.json
https://cdn.better-i18n.com/acme/dashboard/en/translations.json
  • org — आपका संगठन slug (साइनअप के दौरान सेट होता है)
  • project — प्रोजेक्ट slug (प्रोजेक्ट बनाते समय सेट होता है)

यह फॉर्मेट हर जगह उपयोग होता है: SDK कॉन्फ़िग, CLI कॉन्फ़िग, API कॉल और CDN URL। यह केस-सेंसिटिव है।

क्या SDK edge रनटाइम पर काम करता है?

हाँ। SDK केवल मानक Fetch API का उपयोग करता है — कोई भी Node.js बिल्ट-इन (fs, path, crypto, आदि) की आवश्यकता नहीं है। इसका मतलब है यह इन पर काम करता है:

  • Cloudflare Workers
  • Vercel Edge Functions
  • Deno Deploy
  • Bun
  • कोई भी Web Standards-compatible रनटाइम

एकमात्र आवश्यकता एक global fetch फ़ंक्शन है। यदि आवश्यक हो तो fetch कॉन्फ़िग विकल्प के माध्यम से एक कस्टम fetch भी पास कर सकते हैं।

CLI और SDK के बीच क्या अंतर है?

वे अलग-अलग उद्देश्यों की पूर्ति करते हैं:

CLI (@better-i18n/cli) SDK (@better-i18n/next, आदि)
कब विकास के समय रनटाइम
उद्देश्य कोड स्कैन करें, कुंजियां सिंक करें, स्थिति जांचें अनुवाद प्राप्त करें और दिखाएं
चलता है आपकी मशीन / CI पर आपके ऐप में (ब्राउज़र, सर्वर, मोबाइल)
प्रमाणीकरण गुप्त कुंजी (sk_...) सार्वजनिक कुंजी या कोई नहीं
इंस्टॉल Global या devDependency Dependency

CLI आपकी अनुवाद कुंजियों का प्रबंधन करती है। SDK उन्हें उपयोगकर्ताओं तक पहुंचाता है।

समस्या निवारण

मैं CDN की स्वास्थ्य स्थिति कैसे जांचूं?

CDN स्वास्थ्य सत्यापित करने के लिए सीधे अपने अनुवाद प्राप्त करें:

# manifest जांचें
curl -w '\nHTTP %{http_code} | Time: %{time_total}s\n' \
  https://cdn.better-i18n.com/your-org/your-project/manifest.json

# अनुवाद जांचें
curl -w '\nHTTP %{http_code} | Time: %{time_total}s\n' \
  https://cdn.better-i18n.com/your-org/your-project/en/translations.json

CDN हमेशा HTTP 200 लौटाता है। प्रतिक्रिया बॉडी जांचें:

  • आपके अनुवादों के साथ वैध JSON → CDN स्वस्थ है
  • {} या { "fallback": true } → अनुवाद अभी तक प्रकाशित नहीं हुए
  • प्रतिक्रिया समय > 1s → संभवित नेटवर्क समस्या (सामान्यतः <100ms)
मेरा ऐप उपयोगकर्ता की भाषा की बजाय फ़ॉलबैक भाषा क्यों दिखाता है?

चार सामान्य कारण:

  1. लोकेल प्रकाशित नहीं — जांचें कि डैशबोर्ड में उस भाषा के अनुवाद मौजूद हैं और प्रकाशित हैं
  2. लोकेल नॉर्मलाइजेशन मिसमैच — CDN लोवरकेस BCP 47 (pt-br) उपयोग करता है, लेकिन आपका ऐप pt-BR भेज सकता है। @better-i18n/core से normalizeLocale() उपयोग करें
  3. Middleware लोकेल डिटेक्ट नहीं कर रहा — अपनी middleware कॉन्य़िगरेशन जांचें और सुनिश्चित करें कि Accept-Language हेडर मिलान सेटअप है
  4. Manifest में लोकेल गायब — CDN manifest उपलब्ध लोकेल सूचीबद्ध करता है। अगर आपका लोकेल वहां नहीं है, तो SDK डिफ़ॉल्ट लोकेल पर वापस चला जाता है

Manifest जांचकर सत्यापित करें:

curl https://cdn.better-i18n.com/your-org/your-project/manifest.json

प्रतिक्रिया में सभी प्रकाशित लोकेल सूचीबद्ध होने चाहिए।

AI और ऑटोमेशन

क्या AI अनुवाद प्रोडक्शन के लिए पर्याप्त सटीक है?

अधिकांश सामग्री के लिए, हाँ। AI अनुवाद गुणवत्ता कई कारकों पर निर्भर करती है:

  • संदर्भ — संदर्भ एनोटेशन वाली कुंजियां काफी बेहतर अनुवाद होती हैं
  • शब्दावली — सुसंगत शब्दावली लागू करने से सबसे सामान्य त्रुटियां समाप्त होती हैं
  • सामग्री प्रकार — UI स्ट्रिंग, लेबल और छोटे विवरण बहुत अच्छी तरह अनुवाद होते हैं। मार्केटिंग कॉपी और रचनात्मक सामग्री को मानव समीक्षा की आवश्यकता हो सकती है

अनुशंसित दृष्टिकोण: पहले पास के लिए AI का उपयोग करें, फिर मूल भाषा बोलने वाले लोगों से महत्वपूर्ण उपयोगकर्ता-सामना सामग्री की समीक्षा कराएं। समीक्षा कतार इस वर्कफ़्लो को आसान बनाती है।

अनुवाद के लिए कौन से AI मॉडल उपयोग किए जाते हैं?

Better i18n अनुवाद गुणवत्ता के लिए अनुकूलित बड़े भाषा मॉडल के संयोजन का उपयोग करता है। प्लेटफॉर्म सामग्री प्रकार और भाषा जोड़ी के आधार पर स्वचालित रूप से सर्वोत्तम मॉडल का चयन करता है।

आपको मॉडल चुनने या कॉन्फ़िगर करने की आवश्यकता नहीं है — प्लेटफॉर्म यह आपके लिए करता है। मॉडल चयन को अनुवाद गुणवत्ता मेट्रिक्स के आधार पर लगातार बेहतर किया जाता है।

कौन से AI कोडिंग एजेंट MCP सर्वर के साथ काम करते हैं?

कोई भी MCP-compatible एजेंट Better i18n MCP सर्वर के साथ काम करता है, जिसमें शामिल हैं:

  • Claude Code (CLI) — पूर्ण समर्थन
  • Claude Desktop — पूर्ण समर्थन
  • Cursor — MCP सेटिंग के माध्यम से
  • Windsurf — MCP सेटिंग के माध्यम से
  • Continue — MCP कॉन्फ़िगरेशन के माध्यम से
  • कस्टम एजेंट — MCP SDK से बनी कोई भी चीज़

MCP सर्वर अनुवाद कुंजियों, अनुवादों, प्रकाशन और सामग्री प्रबंधन के लिए टूल प्रदान करता है। एजेंट प्राकृतिक भाषा कमांड के माध्यम से इन टूल को कॉल करता है।

सामग्री प्रबंधन

अनुवाद कुंजियों और Content SDK में क्या अंतर है?

वे अलग-अलग उपयोग मामलों की पूर्ति करते हैं:

अनुवाद कुंजियां Content SDK
के लिए छोटी UI स्ट्रिंग संरचित समृद्ध सामग्री
उदाहरण बटन लेबल, त्रुटि संदेश, पृष्ठ शीर्षक ब्लॉग पोस्ट, चेंजलॉग, सहायता लेख
फॉर्मेट कुंजी-मूल्य बंडल टाइपड फ़ील्ड के साथ सामग्री मॉडल
संपादन डैशबोर्ड अनुवाद संपादक डैशबोर्ड सामग्री संपादक (Markdown)
डिलीवरी SDK के अनुवाद CDN @better-i18n/sdk के माध्यम से Content API

UI टेक्स्ट के लिए अनुवाद कुंजियां उपयोग करें। शीर्षक, मुख्य विषयवस्तु, मेटाडेटा और संबंध वाली संरचित सामग्री के लिए Content SDK उपयोग करें।

Content SDK पर दर सीमाएं हैं?

हाँ, दर सीमाएं आपके प्लान स्तर पर निर्भर करती हैं। API मानक दर-सीमा हेडर लौटाता है:

  • X-RateLimit-Limit — प्रति विंडो अनुमत अनुरोध
  • X-RateLimit-Remaining — शेष अनुरोध
  • X-RateLimit-Reset — विंडो रीसेट होने का समय (Unix timestamp)

अगर आप सीमा से अधिक हो जाते हैं, तो API HTTP 429 लौटाता है। SDK दर सीमा पर स्वचालित रूप से पुनः प्रयास नहीं करता — यदि आप कई अनुरोध कर रहे हैं तो इसे अपने अप्लिकेशन में संभालें।

अधिकांश ऐप्स के लिए, दर सीमाएं इतनी उदार हैं कि आप उन तक नहीं पहुंचेंगे। सर्वर-साइड कैशिंग (जैसे हेल्प सेंटर ऐप में उपयोग की गई) API कॉल को और कम करती है।

टीम और खाता

मेरे पास कितने प्रोजेक्ट हो सकते हैं?

प्रोजेक्ट की संख्या आपके प्लान स्तर पर निर्भर करती है:

  • मुफ़्त — 1 प्रोजेक्ट
  • Pro — कई प्रोजेक्ट (वर्तमान सीमा के लिए मूल्य निर्धारण पृष्ठ देखें)
  • Enterprise — असीमित प्रोजेक्ट

हर प्रोजेक्ट अपनी कुंजियों, भाषाओं, टीम सदस्यों और प्रकाशन इतिहास के साथ पूरी तरह स्वतंत्र है। वर्तमान विवरण के लिए मूल्य निर्धारण पृष्ठ देखें।

क्या अनुवादक मेरे संगठन के सभी प्रोजेक्ट देख सकते हैं?

नहीं। टीम सदस्य प्रति प्रोजेक्ट नियुक्त होते हैं। "प्रोजेक्ट A" में आमंत्रित अनुवादक "प्रोजेक्ट B" नहीं देख सकता जब तक उसे स्पष्ट रूप से जोड़ा ना जाए।

इससे आप:

  • अन्य प्रोजेक्ट उजागर किए बिना बाहरी अनुवादकों को विशिष्ट प्रोजेक्टों में आमंत्रित कर सकते हैं
  • अलग-अलग प्रोजेक्टों में अलग-अलग अनुवादक नियुक्त कर सकते हैं
  • अपने संगठन में सूक्ष्म स्तर पर एक्सेस नियंत्रित कर सकते हैं