06 December, 2007
अपने लिये फाण्ट परिवर्तक प्रोग्राम स्वयं लिखें
यूनिकोड के फायदे अब सब स्वीकारते हैं, सब जानते हैं। ऐतिहासिक रूप से कम्प्यूटर पर हिन्दी (और अन्य गैर-रोमन लिपीय भाषायें) बड़े टेढ़े-मेढ़े रास्ते तय करते हुए आयी। इसमें 'लिगेसी' फाण्ट का प्रयोग भी एक मुकाम था। शुशा, कृतिदेव, संस्कृत९९ और न जाने कितने फाण्ट प्रयोग होते थे। जितने लोग, उतने फाण्ट।
अच्छी बात ये है कि इन फाण्टों में ही बहुत सारी हिन्दी की उपयोगी सामग्री (कन्टेन्ट) सम्हालकर रखा हुआ है। जिनको यूनिकोड में बदकर अमर किया जा सकता है।
किसी भी हिन्दी फाण्ट परिवर्तक के मुख्यत: तीन भाग होते हैं -
१) पुराने (लिगेसी) संकेतों को संगत हिन्दी यूनिकोड संकेतों से प्रतिस्थापित करना
२) छोटी इ की मात्रा का स्थान बदलना
३) आधा र (अक्षरों के उपर लगने वाला र) का स्थान बदलना
कहने की जरूरत नहीं कि जो भी प्रोग्राम लिखा जायेगा, उसे इन तीनों कार्य करने पड़ेंगे।
पुराने संकेतों को यूनिकोड संकेतों से बदलना:
हर लिगेसी फाण्ट में हिन्दी के स्वरों, मात्राओं एवं ब्यंजनों के लिये कुछ कोड प्रयोग किया जाता है, जो अन्तत: एक संकेत के रूप में दिखता है। विभिन्न लिगेसी फाण्टों में ये संकेत कुछ समान होते हैं और ज्यादातर भिन्न। उदाहरण के लिये संस्कृत९९ मे लिगेसी फाण्ट के कुछ संकेत और यूनिकोड के संगत संकेत नीचे दिये गये हैं:
"k", "K", "Š", "o", "O", "g", "G", "¸"
"क", "क्", "क्", "ख", "ख्", "ग", "ग्", "घ"
छोटी इ की मात्रा की समस्या :
लिगेसी फान्टों में अधिकतर छोटी इ की मात्रा को निम्नलिखित उदाहरण से समझा जा सकता है:
दिन के लिये संस्कृत९९ में idn लिखा गया होगा.
क्लिष्ट को ikl;q लिखा गया होगा।
ध्यान दें कि छोटी इ की मात्रा के लिये i का प्रयोग किया जा रहा है और यह जिस वर्ण पर लगनी है उसके ठीक पहले या उसके एक स्थान और पहले (दूसरे उदाहरण में) हो सकती है। जबकि यूनिकोड में छोटी इ की मात्रा के लिये आने वाला कोड , उस व्यंजन के कोड के बाद आता है।
दिन = द का कोड + छोटी इ की मात्रा का कोड + न का कोड
स्थिति = स का कोड + हलन्त का कोड (स को आधा करने के लिये) + थ का कोड + छोटी इ की मात्रा का कोड + त का कोड + छोटी इ की मात्रा का कोड
आधे र की समस्या :
आधे र की समस्या, छोटी इ की समस्या के तरह ही, किन्तु इसके ठीक उल्टा है।
उदाहरण :
तर्क का संस्कृत ९९ मे कोड tkR है;
कर्ता का संकेत ktaR है।
स्पष्ट है कि लिखने में जिस ब्यंजन के उपर आधा र लगाया जाता है, उसके बाद, या उस पर लगी मात्राओं के बाद आधे र का संकेत आता है।
किन्तु यूनिकोड में आधे र की स्थिति अलग है। उच्चारण की दृष्टि से आधा र, उस ब्यंजन के पहले आता है, जिसके उपर इसे लगाया जाता है। इसी लिये यूनिकोड में आधे र का कोड भी उस ब्यंजन के पहले आता है।
उदाहरण :
तर्क = त का यूनिकोड + आधे र का यूनिकोड + क का यूनिकोड
कर्ता = क का यूनिकोड + आधे र का यूनिकोड + त का यूनिकोड + आ की मात्रा का यूनिकोड
संस्कृत९९ को यूनिकोड में बदलने का प्रोग्राम का सोर्स कोड इस फाइल को वर्डपैड में खोलकर या किसी अन्य तरीके से देखा जा सकता है।
और भी कई मुद्दे हैं जैसे - लिगेसी में किस अक्षर के लिये कौन सा संकेत प्रयुक्त हुआ है, कैसे जानें ; एच टी एम एल और जावास्क्रिप्ट के किन कमाण्डों का प्रयोग किस काम के लिये करें; प्रोग्राम का फ्लोचार्ट कैसा होगा .. आदि मुद्दे अगली पोस्टों में विचारे जायेंगे।
Subscribe to:
Post Comments (Atom)
6 comments:
अनुनाद जी मैं अपनी पुरानी समस्याओं का उल्लेख करना चाहता हूं. रेमिंगटन लेआउट में टाइप करते समय जब मैं मुशर्रफ लिखता हूं तो उसका यह हाल हो जाता है... मुशर्रु यानि र्र के बाद फ यदि एक फ्लो में लिख दूं तो र्रु बन जाता है...इसका क्या समाधान हो सकता है? इसी प्रकार यदि खिलाडि़यों लिखूं तो नहीं बनता. छोटी इ की मात्रा ड़ के पहले लगाना होती है. जब मैं की लेआउट बदलकर इसे ड़ के बाद लगाता हूं तो खिलाड़ियों सही आ जाता है. क्या इससे निपटने का कोई तरीका बता सकते हैं.
अनुनान भईया हमारी भी इस संबंध में एक समस्या है पूर्व में कृति एवं श्री लिपि फोन्ट में संग्रहित किसी लेख को रूपांतर से यूनिकोड परिर्वतित करने में कई कई शव्द रूपांतरित नहीं हो पात परिणामत: कई कई बार उस लेख के फ्रूफ रीडिंग में उतना ही समय लग जाता है जितने में उसे फिर से टाईप किया जा सकता है । इसका कोई निदान है क्या ।
संजय भाई,
आपकी समस्या फाण्ट-परिवर्तन की नहीं है। यह अलग समस्या है।
रेमिंगटन लेआउट में वांछित शब्द न लिख पाने के दो ही कारण हो सकते हैं:
१) आप जिस एडिटर या इन्पुट मेथड का प्रयोग कर रहे हैं, उसमें तार्किक त्रुटि है, जिसके कारण अक्षरों का कुछ कम्बिनेशन इन्पुट करना ही असम्भव है; या
२) आप जिस एडिटर का प्रयोग कर रहे हैं उसके कुछ नियमों/विधियों से अनभिज्ञ हैं /अवहेलना कर रहे हैं ।
मुझे खेद है कि मैं दोनो ही स्थितियों में आपकी मदद नहीं कर सकता क्योंकि मैं रेमिंगटन का प्रयोग भी नहीं करता और उस प्रोग्राम को भी मैं नहीं बदल सकता।
हाँ, आपके लिये यह सलाह दूँगा कि इस समस्या को चिट्ठाकार फोरम में पूरी जानकारी से साथ रखें, तो बहुत सम्भव है कि यह हल हो जाय।
संजीव भैया,
आपकी समस्या को मैं समझ सकता हूँ। स्पष्टत: यह परिवर्तित करने वाले प्रोग्राम की अपूर्णता के कारण होता है या उस प्रोग्राम में निहित कुछ तार्किक त्रुटियों के कारण है। यह दुखद है कि अनेकों ऐसे परिवर्तक प्रोग्राम हैं जो त्रुटिपूर्ण हैं या अपूर्ण काम करते हैं।
आपके लिये कुछ सुझाव इस प्रकार हैं:
१) एमएस वर्ड में 'मैक्रो' का एक फीचर प्रदान किया गया है। मैक्रो एक ऐसा प्रोग्राम है जो आमतौर पर मैनुअली किये जाने वाले श्रमसाध्य क्रियाओं को बताये हुए क्रम में स्वत: और शीघ्र कर देता है।
२) आप एक नया परिवर्तित्र खुद लिखें। मैं भी लिख सकता हूँ, पर देखना पड़ेगा कि श्रीलिपि के लिये मुझे कितना समय लगेगा।
३) प्रोग्राम के लेखक से निवेदन करें कि वे प्रोग्राम में सुधाकरकर इसे और अच्छा परिणाम देने वाला बनाये।
४) और खोजिये, हो सकता है कि कोई दूसरा परिवर्तक साफ़्टवेयर भी उपलब्ध हो।
आदरणीय अनुनाद जी, इस लेख के लिये बहुत बहुत आभार. आपने एक कठिन काम हाथ में लिया है, लेकिन इसका फायदा हम सब पाठकों को होगा.
जिस तरह आपने पाठ 1 लिखा है उस तरह इस विषय पर आज तक मैं ने कुछ भी नहीं देखा है. अत: मुझे पूरी उम्मीद है कि (चाहे मैं परिवर्तक बनाऊं या न) आपकी यह लेखन परम्परा जैसे जैसे आगे बढेगी वैसे वैसे मुझे कई चीजों का मर्म समझ में आ जायगा जो आज तक मेरे लिये "ग्रीक" था !!
-- शास्त्री
हिन्दी ही हिन्दुस्तान को एक सूत्र में पिरो सकती है.
हर महीने कम से कम एक हिन्दी पुस्तक खरीदें !
मैं और आप नहीं तो क्या विदेशी लोग हिन्दी
लेखकों को प्रोत्साहन देंगे ??
अनुनाद जी,
यह लेख शृंखला प्रयोक्ताओं के लिए बहुत उपयोगी सिद्ध होगी । भारत में कई लोग ऐसे हैं जो अभी भी Windows 98 का प्रयोग करते हैं । ऐसी हालत में यूनिकोड से पुराने फोण्ट में बदलने के लिए परिवर्तित्र की बहुत आवश्यकता है । एक प्रकाशक ने तो बताया कि वे WALKMAN फोण्ट का प्रयोग करते हैं । मैंने तो इस फोण्ट का नाम पहले कभी नहीं सुना । यह फोण्ट मुझे ऑनलाइन कहीं नहीं मिला ।
आपके लेख से मुझे बहुत आशा बँधी है कि मैं खुद परिवर्तित्र तैयार करने हेतु प्रोग्राम लिखना चालू करूँगा ।
Post a Comment