सामग्री पर जाएँ
i18n डॉक्टर

i18n डॉक्टर: एक ही कमांड में पूरी अनुवाद स्वास्थ्य रिपोर्ट प्राप्त करें

Run better-i18n doctor को अपने पूरे कोडबेस का पाँच आयामों—कोड गुणवत्ता, अनुवाद कवरेज, प्लेसहोल्डर सटीकता, अनाथ कुंजियाँ और CDN सिंक—में विश्लेषण करने के लिए चलाएँ, और क्रियान्वयन योग्य निदानों के साथ एकल 0–100 स्वास्थ्य स्कोर प्राप्त करें।

$ better-i18n doctor
बेहतर-i18n · i18n डॉक्टर रिपोर्ट
████████████████░░░░82 / 100A
PASSED (threshold: 70)
Coverage95(3 issues)
Quality88(2 issues)
Code72(8 issues)
Structure100(clean)
Performance91(1 issue)

एक ही पास में पाँच विश्लेषण परतें

डॉक्टर कोड स्कैनिंग, कवरेज विश्लेषण, गुणवत्ता सत्यापन, प्रदर्शन ऑडिटिंग, और CDN सिंक जांच — सभी एक साथ, एक एकीकृत स्कोर के साथ करता है।

कोड — हार्डकोडेड स्ट्रिंग डिटेक्शन

AST-आधारित स्कैनिंग t() में लिपटी नहीं गई हर उपयोगकर्ता-सामने वाली स्ट्रिंग का पता लगाती है। यह JSX टेक्स्ट, एट्रिब्यूट्स, टर्नरी लोकल लॉजिक, टोस्ट संदेशों और स्ट्रिंग वेरिएबल्स को पकड़ती है।

कवरेज — अनुवादित नहीं हुए अनुवाद

आपके स्रोत लोकल में मौजूद कुंजियों की तुलना प्रत्येक लक्ष्य लोकल से करता है। लक्ष्य लोकल में कोई भी अनुपस्थित कुंजी उसके सटीक नेमस्पेस और पथ के साथ रिपोर्ट की जाती है।

गुणवत्ता — प्लेसहोल्डर असंगति

यह सत्यापित करता है कि इंटरपोलेशन प्लेसहोल्डर सभी लोकेल में सुसंगत हैं। नामित {}, डबल-ब्रेस {{}}, printf %s, टेम्पलेट ${}, और पोजिशनल {0} प्रारूपों का समर्थन करता है।

प्रदर्शन — अनाथ कुंजी का पता लगाना

ऐसी कुंजियों का पता लगाता है जो आपकी अनुवाद फ़ाइलों में मौजूद हैं लेकिन कोड में कभी संदर्भित नहीं की जातीं। अनाथ कुंजियाँ पेलोड का आकार बढ़ाती हैं और रखरखाव का बोझ बढ़ाती हैं।

सिंक — सीडीएन तुलना

आपके कोड से निकाली गई कुंजियों की तुलना CDN में प्रकाशित कुंजियों से करता है। उत्पादन में जाने से पहले रिमोट में मौजूद नहीं होने वाली और अप्रयुक्त रिमोट कुंजी संबंधी समस्याओं को उजागर करता है।

आपके अनुवाद स्वास्थ्य के लिए एक एकल स्कोर

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

डिफ़ॉल्ट पास थ्रेशोल्ड 70 (ग्रेड B) है। इस थ्रेशोल्ड से नीचे के बिल्ड्स को फेल करने के लिए --ci का उपयोग करें, या स्कोर लागू करने से पहले एक बेसलाइन स्थापित करने के लिए --report से शुरू करें।

स्कोर सूत्र
score = 100 - (errors × 3.0) - Σ min(rule_warnings × 0.15, 20)

ग्रेड सीमाएँ

A+≥ 90
पास
A≥ 80
पास
B≥ 70
पास
C≥ 50
असफल
F< 50
असफल

CI/CD एकीकरण — खराब अनुवादों को शिप होने से पहले ही रोकें

हर पुश पर ट्रांसलेशन रिग्रेशन पकड़ने के लिए अपनी CI पाइपलाइन में डॉक्टर जोड़ें। GitHub Actions में स्वचालित OIDC प्रमाणीकरण का मतलब है शून्य गुप्त प्रबंधन।

