इंडिक पात्रों के जटिल प्रतिपादन को प्रदर्शित करने के लिए एक एंड्रॉइड डिवाइस कैसे बनाएं?


42

कृपया इस प्रश्न की लंबाई का बहाना करें। मुझे स्पष्टीकरण देने के लिए दूसरों को मदद करने और जवाब देने के लिए सहायक योगदानकर्ताओं से बचने के लिए यह सब समझाने की आवश्यकता है।

एक पंक्ति में मेरी आवश्यकता: "तमिल वर्णों को ठीक से प्रदर्शित करने के लिए एक एंड्रॉइड फोन सक्षम करने के लिए"।

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

छोटी पृष्ठभूमि जिसे मैंने अब तक इकट्ठा किया था: स्क्रीन में एक ग्लिफ़ प्रदर्शित करने के लिए, एंड्रॉइड को पहले एक उपयुक्त फ़ॉन्ट फ़ाइल की आवश्यकता होती है। एंड्रॉइड डिवाइस में एक फ़ोल्डर / सिस्टम / फोंट होता है, जिनमें से कुछ ही होते हैं। उस फ़ोल्डर में सबसे दिलचस्प फ़ाइल 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 बनाने के लिए भी तैयार हूँ।


CyanogenMod में ग्रंथों के दाएं से बाएं प्रतिपादन को प्रदर्शित करने की क्षमता है। ग्राफिक्स के प्रतिपादन के लिए स्किया मानक है। परिणाम अलग-अलग होंगे, एक रोम से एक स्कीया लाइब्रेरी ले जाना और इसे दूसरे में डालना भयावह हो सकता है क्योंकि इसमें AOSP स्रोत लेने से खरोंच से निर्माण की आवश्यकता होगी, और Skia को harfbuzz और recompile (आप बस "ड्रॉप" में नहीं छोड़ सकते हैं) harfbuzz किसी अन्य ROM में, जो उस लायब्रेरी के साथ नहीं बनाया गया है - लायब्रेरीज़ में लिंक किए गए हैं, इसलिए यदि रोम का निर्माण harfbuzz से अनजान है, तो यह काम नहीं करेगा)
t0mm13b

1
@narayanan किसी कारण से, साइट m.oneindia.in/tamil Android 4.1.2 पर क्रोम में पूरी तरह से तमिल प्रस्तुत करता है। यह वेबसाइट सही ढंग से क्या कर रही है कि दूसरों को नहीं है?
FMFF

जवाबों:


9

मोबाइल रूट करना

फ़ोल्डर के अंतर्गत Android /system/fontsमें "DroidSansFallback.ttf" नाम की एक फ़ाइल होती है, जिसमें सभी भाषा वर्ण शामिल होते हैं। वर्तमान में इसमें तमिल सहित कई लोगों के समर्थन का अभाव है।

कोई हमेशा फ़ाइल को तमिल वर्णों के साथ बदल सकता है, इस प्रकार आपके फ़ोन पर तमिल का उपयोग करने की अनुमति देता है।

से XDA डेवलपर्स थ्रेड - DroidSans निवर्तन इंडिक फ़ॉन्ट , उन की कोशिश की है और सफलतापूर्वक अपने फोन पर तमिल इस्तेमाल किया।

इस विधि को पूरा करने के लिए, आपको अपने फ़ोन पर रूट एक्सेस की आवश्यकता है, ताकि /systemफ़ॉलबैक फ़ाइल को एक्सेस करने और बदलने के लिए:

  • पढ़ें मैं अपने डिवाइस को कैसे रूट करूं? यदि आपका फोन अभी तक रूट नहीं किया गया है।
  • फ़ाइल को बदलने का तरीका देखने के लिए XDA Developers थ्रेड का पालन ​​करें :

    Using and Android SDK environment:
    
    First Copy the DroidSansFallback.ttf file into your sdcard,
    then issue the following commands:
    
    adb shell
    su
    mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
    cd /sdcard
    busybox cp DroidSansFallback.ttf /system/fonts
    mount -o ro,remount -t yaffs2 /dev/block/mtdblock3 /system
    exit
    exit
    
    Lastly, rebooted the phone
    

    नोट: आरोह बिंदु सभी फ़ोनों के लिए समान नहीं है।


Android APP

हालांकि उपरोक्त विधि कुछ उपयोगकर्ताओं के लिए अपील कर सकती है, मैं उपलब्ध होने पर एक एपीपी पसंद करता हूं।

इसके अलावा, तमिल में कुल 247 वर्णों वाला एक कीबोर्ड है, जबकि अंग्रेजी को केवल 26 की आवश्यकता है। इसलिए टाइप करते समय यह एक बड़ी समस्या बन जाती है:

देखें लेखन प्रणाली - विकिपीडिया :: तमिल भाषा

