Wednesday, April 14, 2010

বাংলা ইউনিকোডের সহজ পাঠ

ইউনিকোডের উপকারিতা
১। সার্চ করার সুবিধা। ইউনিকোডে থাকলে সার্চ করতে ভীষন সুবিধা হয়। কেননা তখন পৃথিবী যেকোন সার্চ ইঞ্জিন যে কোন ভাবে সেটা খুঁজে বের করতে পারে। শুধুমাত্র সাইট স্পেসিফিক সার্চ ইঞ্জিনের উপর নির্ভর করতে হয় না।

২। যে কোন দেশের যে কোন ইউনিকোড কম্প্যাটিবল কম্পিউটারে বসে বাংলা দেখতে পাবেন যে কোন কেউ। তাই যে কোন যায়গায় গিয়ে ঠাস করে বাংলা ব্যবহার করা সুবিধা হবে। ধরুন আমি সিঙ্গাপুর এয়ারর্পোটে পাঁচ ঘন্টার জন্য আটকে গেছি। সেখানে যে কম্পিউটার দিয়েছে ফ্রি ব্যবহার করার জন্য সেখানে শুধু ব্রাউজ করা যায়। সেখানে কোন ফন্ট লোড করা যাবে না তা বলাই বাহুল্য।

৩। ই-মেইলে, যে কোন ডকুমেন্টে সহজে বাংলা ব্যাবহার করা যাবে। মনে করেন আপনি ফটোশপে বাংলা লিখতে চান। ফটোশপ নিশ্চয়ই আপনার জন্য তাদের সিস্টেমে বিজয় ঢোকাবে না। কিন্তু ইউনিকোডের সুবিধা ব্যবহার করে আপনি এখানে এটাকে সহজেই ব্যবহার করতে পারবেন। একটি কম্পিউটারে বিজয় থাকার তুলনায় ইউনিকোড থাকাটার সম্ভাবনা অনেক বেশী। কেননা ইউনিকোড সার্পোট করলে অনেক অনেক ভাষাকে সার্পোট করা হয়। তাই এখন অধিকাংশ সিস্টেমে এটা চলে আসছে।

৪। যেহেতু বাংলা ইংরেজী এবং অন্যান্য ভাষা মিশিয়ে ব্যবহার করা যায় তাই আপনি সহজে একে বিভিন্ন প্রোগ্রামে অর্ন্তভুক্ত অবস্থায় দেখতে পাবেন। নোটপ্যাডে ফন্ট না বদলে একই সঙ্গে বাংলা এবং ইংরেজী (এবং যে কোন ইউনিকোড লেখা) লেখা এবং দেখা সম্ভব (এবং স্বাভাবিক)। মনে করেন আপনি একটা ফাইল সেভ করবেন তার অর্ধেক নাম থাকবে বাংলায় অর্ধেক ইংরেজীতে এবং অর্ধেক আরবীতে - এটা শুধুমাত্র সম্ভব ইউনিকোডে, ফন্ট না বদলে।

ইউনিকোড উপস্থাপনা
আজ থেকে একশ বছর আগে কিভাবে পত্রিকা প্রকাশিত হত? তখনকার দিনে বিভিন্ন ভাষার বিভিন্ন ফন্ট এবং সাইজের জন্য বিভিন্ন বাক্স থাকত। মনে করুন ইংরেজীর জন্য বাক্স ক, বাংলার জন্য বাক্স খ, ইত্যাদি। তখন "black কাক" লিখতে তারা হরফ বসাতো পাশাপাশি এইভাবে: ক২,ক১২,... খ১,খ৩৪,খ১। মনে করুন কোন অক্ষরের পর কোন অক্ষর বসাবে এই ধারাটা নিয়ে একজন ভারতে গেল। কিন্তু ভারতের প্রকাশকরা খ বাক্স ব্যবহার করে হিন্দীর জন্য। তখন কি ভজঘট পাকিয়ে যাবে চিন্তা করুন।

unicode









