मैंने 12 भाषाएँ कैसे सीखीं - एक रात में

मशीन लर्निंग से नवीनतम और कुछ चतुर कैशिंग का उपयोग करना

भाषाओं के लिए एक लंबा रास्ता

मैं पिछले कुछ समय से एक ऐसे विचार के इर्द-गिर्द घूम रहा हूं जो दिलचस्प होने के साथ-साथ चुनौतीपूर्ण भी लग रहा था: जितना संभव हो उतना कम रखरखाव के साथ मेरे वेब ऐप के लिए बहु-भाषा समर्थन प्राप्त करने के लिए क्या आवश्यक होगा? लागतों को एक मुख्य बाधा के रूप में देखते हुए (यह साइट किसी भी विज्ञापन की सेवा नहीं करती है और किसी भी ट्रैकिंग का उपयोग नहीं करती है, इसलिए यहां कोई आवक राजस्व नहीं है), एक वैध समाधान कैसा दिखेगा?

योजना

सब कुछ अनुवाद इंजन के उपयोग के साथ शुरू और समाप्त होता है। मेरे दैनिक ड्राइवरों में से एक के रूप में उबंटू का उपयोग करने के लिए धन्यवाद, मैंने एक बार "आर्गोस ट्रांसलेशन" नामक ऐप स्टोर में एक अच्छा सा ऐप खोजा, जो कि नवीनतम एमएल-मॉडल पर बनाया गया एक ओपन सोर्स ट्रांसलेशन इंजन है जो कि पावर डीपएल के समान है। . यदि आप डीपएल को नहीं जानते हैं, तो यह उनकी वेबसाइट पर मुफ्त में उपयोग करने के लिए एक बेहतरीन अनुवादक है।

लेकिन वापस Argos के लिए: संबंधित भंडार पर एक नज़र डालने के बाद मैंने देखा कि एक OSS python-lib भी उपलब्ध है, जो एक स्व-होस्ट किए गए वातावरण में अच्छी तरह से फिट होगा। थोड़े समय के लिए घूमने के बाद, मैंने सास ऑफ़र के माध्यम से कुछ अनुवादकों को देखने का फैसला किया, क्योंकि आर्गोस अनुवाद की पूरी किस्त प्रक्रिया वास्तव में उतनी अच्छी तरह से काम नहीं कर रही थी जितनी मुझे उम्मीद थी।

इसलिए मैंने एक अन्य सेवा, जीसीपी से क्लाउड ट्रांसलेशन पर सेट किया है जो प्रति माह 500,000 वर्ण मुफ्त में प्रदान करता है और फिर प्रत्येक 1,000,000 के लिए कुछ पैसे लेता है।

यह सब कैशिंग के बारे में है

आईएसजी (इंक्रीमेंटल साइट जेनरेशन) के साथ नेक्स्ट.जेएस के सेटअप के लिए धन्यवाद, मैं प्रत्येक पृष्ठ के लिए ऑन-डिमांड अनुवादों को कॉल कर सकता हूं, जो कि योजना को काफी सरल बनाता है क्योंकि सभी अनुवादों के साथ एक बार में एक भी तैनाती को पूरा नहीं करना पड़ता है।

फिर भी मैं इस बारे में निश्चित नहीं था कि अनुवादित स्ट्रिंग्स के कैशिंग को कैसे संभालना है। ज़रूर, वर्सेल का एज नेटवर्क (जहाँ यह PWA होस्ट किया गया है) इस कार्य का पूरी तरह से लाभ उठा सकता है। लेकिन मैं चाहता था कि तैनाती अनुवादों से स्वतंत्र हो। यही कारण है कि मैंने एक साधारण फायरस्टोर इंस्टेंस के माध्यम से कैशिंग की एक अतिरिक्त परत बनाई, जिसे जीसीपी पर भी होस्ट किया गया।

हर लेख के लिए ब्लॉक सामग्री को पार्स करना + बदलना सबसे बड़ी चुनौती थी। यदि आप नहीं जानते हैं। ब्लॉक सामग्री लेख के वास्तविक भाग का वर्णन करती है, जो मेरे द्वारा एक सीएमएस में बनाया जाता है। अनुवाद करने पर, वे ब्लॉक सादे पाठ में नहीं होते हैं, बल्कि प्रत्येक एक विशेष डेटा संरचना में एम्बेडेड होते हैं ताकि अर्थ संबंधी जानकारी या मेटाडेटा के भंडारण की अनुमति मिल सके। केवल प्रासंगिक स्ट्रिंग्स का विश्वसनीय रूप से पता लगाना + अनुवाद करना इस कार्यान्वयन के बड़े हिस्सों में से एक था।

एक आदमी, १२+ भाषाएँ

समर्थित भाषाएँ (वर्तमान में) हैं:

  • "एन": अंग्रेज़ी
  • "डी": जर्मन
  • "एफआर": फ्रेंच
  • "एस": स्पेनिश
  • "ईओ": एस्पेरान्तो
  • "एल": ग्रीक
  • "जा": जापानी
  • "आरयू": रूसी
  • "हाय": हिंदी
  • "वह": हिब्रू
  • "ट्र": तुर्की
  • "एएफ": अफ्रीकी
  • "आर": अरबी
  • "को": कोरियाई

विभिन्न प्रकारों का परीक्षण करने के लिए, आधार url के बाद भाषा कोड को सरल रखें। उदाहरण के लिए: "https://flaming.codes/fr"। और बस!

मेरे कार्यान्वयन को सारांशित करते हुए, सेटअप इस तरह दिखता है:

  • प्रत्येक पृष्ठ कम से कम हर 4 घंटे में स्थिर रूप से निर्मित होता है, लेकिन केवल मांग पर; इसका मतलब है कि किसी साइट के लिए हर 4 घंटे में एक नया अनुवाद कार्य किया जाता है
  • अनुवाद स्वयं पहले फायरस्टोर से लोड हो जाते हैं; केवल अगर कुछ भी उपलब्ध नहीं है, तो स्ट्रिंग्स का अनुवाद किया जाता है + फायरस्टोर में कैश किया जाता है

यह सेटअप इतना अच्छा काम करता है कि मैं क्लासिक तरीके से किसी भी अनुवाद का उपयोग नहीं करूंगा, उदा। मैन्युअल रूप से जोंस-फाइलें बनाना जो की-वैल्यू-जोड़े को रखते हैं। मैं क्लाउड ट्रांसलेशन एपीआई का उपयोग हर उस चीज़ के लिए करूँगा जिसका अंतर्राष्ट्रीयकरण करने की आवश्यकता है, जिससे यह पूरी तरह से गतिशील हो जाए। इन परिवर्तनों के लिए धन्यवाद, PWA के पास लेखन के समय लगभग 430 पृष्ठ हैं।

प्रत्येक पृष्ठ का अंग्रेजी से 13 अन्य भाषाओं में अनुवाद किया जाता है, जो सबसे अधिक बोली जाने वाली भाषाओं के साथ-साथ उनके बीच दुनिया भर में स्थित हैं। आइए देखें कि यह कैसे विकसित होगा!

  • Tom

सुझाव

संबंधित

परिशिष्ट

भाषाएँ