OIDC के साथ GitHub एक्शन्स

GitHub Actions OIDC का उपयोग करके बिना API कुंजियों के स्वचालित रूप से प्रमाणीकरण करें। बस id-token:write अनुमति जोड़ें और doctor --ci --report चलाएँ।

थ्रेशोल्ड गेटिंग

पास थ्रेशोल्ड (डिफ़ॉल्ट: 70) सेट करें और जब स्कोर इससे नीचे आ जाए तो बिल्ड को फेल कर दें। --report के साथ ट्रैकिंग शुरू करें, फिर --ci के साथ लागू करें।

मशीन-पठनीय JSON

संरचित आउटपुट के लिए --format json का उपयोग करें, जिसे आप jq, कस्टम डैशबोर्ड, या अपनी डिप्लॉयमेंट पाइपलाइन में डाउनस्ट्रीम ऑटोमेशन में पाइप कर सकते हैं।

डैशबोर्ड रिपोर्टिंग

ऐतिहासिक ट्रैकिंग, रुझान विश्लेषण, और i18n स्वास्थ्य में टीम-व्यापी दृश्यता के लिए --report के साथ परिणामों को Better i18n डैशबोर्ड पर अपलोड करें।

# GitHub Actions example
- run: npx @better-i18n/cli doctor --ci --report

किस कमांड का उपयोग कब करें

डॉक्टर एक व्यापक विकल्प है। जब आपको किसी विशिष्ट जांच की आवश्यकता हो या प्री-कॉमिट हुक्स में तेज़ प्रतिक्रिया चाहिए, तो फ़ोकस्ड कमांड्स का उपयोग करें।

डॉक्टर

पाँच विश्लेषण परतों के साथ पूर्ण स्वास्थ्य स्कोर — आपके प्रोजेक्ट की i18n स्थिति के लिए एकमात्र सत्य स्रोत।

स्कैन करें

कठोर रूप से कोडित स्ट्रिंग का पता लगाना। --staged का समर्थन करता है, जो प्री-कॉमिट हुक्स के लिए है।

जाँचें

मार्गदर्शित संकेतों के साथ अनुपस्थित या अप्रयुक्त अनुवाद कुंजियों के लिए इंटरैक्टिव चेकर।

सिंक

पूर्ण स्थानीय-से-रिमोट तुलना जो एक साथ दोनों अनुपस्थित और अप्रयुक्त कुंजियाँ दिखाती है।

वास्तविक-विश्व i18n वर्कफ़्लो के लिए निर्मित

स्वास्थ्य स्कोर 0–100

प्रति श्रेणी विभाजन और CI पास/फेल थ्रेशोल्ड के साथ एकल स्कोर। समय के साथ अपने अनुवाद की स्वास्थ्य स्थिति को ट्रैक करें।

शब्दावली क्षेत्र ट्रैकिंग

useTranslations और getTranslations दोनों के लिए स्मार्ट नेमस्पेस डिटेक्शन। प्रत्येक t() कॉल अपने सही नेमस्पेस से मेल खाती है।

सर्वर घटक समर्थन

Next.js App Router async सर्वर फ़ंक्शंस के लिए पूर्ण समर्थन। सर्वर-साइड getTranslations कॉल का पता लगाया जाता है और उनकी ऑडिट की जाती है।

विन्यास योग्य नियम

i18n.config.ts में नियमों को अक्षम या डाउनग्रेड करें। अपने प्रोजेक्ट की आवश्यकताओं के अनुसार नियमों को "error", "warning" या "off" पर सेट करें।

स्मार्ट फ़िल्टरिंग

स्वचालित रूप से CSS क्लास नामों, URL, आयात पथों और डेवलपर स्थिरांकों को अनदेखा करता है। केवल क्रियान्वयन योग्य परिणाम।

विस्तृत ऑडिट लॉग

--verbose के साथ गहरी पारदर्शिता। डीबगिंग के लिए स्कोपिंग सारांश, समय-संबंधी जानकारी और नेमस्पेस समाधान ट्रेस।

शिप करने से पहले अपने अनुवाद की सेहत जानें

अपनी बेसलाइन प्राप्त करने के लिए i18n डॉक्टर एक बार चलाएँ। इसे CI में जोड़ें ताकि फिर कभी कोई अनुपलब्ध अनुवाद न भेजा जाए।