ইউনিকোড কনসোর্টিয়াম নামের একটি প্রতিষ্ঠান করল কি এরকম বিভিন্ন ভাষার যত রকম বাক্স আছে, সব একসাথে একটা বড় বাক্সের অর্ন্তভুক্ত করল (চিত্র ১)। এতে করে "black কাক" লিখতে আপনাকে লিখতে হবে 2,12,...,10000,10034,10000 ইত্যাদি। এইভাবে একটি সার্বজনীন পদ্ধতি তৈরীর মাধ্যমে বিশ্বের যে কোন জায়গায় এটাকে "blackকাক" হিসেবেই চিনবে, অন্য কিছু নয়।

ইউনিকোড কিবোর্ড লেআউট
এখন মনে করুন সারা পৃথিবীর মোট পঞ্চাশ হাজার (ধরে নিন) অক্ষরের জন্য কিবোর্ডে একটি করে চাবি বসানো হল। তাহলে কিবোর্ডের সাইজ কি হবে? তাই কিবোর্ডে ভাষা পরিবর্তনের একটি প্রথা প্রর্বতন করা হল। এতে করে আপনি আপনার কিবোর্ড এর ভাষা পরিবর্তন করে একটি ভাষার উপর কাজ করতে পারবেন।

ইউনিকোড প্রবর্তনের সময় থেকে বিভিন্ন ভাষায় বিভিন্ন রকম সমস্যা দেখা দিতে লাগল। ইউনিকোড সময়ের সাথে সাথে সেগুলোর সমাধানও করে আসতে লাগল। যেমন আরবী ভাষার ডান-থেকে বাম দিকে লেখার সমস্যা, কিংবা চীনা ভাষার খাড়াখাড়ি লেখার সমস্যা ইত্যাদি। এশিয়ার ভাষাগুলোকে এজন্য জটিল ভাষা বা কম্প্লেক্স স্ক্রীপ্ট বলা হয়। আমি এখন শুধু মাত্র ইন্ডিক এবং বাংলা ভাষার ইউনিকোড ভিত্তিক সমস্যা গুলো আলোচনা করব।

সর্ট অর্ডার
কম্পিউটারের জন্য সর্ট এবং সার্চ করাটা খুব গুরুত্বপূর্ণ ব্যাপার। বলা যায় কম্পিউটারের ভিত্তি এই সর্টিং এবং সার্চিংয়ের উপরই দাঁড়িয়ে আছে। তাই অক্ষরগুলোকে এমন ভাবে উপস্থাপন করতে হবে যেন তা এই সর্টিং এবং সার্চিংয়ের বিপরীতে বাঁধা না হয়।সমস্যা হল, বাংলায় ক এর পর আসে খ, কিন্তু এদের মাঝখানে আবার কা, কু, কি এসব আসে। বিষয়টা আরো জটিল করতে আ-কার, ও-কার এসব অক্ষর আবার সামনে বসে। তাই ইউনিকোড কর্তা ব্যাক্তিরা ঠিক করলেন সর্ট অর্ডার ঠিক করার জন্য কোন 'কার' ব্যাঞ্জনবর্ণের আগে বসতে পারবে না।

এর ফলে কার দেখানোর যে সমস্যা তৈরী হবে তা অন্যভাবে সমাধান করা হবে।প্রাথমিক ইউনিকোডে 'কার' গুলো পরে বসত ঠিকই
কিন্তু তা স্ক্রীনে দেখানোর আগে কোন রকম ঠিকঠাক করা হত না। যার ফলে পুরোনো ইউনিকোড কম্পিউটারে 'কে' দেখবেন এভাবে 'ক ‌ে'।
ঠিক একই কারনে ও-কার কে একার এবং আকার হিসেবে না রেখে একটা স্বতন্ত্র অক্ষর হিসেবে স্থান দেয়া হয়েছে।

সঠিক ভাবে দেখানো
সর্ট অর্ডারতো ঠিক হলো। এখন এ-কার, ও-কার গুলোকে কিভাবে দেখানো হবে? তার উপর, এ-কারে যখন শব্দের মাঝখানে বসে তখন তার কোন মাত্রা থাকে না, আবার শব্দের শুরুতে যখন বসে তখন একটা মাত্রা থাকে। যুক্তাক্ষর গুলো স্বতন্ত্র কোন অক্ষর নয়। অথচ সেগুলো ঠিকঠাক মতো দেখাতে হবে।

