कृपया इस प्रश्न की लंबाई का बहाना करें। मुझे स्पष्टीकरण देने के लिए दूसरों को मदद करने और जवाब देने के लिए सहायक योगदानकर्ताओं से बचने के लिए यह सब समझाने की आवश्यकता है।
एक पंक्ति में मेरी आवश्यकता: "तमिल वर्णों को ठीक से प्रदर्शित करने के लिए एक एंड्रॉइड फोन सक्षम करने के लिए"।
विस्तार: तमिल, किसी भी अन्य भारतीय भाषा की तरह जटिल चरित्र प्रतिपादन प्रणाली है। अंग्रेजी या अन्य लैटिन आधारित स्क्रिप्ट के विपरीत, इसमें एक से अधिक वर्णों से बना ग्लिफ़ (स्क्रीन में आप जो देखते हैं) है। एंड्रॉइड में ऐसी जटिल स्क्रिप्ट (अपवादों के साथ) रेंडर करने की क्षमता नहीं है। मेरा उद्देश्य यह जानना है कि मैं एंड्रॉइड फोन या टैबलेट को ऐसी क्षमता कैसे प्रदान कर सकता हूं।
छोटी पृष्ठभूमि जिसे मैंने अब तक इकट्ठा किया था: स्क्रीन में एक ग्लिफ़ प्रदर्शित करने के लिए, एंड्रॉइड को पहले एक उपयुक्त फ़ॉन्ट फ़ाइल की आवश्यकता होती है। एंड्रॉइड डिवाइस में एक फ़ोल्डर / सिस्टम / फोंट होता है, जिनमें से कुछ ही होते हैं। उस फ़ोल्डर में सबसे दिलचस्प फ़ाइल DroidSansFallback.ttf है। जैसा कि नाम से पता चलता है, जब एंड्रॉइड का सिस्टम सिस्टम फोंट में एक वर्ण खोजने में विफल रहता है (जो कि DroidSans.ttf या DroidSans-Bold.ttf आदि हो सकता है) यह DroidSansFallback.ttf में खोज करने के लिए वापस गिर जाता है।
पीसी (Latha.ttf या Lohit-Tamil.ttf - ये तमिल के लिए फोंट हैं) से एक उपयुक्त फ़ॉन्ट फ़ाइल को बदलकर और DroidSansFallback.ttf डिवाइस में तमिल वर्णों को प्रदर्शित करने में सक्षम करेगा। इसे बदलना इतना आसान नहीं है और इसमें डिवाइस को रूट करना और सिस्टम को राइटिंग के रूप में माउंट करना शामिल है।
उन परेशानियों के बावजूद, भले ही DroidSansFallback.ttf को बदल दिया जाए, जो तमिल वर्ण प्रदर्शित किए गए हैं, उन्हें ठीक से प्रस्तुत नहीं किया गया है। तमिल वर्ण "Tamil" दो वर्णों का एक संयोजन है और "" "के रूप में प्रदर्शित होने के बजाय, इसे बीच में बिना स्थान के" displayed "के रूप में प्रदर्शित किया जाएगा। हालांकि यह छोटे संदेशों को पढ़ने के लिए पर्याप्त है, इसका उपयोग पुस्तकों आदि को पढ़ने के लिए नहीं किया जा सकता है।
एंड्रॉइड 4.0 पर वार्डों से, तमिल और अन्य कुछ भाषाओं को ब्राउज़र के माध्यम से समर्थित किया जाता है जैसा कि एंड्रॉइड 4.x एपीआई अवलोकन में कहा गया है।
Support for Indic fonts (Devanagari, Bengali, and Tamil, including the complex
character support needed for combining glyphs) in WebView and the built-in Browser
ध्यान देने योग्य शब्द "WebView और अंतर्निहित ब्राउज़र" है, जिसका अर्थ है कि तमिल वर्णों को पूरी तरह से प्रस्तुत किया जाएगा यदि यह HTML सामग्री के रूप में प्रस्तुत किया गया है और अन्यथा प्रदान नहीं किया जाएगा। ओपेरा और अन्य कुछ ब्राउज़रों ने चरित्र के बजाय छवि को प्रतिस्थापित करके एंड्रॉइड 4.0 से पहले भी ऐसा किया था।
मैंने देखा कि कुछ उपकरण जो भारतीय बाजार को लक्षित करते हैं (उदाहरण के लिए: एलजी ऑप्टिमस वन, सैमसंग के अधिकांश फोन और टैबलेट) दोनों ब्राउज़र में और यहां तक कि ब्राउज़र से बाहर की जगहों जैसे संपर्क, पाठ संदेश, फ़ाइल नाम आदि में तमिल को ठीक से प्रदर्शित करने में सक्षम हैं। मेरे आश्चर्य के लिए वे ऐसा एंड्रॉइड 2.3 पर भी करते हैं। मैंने यह भी देखा कि एंड्रॉइड के समान संस्करण को चलाने वाले गैर-भारतीय देश को लक्षित करने वाला एक ही मॉडल तमिल वर्ण प्रदर्शन का समर्थन नहीं करता है।
इसने मुझे आगे की जांच करने के लिए बनाया और एक निष्कर्ष पर पहुंचा कि एंड्रॉइड (अन्य लिनक्स आधारित ओएस के रूप में) इस तरह के जटिल पात्रों को प्रदर्शित करने के लिए एक फ़ॉन्ट रेंडरिंग इंजन पर निर्भर करता है। दो इंजन जो मेरे सामने आए, वे हैं स्किआ और हर्फ़बज़। मैंने देखा कि एलजी स्किया का उपयोग करता है और सैमसंग इस क्षमता को लाने के लिए अपने उपकरणों में हार्फबज पुस्तकालयों का उपयोग करता है।
मुझे इन पुस्तकालयों और फोंट की जगह लेने का सुझाव देने वाली कई वेबसाइटें मिलीं। यह काम नहीं किया और ठंड में परिणाम। सौभाग्य से मैंने घड़ी की कल का उपयोग कर समर्थन किया और इसलिए मैंने अपना फोन बहाल किया।
हालाँकि मैंने इसे तमिल के साथ समझाया था, यह अधिकांश भारतीय भाषाओं के लिए लागू है।
यहाँ मेरा सवाल आता है (यदि आप अभी भी पढ़ रहे हैं;)) तो , अब तक यह स्पष्ट है कि वर्ण प्रदान करने के लिए एक टीटीएफ फ़ाइल मौजूद होनी चाहिए और उन्हें सही ढंग से प्रस्तुत करने के लिए एक उपयुक्त लाइब्रेरी (libskia.so या libharfbuzz.so) की आवश्यकता होती है। क्या किसी को पता है कि ये निर्माता कैसे क्षमता प्रदान करने में सक्षम हैं? मैं AOSP (Android Open Source Project) से अपनी खुद की ROM बनाने के लिए भी तैयार हूँ।