वर्तमान तमिल लिपि में १२ स्वर, १ants व्यंजन और एक विशेष वर्ण, शब्द है। स्वर और व्यंजन मिलकर कुल २४ow वर्ण बनाते हैं, कुल २४ (वर्ण (१२ + १ 1 + १ + (१२ x १ ())


कृष्ण के लिए धन्यवाद, और इस विषय पर काम कर रहा है, दोनों मुद्दों से निपटने के लिए पहले से ही एक एपीपी उपलब्ध है, तमिल का सिस्टम व्यापक उपयोग, और एक कीबोर्ड जिसे तमिल वर्ण टाइप करने के लिए उपयोग किया जा सकता है।

Android के लिए कृष्ण की पोस्ट शीर्षक तमिल यूनिकोड फ़ॉन्ट - इस समाधान के विकास के बारे में विस्तृत जानकारी के लिए काम करना

संक्षेप में

Krishan ने Google Play पर दो APPs विकसित और प्रकाशित किए जो तमिल में संपूर्ण Android OS होने की समस्या से पूरी तरह से निपटते हैं:


4
मैंने पहले ही उल्लेख किया था कि फॉन्ट की जगह केवल एक आंशिक समाधान है जो केवल गैर-संयुग्मित वर्णों को प्रदर्शित करेगा और कनैक्ट वर्णों को ठीक से प्रस्तुत नहीं किया जाएगा। और ऐप के संबंध में दूसरा समाधान मेरे लिए एक स्वीकृत समाधान नहीं है। यह अंग्रेजी में टाइप करके तमिल पाठ की रचना करने का तरीका प्रदान करता है और उदाहरण के रूप में वेब पृष्ठों को परिवर्तित करना और उद्धृत करना स्वीकार्य नहीं है जैसा कि मैंने पहले ही अपनी उम्मीद में कहा था। किसी भी तरह से आपके प्रयासों और समय के लिए धन्यवाद।
नारायणन

3

आप Android में एक ज्ञात बग 4153 समस्या का वर्णन करते हुए दिखाई देते हैं ।

इस मुद्दे को जेली बीन में हल किया गया है। यदि यह स्क्रीनशॉट सही है, तो समस्या को हल किया जाना चाहिए। (मैं वास्तव में खुद को नहीं बता सकता, लेकिन मेरे पास जेली बीन तक पहुंच है और इससे स्क्रीनशॉट ले सकते हैं।)

यूनिकोड के लिए आईसीएस टेस्ट पेज


1
धन्यवाद, यह सिर्फ एक बग नहीं है जैसा कि मैंने कहा था कि निर्माता से कुछ प्रकार के हस्तक्षेप के साथ तमिल प्रतिपादन एंड्रॉइड 2.3.3 फोन में भी काम कर रहा है।
नारायणन

1
20 जुलाई 2012 को, मैं Google के gDays में उपस्थित हुआ और जिसमें मैंने देखा कि Android JellyBean 4.1 ने तमिल वर्णों को ब्राउज़र से बाहर भी प्रदर्शित किया था। दुर्भाग्य से मैं कुछ और परीक्षण नहीं कर सका।
नारायणन

प्रश्न पर एक टिप्पणी के साथ android.stackexchange.com/questions/26797/… मैं कहूंगा कि मैं थिंकफ्री ऑफिसियल मोबाइल के माध्यम से वेब पेज, टेक्स्ट फाइल, एसएमएस, कॉन्टैक्ट, फाइल नेम, DOCX फाइल में तमिल पढ़ने में सक्षम हूं। मैंने देखा कि तेलुगु, कन्नड़, बंगाली और हिंदी के लिए भी यही होना चाहिए।
नारायणन

1

ओपेरा मिनी वेब ब्राउज़र स्थापित करें

ओपेरा मिनी वेब ब्राउज़र में "के बारे में: कॉन्फ़िगर"

जटिल स्क्रिप्ट के लिए बिटमैप फ़ॉन्ट का उपयोग करें: हां का चयन करें

आप किसी भी ब्रांड के मोबाइल फोन में सभी साइटों को तमिल फ़ॉन्ट में देख सकते हैं

सादर


5
यह ब्राउज़र-आंतरिक बिटमैपिंग है और ओएस-वाइड समाधान नहीं है (उदाहरण के लिए, आप एसएमएस में तमिल या अन्य इंडिक वर्ण टाइप या देख नहीं पाएंगे)। Btw, आपने जो सुझाव दिया है वह मुख्य पोस्ट में पहले ही उल्लेख किया गया है:> "ओपेरा और अन्य कुछ ब्राउज़रों ने चरित्र के बजाय छवि को प्रतिस्थापित करके एंड्रॉइड 4.0 से पहले भी ऐसा किया था।"

0

आपको एंड्रॉइड सिस्टम पर फ़ॉन्ट को रूट करने और बदलने की आवश्यकता नहीं है।

देवनागरी फ़ॉन्ट को सही ढंग से प्रस्तुत करने के लिए अपने डिवाइस के फर्मवेयर को समान भारतीय क्षेत्र के फर्मवेयर से बदलें। अन्य क्षेत्रों के फर्मवेयर देवनागरी फोंट को सही ढंग से प्रस्तुत नहीं करते हैं। देवनागरी फोंट भारतीय क्षेत्र के Android संस्करण 2.x पर सही ढंग से प्रस्तुत करते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.