অক্ষরগুলোকে নিয়ে ঠিকঠাক ভাবে দেখানোটাকে বলা হয় ক্যারেক্টার রেন্ডারিং। রেন্ডারিংয়ের মাধ্যমেই আসলে ক্যারেক্টার কোনটা কিভাবে বসবে সেটা ঠিক করা হয়।

খন্ড-ত ইস্যু
প্রাথমিক ইউনিকোডে খন্ড-ত কে স্বতন্ত্র অক্ষর হিসেবে ধরা হয় নি। একে ত-হস হিসেবে ধরা হয়েছিল। তাই যখনই ত-হসন্ত দেখা যেত তখনই সেটা ভুল ভাবে খন্ড-ত হয়ে যেত। সম্প্রতি খন্ড-ত কে আলাদা অক্ষরের মর্যাদা দেয়া হয়েছে। তাই ইউনিকোড ভিত্তিক নতুন ফন্টগুলোতে এই সমস্যার সমাধান দেখতে পাবেন।

রেফ এবং য-ফলা ইস্যু
র-হসন্তের পর কোন ব্যাঞ্জনবর্ণ আসলে সেটা ব্যাঞ্জনবর্ণের উপর রেফ হয়ে যায়। আবার ব্যাঞ্জনবর্ণের পর য-ফলা আসল সেটা ব্যাঞ্জনবর্ণের য-ফলা হয়। কিন্তু র-হসন্তের পর য-ফলা আসলে সেটা 'র্য' হতে পারে আবার 'র‌্য' ও হতে পারে। ডিফল্ট হিসেব এটা 'র্য' হিসেব বর্তমানে দেখানো হয়। এর সমাধান হিসেবে অনেকে দাবী করেছেন য-ফলাকে খন্ড-ত এর মত একটা আলাদা বর্ণ হিসেবে মর্যাদা দেয়া হোক। কিন্তু ইউনিকোড কর্তাব্যক্তিরা সেটা মানতে রাজি হননি।

এই সমস্যাটা আরো অনেক ইন্ডিক ভাষায় আছে। সবার জন্য নতুন অক্ষর ঢুকাতে গেলে এর মধ্যে বিশাল হয়ে যাওয়া ইউনিকোড আরো বিশাল হয়ে যাবে।ইউনিকোড কর্তাব্যক্তিরা এর একটা অন্য সমাধান দিয়েছেন। তার দুটো অক্ষর ব্যবহার করতে বলেছেন। একটা হলো, 'জোর করে জুড়ে দাও' - zero width joiner (ZWJ) এবং আরেকটি হল 'জোর করে জুড়ে দেয়া বিরত রাখ' - zero width non joiner (ZWNJ)। তাই র-হসন্ত-য কে র‌্য হিসেবে দেখতে র এর পর আপনাকে য-ফলার সাথে জুড়ে দেয়া বন্ধ করতে হবে। অর্থাৎ র-ZWNJ-হসন্ত-য টাইপ করতে হবে।

দাঁড়ি এবং ডাবল-দাঁড়ি ইস্যু (বানান ভুল লেখলাম কি?)
বাংলার ইউনিকোড প্রস্তাবনায় কোন দাঁড়ি নেই। ইউনিকোড কর্তা ব্যাক্তিরা সম্ভবত: আসামীয় বা অন্য কোন ভাষার 'ডান্ডা' ব্যবহার করতে পরামর্শ দিয়েছেন। এটা পছন্দ হয়নি বাঙ্গালী যারা ইউনিকোডের সাথে কাজ করছেন। তারা এখনও দাবী জানিয়ে যাচ্ছেন নিজেদের একটা দাঁড়ি এবং একটা ডবল-দাঁড়ির জন্য।

আশা করি এই পোস্ট আপনার অনেক 'কেন'র উত্তর দিবে।


(বিজ্ঞানী.কমে প্রথম প্রকাশিত)

No comments:

Post a Comment