सीएलआई — यूआई स्ट्रिंग्स
extract
सारांश: ai-i18n-tools extract
includeUiLanguageEnglishNames सक्षम होने पर strings.json को t("…") / i18n.t("…") शाब्दिक, वैकल्पिक package.json विवरण, और वैकल्पिक बंडल-मास्टर englishName प्रविष्टियों से अपडेट करें (ui.uiExtractor देखें; languagesManifestPath नहीं पढ़ता है)। languagesManifestPath पर ui-languages.json को भी पुनर्जीवित करता है। जब ui.uiExtractor.extensions में .html / .htm सूचीबद्ध होते हैं, तो एचटीएमएल से data-i18n / data-i18n-title / data-i18n-placeholder मार्कर स्ट्रिंग्स भी कैप्चर करता है। गैर-खाली ui.sourceRoots की आवश्यकता है। एलएलएम को कॉल नहीं करता है।
यह भी देखें: यूआई स्ट्रिंग्स अवलोकन, प्लेन एचटीएमएल ऐप्स
migrate-intlayer
सारांश: ai-i18n-tools migrate-intlayer [paths...] [--write] [--report <path>] [--content-glob <glob>] [--t-import <specifier>]
इंटलेयर *.content.ts डिक्शनरी को strings.json और फ्लैट लोकेल फ़ाइलों में आयात करें, और साधारण useIntlayer / getIntlayer कॉल साइटों को t('English source') में फिर से लिखें। डिफ़ॉल्ट रूप से ड्राई रन (रिपोर्ट अभी भी लिखी जाती है)। --write कैटलॉग को सीड करता है और सुरक्षित रीराइट लागू करता है। LLM को कॉल नहीं करता है।
रिपोर्ट --write द्वारा छोड़ी गई हर चीज़ के हैंडऑफ़ के रूप में कार्य करती है, और यह एक चरण-दर-चरण TODO के साथ समाप्त होती है जो बाकी कार्य को क्रमबद्ध करता है: प्रत्येक मैन्युअल साइट के लिए एक ठोस t() या JSX कॉल, import { t } लाइन, डिक्शनरी फ़ाइलें और बाद में हटाने के लिए IntlayerProvider के अवशेष, स्रोत स्ट्रिंग्स जिन्हें पहले extract और फिर translate-ui की आवश्यकता होती है, और ऐप के i18n मॉड्यूल पर पेस्ट करने के लिए एक i18next रनटाइम बूटस्ट्रैप। लोकेल नियंत्रण को i18n.changeLanguage के साथ-साथ loadLocale को भी कॉल करना होगा। extract ui-languages.json लिखता है, जिसे वह बूटस्ट्रैप इम्पोर्ट करता है। strings.json, फ्लैट लोकेल फ़ाइलों, या ui-languages.json को मैन्युअल रूप से संपादित न करें।
मुख्य विकल्प: --write, --report, --content-glob (डिफ़ॉल्ट **/*.content.ts), --t-import
यह भी देखें: इंटलेयर से माइग्रेट करना
mark-html
सारांश: ai-i18n-tools mark-html [paths...] [--write]
एचटीएमएल में नंगे data-i18n / data-i18n-title / data-i18n-placeholder मार्कर डालें ताकि स्रोत टेक्स्ट एक बार (एलिमेंट पर ही) लिखा जा सके। दिए गए फ़ाइलों/निर्देशिकाओं/ग्लोबों को स्कैन करता है (डिफ़ॉल्ट: ui.sourceRoots के तहत .html / .htm)। डिफ़ॉल्ट रूप से ड्राई रन (प्रति-फ़ाइल जोड़ गणना और किसी भी मिश्रित-सामग्री तत्वों की रिपोर्ट करता है जिन्हें मैन्युअल <span data-i18n> की आवश्यकता होती है); --write परिवर्तन लागू करता है। आइडम्पोटेंट, data-i18n-ignore का सम्मान करता है (एलिमेंट और उसके सबट्री को छोड़ देता है), कभी भी कोड-जैसे तत्वों (code, pre, kbd, samp, var) या खाली/केवल-संख्यात्मक टेक्स्ट को नहीं छूता है, और कभी भी मूल्यवान मार्कर उत्सर्जित नहीं करता है। एलएलएम को कॉल नहीं करता है।
मुख्य विकल्प: --write
यह भी देखें: अनुवाद के लिए एचटीएमएल को चिह्नित करना
generate-ui-languages
सारांश: ai-i18n-tools generate-ui-languages [--master <path>] [--dry-run]
ui-languages.json को languagesManifestPath (डिफ़ॉल्ट {ui.flatOutputDir}/ui-languages.json) में sourceLocale + targetLocales और बंडल किए गए data/ui-languages-complete.json (या --master) का उपयोग करके लिखें। मास्टर फ़ाइल से गायब लोकेल के लिए TODO प्लेसहोल्डर की चेतावनी देता है और उत्सर्जित करता है। यदि आपके पास अनुकूलित label या englishName मानों के साथ एक मौजूदा मैनिफेस्ट है, तो उन्हें मास्टर कैटलॉग डिफ़ॉल्ट द्वारा प्रतिस्थापित किया जाएगा — उत्पन्न फ़ाइल की समीक्षा करें और बाद में समायोजित करें।
मुख्य विकल्प: --master, --dry-run
translate-ui
सारांश: ai-i18n-tools translate-ui [-l <codes>] [--force] [--dry-run] [-j <n>]
केवल यूआई स्ट्रिंग्स का अनुवाद करें (strings.json → लोकेल JSON)। features.translateUIStrings की आवश्यकता है।
मुख्य विकल्प: -l / --locale, --force, --dry-run, -j / --concurrency
-l / --locale: कॉमा से अलग किए गए लक्ष्य स्थान (डिफ़ॉल्ट: कॉन्फ़िग targetLocales माइनस sourceLocale)। --force: प्रति स्थान सभी प्रविष्टियों का पुनः अनुवाद करें (मौजूदा अनुवादों को अनदेखा करें)। --dry-run: कोई लेखन नहीं, कोई एपीआई कॉल नहीं। -j स्थानों को समानांतर करता है; प्रत्येक स्थान के भीतर, कॉन्फ़िग uiBatchConcurrency (डिफ़ॉल्ट 2) एलएलएम बैचों (50 स्ट्रिंग के चंक, फिर बहुवचन समूह) को समानांतर करता है। uiBatchConcurrency के लिए कोई सीएलआई फ़्लैग नहीं है।
sync-ui
सारांश: ai-i18n-tools sync-ui [-l <codes>] [--force] [--dry-run] [-j <n>]
UI स्ट्रिंग निकालें, फिर उनका अनुवाद करें (इसके लिए features.translateUIStrings आवश्यक है)। केवल UI — कोई दस्तावेज़, SVG, या json[] नहीं। translate-ui के समान -l, --force, --dry-run, और -j विकल्प।
proofread-ui
सारांश: ai-i18n-tools proofread-ui [-l <code>] [--chunk <n>] [--dry-run] [--json] [-j <n>]
पहले extract चलाता है (इसके लिए features.translateUIStrings आवश्यक है) ताकि strings.json स्रोत से मेल खाए, फिर स्रोत-स्थानीय UI स्ट्रिंग की LLM समीक्षा (वर्तनी, व्याकरण)। शब्दावली के संकेत केवल glossary.userGlossary CSV से आते हैं (translate-ui के समान दायरा — strings.json / uiGlossary नहीं, इसलिए खराब कॉपी को शब्दावली के रूप में सुदृढ़ नहीं किया जाता है)। सक्रिय LLM प्रदाता (उसका API-कुंजी env var) का उपयोग करता है।
विफलता पर 1 के साथ एग्ज़िट करता है (लापता फ़ीचर फ़्लैग, एक्सट्रैक्ट विफलता, लापता/अमान्य कैटलॉग, लापता API कुंजी, या जब सभी बैच विफल हो जाते हैं); जब रन सफलतापूर्वक पूरा हो जाता है तो 0 के साथ एग्ज़िट करता है (निष्कर्ष केवल सलाहात्मक होते हैं)। cacheDir के अंतर्गत proofread-ui-results_<timestamp>.log को एक मानव-पठनीय रिपोर्ट (सारांश, समस्याएँ, समीक्षा न की गई पंक्तियाँ, और प्रति-स्ट्रिंग OK पंक्तियाँ) के रूप में लिखता है; टर्मिनल केवल सारांश गणना और समस्याएँ प्रिंट करता है (प्रति स्ट्रिंग कोई [ok] पंक्तियाँ नहीं)। जो बैच विफल हो जाता है, या मॉडल प्रतिक्रिया जो बैच से छोटी होती है और जिसमें प्रत्येक स्लॉट पर कोई उपयोगी index नहीं होता, वह उन स्ट्रिंग्स को 'समीक्षा नहीं की गई' के रूप में गिनता है। उनकी समस्याओं को हटा दिया जाता है ताकि छोटी सरणी गलत स्ट्रिंग्स पर लागू न हो। अंतिम पंक्ति पर लॉग फ़ाइल नाम प्रिंट करता है। --json के साथ, मानव-शैली आउटपुट stderr पर जाता है। लिंक path:line का उपयोग करते हैं, ठीक वैसे ही जैसे डैशबोर्ड UI स्ट्रिंग्स लिंक बटन।
मुख्य विकल्प: -l / --locale, --chunk (डिफ़ॉल्ट 50), --dry-run, --json, -j / --concurrency
export-ui-xliff
सारांश: ai-i18n-tools export-ui-xliff [-l <codes>] [-o <dir>] [--untranslated-only] [--dry-run]
strings.json को XLIFF 2.0 में निर्यात करें (प्रति लक्ष्य स्थानीय एक .xliff)। केवल पढ़ने के लिए; कोई API नहीं।
मुख्य विकल्प: -l / --locale, -o / --output-dir, --untranslated-only, --dry-run
-o / --output-dir: आउटपुट डायरेक्टरी (डिफ़ॉल्ट: कैटलॉग के समान फ़ोल्डर)। --untranslated-only: उस स्थानीय के लिए अनुवाद गुम होने वाली इकाइयाँ ही।