Langsys कैसे काम करता है
Langsys आपके UI में पहले से मौजूद वाक्यों को ही अनुवाद प्रणाली बना देता है। मेंटेन करने के लिए कोई कीज़ फ़ाइल नहीं है और बिल्ड-टाइम पर एक्सट्रैक्शन का कोई चरण नहीं — आपके कोड में मौजूद वाक्यांश ही लुकअप की कुंजी भी है और बेस-भाषा का डिफ़ॉल्ट भी।
वाक्यांश ही कुंजी है
पारंपरिक i18n में आप हर स्ट्रिंग के लिए एक आइडेंटिफ़ायर गढ़ते हैं, असली टेक्स्ट को लोकेल फ़ाइल में रखते हैं, और दोनों को हमेशा के लिए सिंक में रखते हैं। Langsys यह बीच की कड़ी हटा देता है: आप असली वाक्य लिखते हैं, और वही वाक्य कुंजी होता है।
// Traditional i18n — indirection + a keys file to maintain
t('greetings.hello'); // what does this say? open en.json to find out
// en.json
{ "greetings": { "hello": "Hello, {name}!" } } // Langsys — the phrase IS the key and the base-language default
t('Hello, {name}!', 'Greetings', { name }); चूँकि स्रोत टेक्स्ट ही कुंजी है, इसलिए आपके ऐप में कहीं भी लिखा गया एक ही वाक्यांश एक ही अनुवाद-योग्य प्रविष्टि होता है — डुप्लीकेट अपने-आप हट जाते हैं — और जिस लोकेल का अभी अनुवाद नहीं हुआ है, वह बस स्रोत टेक्स्ट पर लौट आता है। यहाँ "कुंजी गायब है" जैसा कोई प्लेसहोल्डर नहीं होता।
रीयलटाइम और निरंतर
आपको कभी एक्सट्रैक्शन कमांड चलाने की ज़रूरत नहीं पड़ती। आपका ऐप जैसे-जैसे रेंडर होता है, SDK उसमें इस्तेमाल होने वाले वाक्यांश खोज लेता है। नए वाक्यांशों का बैकग्राउंड में आपके प्रोजेक्ट के लक्ष्य लोकेल में मशीन अनुवाद हो जाता है, और आपका ऐप तैयार कैटलॉग फ़ेच कर लेता है। आज ही कोई नया वाक्य जोड़ें; थोड़ी देर बाद उसका अनुवाद तैयार हो जाता है, लोकेल बंडल को दोबारा डिप्लॉय करने की ज़रूरत नहीं।
लाइफ़साइकिल
- आपका UI वाक्यांशों को
t(),<Translate>और इसी तरह के अन्य टूल से रेंडर करता है। - डेवलपमेंट में, राइट की SDK को नए फ़्रेज़ खोजने और रजिस्टर करने देती है।
- Langsys इन्हें आपके प्रोजेक्ट की हर टारगेट लोकेल में मशीन से अनुवादित कर देता है।
- प्रोडक्शन में, एक रीड-ओनली कुंजी उपयोगकर्ता की लोकेल के लिए तैयार कैटलॉग प्राप्त करती है।
- लोकेल बदलें और पूरा UI अनुवादित होकर तुरंत फिर से रेंडर हो जाता है — बिना रीलोड के।
पारंपरिक i18n की तुलना में। हाथ से संपादित करने के लिए कोई en.json नहीं, कोई t('some.nested.key') जैसा अप्रत्यक्ष संदर्भ नहीं, आपके बिल्ड में कोई एक्सट्रैक्शन चरण नहीं, और कोई मिसिंग-की फ़ॉलबैक नहीं — मूल वाक्य ही हमेशा फ़ॉलबैक होता है।