ইউনিকোডের অভিযাত্রা এবং বাংলার চ্যালেঞ্জ

ইউনিকোডের অভিযাত্রা এবং বঙ্গভাষার চ্যালেঞ্জ

পীযূষকান্তি বিশ্বাস


আজ আমরা যে ডিজিটাল বিশ্বে বাস করি, সেখানে বাংলা বা অন্য কোনো ভারতীয় ভাষায় লেখা, পড়া বা তথ্য আদান-প্রদান করা এক সাধারণ ঘটনা। স্মার্টফোনের পর্দায় ভেসে ওঠা বাংলা নিউজফিড, কম্পিউটারে টাইপ করা বাংলা ই-মেইল বা ওয়েবসাইটে বাংলায় লেখা ব্লগ—এই সবকিছুই আমাদের দৈনন্দিন জীবনের এক অবিচ্ছেদ্য অংশ। কিন্তু এই সহজলভ্যতার পেছনে রয়েছে এক দীর্ঘ এবং জটিল সংগ্রামের ইতিহাস। একটা সময় ছিল যখন কম্পিউটারের জগৎ ছিল মূলত ইংরেজি ভাষার দখলে। ভারতীয় ভাষাগুলোর জন্য ডিজিটাল মাধ্যমে নিজেদের অস্তিত্ব টিকিয়ে রাখাই ছিল এক বিরাট চ্যালেঞ্জ। এই চ্যালেঞ্জ মোকাবিলার সবচেয়ে সফল এবং বৈপ্লবিক সমাধান হিসেবে আবির্ভূত হয়েছিল ইউনিকোড (Unicode)।

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

প্রথম পর্ব: প্রাক-ইউনিকোড যুগ  

ইউনিকোডের গুরুত্ব বোঝার জন্য আমাদের ফিরে তাকাতে হবে সেই সময়ে, যখন কম্পিউটার কেবল একটি ভাষাই বুঝত—ইংরেজি। এই সময়টাকে ‘প্রাক-ইউনিকোড যুগ’ বলা যেতে পারে, যা ছিল মূলত বিশৃঙ্খলা আর সীমাবদ্ধতায় ভরা।

১. অ্যাস্কি (ASCII) এবং তার সীমাবদ্ধতা:

কম্পিউটারের একেবারে গোড়ার দিকে, তথ্য বিনিময়ের জন্য একটি স্ট্যান্ডার্ড তৈরি করা হয়েছিল, যার নাম ‘আমেরিকান স্ট্যান্ডার্ড কোড ফর ইনফরমেশন ইন্টারচেঞ্জ’ বা ASCII। এটি ছিল একটি ৭-বিটের এনকোডিং সিস্টেম, যার অর্থ হলো এটি মাত্র ১২৮টি (2⁷) ভিন্ন ভিন্ন অক্ষর বা চিহ্নকে শনাক্ত করতে পারত। এর মধ্যে ইংরেজি বর্ণমালার বড় হাতের (A-Z) ও ছোট হাতের (a-z) অক্ষর, সংখ্যা (0-9) এবং কিছু যতিচিহ্ন ও কন্ট্রোল ক্যারেক্টার অন্তর্ভুক্ত ছিল। পরবর্তীতে ৮-বিটের এক্সটেন্ডেড অ্যাস্কি (Extended ASCII) এলেও তাতে কেবল ২৫৬টি (2⁸) অক্ষরের স্থান ছিল।

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

২. ফন্ট-ভিত্তিক এনকোডিং-এর যুগ:

চাহিদা যেহেতু ছিল, তাই প্রযুক্তিবিদরা বিভিন্ন ‘জোড়াতালি’ বা অস্থায়ী সমাধান বের করার চেষ্টা করলেন। এর মধ্যে সবচেয়ে জনপ্রিয় ছিল ফন্ট-ভিত্তিক এনকোডিং। এই পদ্ধতিতে, একটি নির্দিষ্ট ফন্ট তৈরি করা হতো যা অ্যাস্কি কোড পয়েন্টগুলোর ওপর বাংলা বা অন্য কোনো ভারতীয় অক্ষরের ‘ছবি’ (Glyph) বসিয়ে দিত।

উদাহরণস্বরূপ, ধরা যাক ‘ক’ অক্ষরটি টাইপ করতে হবে। একটি নির্দিষ্ট ফন্ট (যেমন: বাংলাদেশে বহুল ব্যবহৃত ‘সুতন্বীএমজে’ বা ভারতে ব্যবহৃত ‘ডিভিসিরিজি’) হয়তো ইংরেজি ‘j’ অক্ষরের অ্যাস্কি কোড পয়েন্টের ওপর ‘ক’ অক্ষরের ಚಿತ್ರ বসিয়ে দিত। ফলে ব্যবহারকারী যখন ‘j’ কী চাপতেন, পর্দায় ‘ক’ দেখা যেত। বাহ্যিকভাবে মনে হতো বাংলা লেখা হচ্ছে, কিন্তু কম্পিউটারের কাছে তা ছিল অর্থহীন কিছু ইংরেজি অক্ষর বা চিহ্নের সমাবেশ।

এই পদ্ধতির সমস্যা ছিল মারাত্মক:

আন্তঃকার্যকারিতার অভাব (Lack of Interoperability): একজন ব্যবহারকারী যদি ‘সুতন্বীএমজে’ ফন্ট ব্যবহার করে একটি ডকুমেন্ট তৈরি করতেন, তবে অন্য কোনো ব্যবহারকারীর কম্পিউটারে সেই ফন্টটি ইনস্টল করা না থাকলে লেখাটি পড়া যেত না। এর বদলে কিছু অর্থহীন ইংরেজি অক্ষর (যেমন: Avi, e¨v, †mvbvi evsjv) দেখা যেত। অর্থাৎ, তথ্যের বিনিময় ছিল প্রায় অসম্ভব।

সার্চিং, সর্টিং এবং ডেটা প্রসেসিং-এর অক্ষমতা: যেহেতু কম্পিউটার লেখাটিকে বাংলা হিসেবে চিনত না, তাই কোনো বাংলা শব্দ দিয়ে টেক্সট সার্চ করা, বর্ণানুক্রমিকভাবে সাজানো (Sorting) বা ডেটাবেসে তথ্য বিশ্লেষণ করা যেত না। গুগল বা অন্য কোনো সার্চ ইঞ্জিন এই ধরনের টেক্সটকে ইন্ডেক্স করতে পারত না।

ওয়েব এবং ইন্টারনেটে সমস্যা: ওয়েবসাইটে বাংলা টেক্সট দেখাতে হলে, পাঠককে সেই নির্দিষ্ট ফন্টটি ডাউনলোড এবং ইনস্টল করতে হতো, যা ছিল একটি অত্যন্ত ঝামেলার প্রক্রিয়া। এর ফলে ইন্টারনেটে বাংলা ভাষার ব্যবহার ছিল অত্যন্ত সীমিত।

৩. ইস্কি (ISCII) কোডের জন্ম:

এই বিশৃঙ্খল পরিস্থিতি থেকে বেরিয়ে আসার জন্য ভারত সরকার একটি গুরুত্বপূর্ণ পদক্ষেপ গ্রহণ করে। ১৯৮০-এর দশকে ডিপার্টমেন্ট অফ ইলেকট্রনিক্স (DoE) একটি অভিন্ন কোডিং স্ট্যান্ডার্ড তৈরির উদ্যোগ নেয়, যার ফলস্বরূপ জন্ম হয় ‘ইন্ডিয়ান স্ক্রিপ্ট কোড ফর ইনফরমেশন ইন্টারচেঞ্জ’ বা ISCII-এর। ১৯৮৩ সালে এর প্রথম খসড়া প্রকাশিত হয় এবং ১৯৯১ সালে এটি চূড়ান্ত রূপ লাভ করে।

ইস্কি ছিল একটি ৮-বিটের কোডিং ব্যবস্থা, যা ভারতের প্রধান দশটি লিপিকে (দেবনাগরী, বাংলা, গুরুমুখী, গুজরাটি, ওড়িয়া, তামিল, তেলুগু, কন্নড়, মালয়ালম এবং অসমীয়া) একটি অভিন্ন কোড কাঠামোর মধ্যে নিয়ে আসে। এর মূল ভিত্তি ছিল ব্রাহ্মী লিপির ধ্বনিতাত্ত্বিক গঠন। ইস্কির একটি অসাধারণ বৈশিষ্ট্য ছিল এর ট্রান্সলিটারেশন বা লিপ্যন্তরের সুবিধা। যেহেতু সমস্ত ভারতীয় লিপির মূল ধ্বনিতাত্ত্বিক কাঠামো প্রায় এক, তাই ইস্কিতে লেখা যেকোনো ভারতীয় ভাষার টেক্সটকে সহজেই অন্য একটি ভারতীয় লিপিতে রূপান্তরিত করা যেত।

ইস্কি নিঃসন্দেহে একটি যুগান্তকারী পদক্ষেপ ছিল এবং এটি ভারতীয় ভাষাগুলোর জন্য একটি অভিন্ন ডিজিটাল প্ল্যাটফর্মের সম্ভাবনা তৈরি করেছিল। কিন্তু এর কিছু সীমাবদ্ধতাও ছিল। এটি একটি জাতীয় স্ট্যান্ডার্ড ছিল, আন্তর্জাতিক নয়। ফলে, আন্তর্জাতিক সফটওয়্যার বা অপারেটিং সিস্টেমে এর গ্রহণযোগ্যতা ছিল সীমিত। তাছাড়া, ততদিনে বিশ্বজুড়ে একটি একক, সার্বজনীন কোডিং সিস্টেমের প্রয়োজনীয়তা তীব্রভাবে অনুভূত হতে শুরু করেছিল। ইস্কির অর্জিত জ্ঞান এবং কাঠামো পরবর্তীকালে ইউনিকোড তৈরিতে একটি গুরুত্বপূর্ণ ভিত্তি হিসেবে কাজ করেছিল।

দ্বিতীয় পর্ব: ইউনিকোডের জন্ম – এক বিশ্বের, এক কোড

নব্বইয়ের দশকের শুরুতে কম্পিউটার জগৎে এক নীরব বিপ্লবের সূচনা হয়, যার নাম ইউনিকোড। এর মূল দর্শন ছিল অত্যন্ত সহজ কিন্তু শক্তিশালী: “Every character in every language should have a unique number.” অর্থাৎ, বিশ্বের প্রতিটি ভাষার প্রতিটি অক্ষরের জন্য একটি স্বতন্ত্র এবং অভিন্ন কোড নম্বর থাকবে।

১. ইউনিকোডের অগ্রপথিক কারা ছিলেন?

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

জো বেকার (Joe Becker): তিনি তখন জেরক্স (Xerox) কোম্পানিতে কর্মরত ছিলেন। বিভিন্ন দেশের জন্য সফটওয়্যার তৈরি করতে গিয়ে তিনি বহুভাষিক কম্পিউটিং-এর সমস্যাগুলো গভীরভাবে উপলব্ধি করেন। তিনিই প্রথম একটি ‘Universal Character Encoding’-এর আনুষ্ঠানিক প্রস্তাবনা তৈরি করেন, যার নাম তিনি দিয়েছিলেন ‘ইউনিকোড’। তার লক্ষ্য ছিল বিশ্বের সমস্ত ভাষাকে একটি একক, ১৬-বিটের কোডিং সিস্টেমের আওতায় আনা, যা ৬৫,৫৩৬টি অক্ষরের জন্য স্থান সংকুলান করতে পারবে।

লি কলিন্স (Lee Collins): তিনি অ্যাপল (Apple) কম্পিউটারে কাজ করতেন এবং তিনিও একই ধরনের সমস্যার মুখোমুখি হচ্ছিলেন। অ্যাপলের সফটওয়্যারকে বিশ্বব্যাপী ব্যবহারযোগ্য করে তোলার জন্য একটি সার্বজনীন কোডিং সিস্টেমের প্রয়োজনীয়তা তিনি অনুভব করেন।

মার্ক ডেভিস (Mark Davis): তিনিও অ্যাপলের একজন প্রকৌশলী ছিলেন এবং লি কলিন্সের সঙ্গে বহুভাষিক কম্পিউটিং নিয়ে কাজ করছিলেন। ডেভিস পরবর্তীকালে ইউনিকোড কনসোর্টিয়ামের সভাপতি হন এবং ইউনিকোডের বিকাশে ও প্রসারে অন্যতম প্রধান ভূমিকা পালন করেন।

এই তিনজন বুঝতে পেরেছিলেন যে, বিভিন্ন কোম্পানি যদি তাদের নিজস্ব সমাধান তৈরি করতে থাকে, তবে ডিজিটাল বিশৃঙ্খলা আরও বাড়বে। তাই তারা একটি অলাভজনক সংস্থা তৈরির সিদ্ধান্ত নেন, যা কোনো নির্দিষ্ট কোম্পানির স্বার্থের ঊর্ধ্বে থেকে একটি সার্বজনীন স্ট্যান্ডার্ড তৈরি ও রক্ষণাবেক্ষণ করবে।

২. ইউনিকোড কনসোর্টিয়ামের প্রতিষ্ঠা:

১৯৯১ সালে জেরক্স, অ্যাপল এবং আরও কয়েকটি প্রযুক্তি কোম্পানির উদ্যোগে ‘ইউনিকোড কনসোর্টিয়াম’ (The Unicode Consortium) প্রতিষ্ঠিত হয়। এই কনসোর্টিয়ামের প্রধান কাজ হলো ইউনিকোড স্ট্যান্ডার্ডকে বিকশিত করা, রক্ষণাবেক্ষণ করা এবং এর প্রচার ও প্রসার ঘটানো। আজ বিশ্বের প্রায় সমস্ত বড় প্রযুক্তি কোম্পানি (যেমন: গুগল, মাইক্রোসফট, অ্যাপল, আইবিএম, অ্যাডোবি) এই কনসোর্টিয়ামের সদস্য।

৩. ইউনিকোডের মূল ধারণা:

ইউনিকোডের কাজের পদ্ধতি ফন্ট-ভিত্তিক এনকোডিং থেকে সম্পূর্ণ ভিন্ন। এর মূল ভিত্তি হলো ‘কোড পয়েন্ট’ (Code Point)।

কোড পয়েন্ট বনাম গ্লিফ (Glyph): ইউনিকোড প্রতিটি অক্ষরকে একটি অনন্য সংখ্যা বা ‘কোড পয়েন্ট’ বরাদ্দ করে। যেমন, বাংলা ‘ক’ অক্ষরের জন্য ইউনিকোড কোড পয়েন্ট হলো U+0995। এই কোড পয়েন্টটি অপরিবর্তনীয়, তা সে যে কোনো কম্পিউটার, অপারেটিং সিস্টেম বা সফটওয়্যারেই ব্যবহার করা হোক না কেন। অন্যদিকে, ‘গ্লিফ’ হলো অক্ষরের চাক্ষুষ রূপ বা ছবি। একটি ফন্টের কাজ হলো নির্দিষ্ট কোড পয়েন্টের জন্য একটি সুন্দর গ্লিফ প্রদর্শন করা। অর্থাৎ, ইউনিকোড ‘অক্ষর’ এবং তার ‘ছবি’-কে আলাদা করে দেয়। এর ফলে, একই ইউনিকোড টেক্সট বিভিন্ন ফন্টে বিভিন্ন রূপে প্রদর্শিত হতে পারে, কিন্তু তার অন্তর্নিহিত ডেটা একই থাকে।

এই ব্যবস্থার ফলে আন্তঃকার্যকারিতার সমস্যাটির সম্পূর্ণ সমাধান হয়ে যায়। ইউনিকোডে লেখা একটি বাংলা ডকুমেন্ট এখন পৃথিবীর যেকোনো প্রান্তে, যেকোনো কম্পিউটারে সঠিকভাবে পড়া এবং সম্পাদনা করা সম্ভব, যতক্ষণ সেই কম্পিউটার ইউনিকোড সমর্থন করে।

তৃতীয় পর্ব: ইউনিকোড জগতে ভারতীয় ভাষার প্রবেশ

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

১. ইস্কি (ISCII)-এর উত্তরাধিকার:

ভারতীয় ভাষাগুলোকে ইউনিকোডে অন্তর্ভুক্ত করার ক্ষেত্রে ইস্কি (ISCII) স্ট্যান্ডার্ড একটি অমূল্য সম্পদ হিসেবে কাজ করেছে। ইউনিকোড কনসোর্টিয়াম ভারতীয় লিপির কাঠামো তৈরির জন্য ইস্কির মডেলকে ব্যাপকভাবে গ্রহণ করে। ইস্কির মতোই, ইউনিকোডও ভারতীয় লিপিগুলোকে তাদের সাধারণ ব্রাহ্মী উৎস এবং ধ্বনিতাত্ত্বিক গঠনের ওপর ভিত্তি করে সাজিয়েছে। ব্যঞ্জনবর্ণ, স্বরবর্ণ, স্বরচিহ্ন (কার), এবং যুক্তাক্ষর গঠনের প্রক্রিয়া—এই সবকিছুই ইস্কির কাঠামো দ্বারা প্রভাবিত।

ভারত সরকারের সি-ড্যাক (C-DAC, Centre for Development of Advanced Computing)-এর মতো সংস্থাগুলো এই প্রক্রিয়ায় গুরুত্বপূর্ণ ভূমিকা পালন করে। তারা ইউনিকোড কনসোর্টিয়ামের সাথে ঘনিষ্ঠভাবে কাজ করে এবং ভারতীয় লিপির সঠিক প্রতিনিধিত্ব নিশ্চিত করে। এই সহযোগিতার ফলেই দেবনাগরী, বাংলা, গুরুমুখী, গুজরাটি, ওড়িয়া, তামিল, তেলুগু, কন্নড় এবং মালয়ালম লিপি ইউনিকোডের একেবারে প্রথম সংস্করণেই স্থান করে নেয়।

২. ভারতীয় লিপির জন্য ইউনিকোডের মডেল:

ভারতীয় লিপির একটি প্রধান বৈশিষ্ট্য হলো যুক্তাক্ষর এবং স্বরচিহ্নের জটিল ব্যবহার। ইউনিকোড এই সমস্যা সমাধানের জন্য একটি অত্যন্ত কার্যকর ‘ডিকম্পোজড’ (Decomposed) মডেল গ্রহণ করে।

যুক্তাক্ষর গঠন: ইউনিকোডে প্রতিটি যুক্তাক্ষরের জন্য আলাদা কোড পয়েন্ট নেই। বরং, যুক্তাক্ষর তৈরি হয় একাধিক অক্ষরের সমন্বয়ে। এর মূল উপাদান হলো ‘হলন্ত’ বা ‘হসন্ত’ চিহ্ন (বাংলায় যার কোড পয়েন্ট U+09CD)। যেমন, ‘ক্ত’ যুক্তাক্ষরটি লেখার জন্য টাইপ করতে হয়:

ক (U+0995) + ্ (U+09CD) + ত (U+09A4)

এই তিনটি কোড পয়েন্টের ক্রমকে কম্পিউটারের ‘রেন্ডারিং ইঞ্জিন’ (Rendering Engine) গ্রহণ করে এবং ফন্টের সাহায্যে সেটিকে ‘ক্ত’ যুক্তাক্ষরের রূপে প্রদর্শন করে।

স্বরচিহ্ন বা ‘কার’: একইভাবে, স্বরচিহ্নগুলোও ব্যঞ্জনবর্ণের পরে বসে। যেমন, ‘কি’ লেখার জন্য টাইপ করতে হয়:

ক (U+0995) + ি (U+09BF)

যদিও ‘ি’-কার (ই-কার) দৃশ্যত অক্ষরের আগে বসে, যৌক্তিকভাবে (logically) এটি ব্যঞ্জনবর্ণের পরেই আসে। রেন্ডারিং ইঞ্জিন এই ক্রমটিকে বুঝে দৃশ্যমান আউটপুট তৈরি করার সময় ‘ি’-কারকে সঠিক স্থানে বসিয়ে দেয়।

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

চতুর্থ পর্ব: বাংলা ইউনিকোড – বিকাশের চ্যালেঞ্জ ও সমাধান

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

চ্যালেঞ্জ ১: যুক্তাক্ষরের বিপুল সংখ্যা এবং অনিয়মিত গঠন

বাংলা ভাষায় যুক্তাক্ষরের (যুক্তব্যঞ্জন) সংখ্যা প্রচুর এবং এদের গঠন অত্যন্ত বৈচিত্র্যময়। কিছু যুক্তাক্ষর পাশাপাশি বসে (যেমন: প্ত = প্+ত), কিছু ওপরে-নিচে বসে (যেমন: ন্ড = ন্+ড), আবার অনেক যুক্তাক্ষরের গঠন সম্পূর্ণ অনিয়মিত, যেখানে মূল অক্ষরগুলোকে চেনা প্রায় অসম্ভব হয়ে পড়ে।

অনিয়মিত রূপ: ক্ষ (ক্+ষ), জ্ঞ (জ্+ঞ), হ্ম (হ্+ম) বা ঙ্ক (ঙ্+ক)-এর মতো যুক্তাক্ষরগুলোর গঠন কোনো সাধারণ নিয়ম মেনে চলে না। ‘ক’ এবং ‘ষ’ মিলে যে ‘ক্ষ’ তৈরি হয়, তার চেহারার সাথে মূল দুটি অক্ষরের কোনো সাদৃশ্য নেই।

প্রযুক্তিগত চ্যালেঞ্জ: প্রথম দিকের রেন্ডারিং ইঞ্জিন এবং ফন্টগুলোর জন্য এই অনিয়মিত রূপগুলো সঠিকভাবে তৈরি করা ছিল এক বিরাট চ্যালেঞ্জ। একটি রেন্ডারিং ইঞ্জিনকে ক + ্ + ষ ক্রমটি দেখে বুঝতে হতো যে, এটিকে একটিমাত্র গ্লিফ ‘ক্ষ’-তে রূপান্তরিত করতে হবে। এর জন্য ফন্টের ভেতরে অত্যন্ত জটিল নিয়মাবলী (OpenType Features, যেমন GSUB - Glyph Substitution) যুক্ত করার প্রয়োজন ছিল। পুরনো অপারেটিং সিস্টেম (যেমন: Windows 98 বা 초기 XP) এবং সাধারণ ফন্টগুলোতে প্রায়শই এই যুক্তাক্ষরগুলো ভেঙে যেত এবং ক্ ষ বা ক্‌ষ-এর মতো ভুলভাবে প্রদর্শিত হতো।

চ্যালেঞ্জ ২: স্বরচিহ্ন (কার) এবং ‘রেফ’-এর অবস্থানগত জটিলতা

বাংলায় স্বরচিহ্নের অবস্থান অত্যন্ত বৈচিত্র্যপূর্ণ। কিছু কার ব্যঞ্জনের আগে বসে (ে, ৈ, ি), কিছু পরে (া, ী), কিছু নিচে (ু, ূ, ৃ), এবং কিছু উভয় দিকে (ো, ৌ)।

লজিক্যাল বনাম ভিজ্যুয়াল অর্ডার: ইউনিকোডের নিয়ম অনুযায়ী, সব স্বরচিহ্ন ব্যঞ্জনবর্ণের পরে টাইপ করা হয় (Logical Order)। কিন্তু রেন্ডারিং ইঞ্জিনকে নিশ্চিত করতে হয় যে, ি-কার বা ে-কার যেন অক্ষরের আগে প্রদর্শিত হয় (Visual Order)। যেমন, ‘কে’ লেখার জন্য যৌক্তিক ক্রম হলো ক + ে। রেন্ডারিং ইঞ্জিন এই দুটি কোড পয়েন্টকে প্রক্রিয়া করে ে-কে আগে এবং ক-কে পরে প্রদর্শন করে। এই পুনর্বিন্যাস (reordering) প্রক্রিয়াটি বাস্তবায়ন করা প্রযুক্তিগতভাবে বেশ জটিল ছিল।

‘রেফ’-এর সমস্যা: ‘রেফ’ (র্) বাংলা লিপির অন্যতম একটি জটিল উপাদান। এটি কোনো ব্যঞ্জনের আগে ‘র’ ধ্বনিকে নির্দেশ করে। ইউনিকোডে ‘রেফ’ লেখার নিয়ম হলো:

ব্যঞ্জন + ্ (হসন্ত) + র (ভুল নিয়ম)

সঠিক নিয়ম হলো: র + ্ (হসন্ত) + ব্যঞ্জন

যেমন, ‘কর্ম’ শব্দটি লেখার যৌক্তিক ক্রম হলো: ক + র + ্ + ম। এখানে, রেন্ডারিং ইঞ্জিনকে র+্+ম অংশটিকে শনাক্ত করে ‘র’-কে একটি ‘রেফ’-চিহ্নে রূপান্তরিত করে ‘ম’-এর মাথায় বসাতে হয়। এই নিয়মটি বোঝা এবং সঠিকভাবে রেন্ডার করা প্রথম দিকের সিস্টেমগুলোর জন্য কঠিন ছিল। অনেক সময় ভুলভাবে ‘র‍্ম’ বা ‘র্‌ম’ প্রদর্শিত হতো।

চ চ্যালেঞ্জ ৩: খণ্ড-ত (ৎ) এবং এর দ্বৈত সত্তা

বাংলায় ‘ৎ’ (খণ্ড-ত) একটি স্বতন্ত্র অক্ষর (কোড পয়েন্ট: U+09CE), যা মূলত শব্দের শেষে ‘ত্’ ধ্বনির প্রতিনিধিত্ব করে। যেমন: ‘উৎসব’, ‘হঠাৎ’। কিন্তু অনেক ক্ষেত্রে ‘ত’ এবং ‘হসন্ত’ (ত্) যুক্তাক্ষর তৈরিতেও ব্যবহৃত হয়। যেমন: ‘সত্য’ (স্+অ+ত্+য্+অ)।

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

চ্যালেঞ্জ ৪: কি-বোর্ড লেআউট এবং ইনপুট পদ্ধতির সংকট

ইউনিকোডের প্রযুক্তিগত দিকগুলো সমাধান হলেও, সাধারণ মানুষের কাছে اسے পৌঁছে দেওয়ার সবচেয়ে বড় বাধা ছিল একটি সহজ এবং কার্যকরী কি-বোর্ড লেআউট।

প্রোপ্রাইটারি লেআউটের প্রভাব: বাংলাদেশে ‘বিজয়’ এবং ভারতে ‘বাংলাওয়ার্ড’-এর মতো প্রোপ্রাইটারি ফন্ট-ভিত্তিক কি-বোর্ড লেআউটগুলো ব্যবহারকারীদের মধ্যে গভীরভাবে প্রোথিত ছিল। এই লেআউটগুলো ইউনিকোড-সম্মত ছিল না। ব্যবহারকারীদের নতুন একটি ইউনিকোড-সম্মত লেআউটে অভ্যস্ত করানো ছিল একটি মনস্তাত্ত্বিক এবং ব্যবহারিক চ্যালেঞ্জ।

বিপ্লব সৃষ্টিকারী ‘অভ্র’: এই সমস্যার এক অসাধারণ সমাধান নিয়ে আসে ‘অভ্র কি-বোর্ড’। ২০০৩ সালে মেহদী হাসান খান এবং তার দল ‘ওমিক্রনল্যাব’-এর তৈরি এই সফটওয়্যারটি ছিল একটি যুগান্তকারী উদ্ভাবন। অভ্র প্রথম একটি সফল এবং জনপ্রিয় ‘ফোনেটিক’ (Phonetic) টাইপিং ব্যবস্থা চালু করে, যেখানে ব্যবহারকারীরা রোমান হরফে বাংলা উচ্চারণ লিখলে (যেমন: "amar sonar bangla") তা স্বয়ংক্রিয়ভাবে ইউনিকোড বাংলায় রূপান্তরিত হয়ে যেত ("আমার সোনার বাংলা")। এই পদ্ধতিটি টাইপিং-এর শিক্ষাকে অত্যন্ত সহজ করে দেয় এবং তরুণ প্রজন্মের মধ্যে বাংলা ইউনিকোডের ব্যবহারকে জনপ্রিয় করে তোলে। অভ্রতে বিজয় লেআউটের একটি ইউনিকোড-সম্মত সংস্করণও অন্তর্ভুক্ত ছিল, যা পুরনো ব্যবহারকারীদের নতুন ব্যবস্থায় আসতে সাহায্য করে।

চ্যালেঞ্জ ৫: ফন্ট এবং রেন্ডারিং ইঞ্জিনের অপর্যাপ্ততা

ইউনিকোড একটি স্ট্যান্ডার্ড মাত্র; এর সঠিক প্রদর্শনের জন্য প্রয়োজন উন্নতমানের ফন্ট এবং শক্তিশালী রেন্ডারিং ইঞ্জিন।

প্রাথমিক ফন্টগুলোর সীমাবদ্ধতা: প্রথম দিকে উপলব্ধ বাংলা ইউনিকোড ফন্টগুলোতে (যেমন: Windows XP-র সাথে আসা Vrinda) যুক্তাক্ষরের ভান্ডার ছিল সীমিত এবং সেগুলোর নান্দনিক মানও খুব উন্নত ছিল না। অনেক জটিল যুক্তাক্ষর সঠিকভাবে প্রদর্শিত হতো না।

উন্নত ফন্টের বিকাশ: এই শূন্যস্থান পূরণ করতে এগিয়ে আসেন অনেক স্বেচ্ছাসেবী এবং প্রতিষ্ঠান। মোস্তফা জব্বারের ‘সোলাইমানলিপি’, সিয়াম মাকসুদের ‘সিয়াম রূপালী’-এর মতো বিনামূল্যে বিতরণ করা ফন্টগুলো বাংলা ইউনিকোডের প্রসারে огром ভূমিকা রাখে। পরবর্তীকালে গুগল ফন্টস (যেমন: Hind Siliguri, Baloo Da 2) এবং অন্যান্য বাণিজ্যিক ও অবাণিজ্যিক ফন্টগুলো বাংলা লিপির ডিজিটাল রূপকে আরও সুন্দর এবং সমৃদ্ধ করেছে।

অপারেটিং সিস্টেমের ভূমিকা: Windows XP (Service Pack 2)-তে Uniscribe নামক রেন্ডারিং ইঞ্জিনের উন্নতি, এবং পরবর্তীকালে লিনাক্স, ম্যাকওএস, অ্যান্ড্রয়েড ও আইওএস-এর মতো অপারেটিং সিস্টেমগুলোতে জটিল লিপির জন্য উন্নত সমর্থন বাংলা ইউনিকোডের পূর্ণাঙ্গ বাস্তবায়নকে সম্ভব করে তুলেছে।

পঞ্চম পর্ব: ইউনিকোডের প্রভাব – ডিজিটাল বিশ্বে বাংলা ভাষার নবজাগরণ

ইউনিকোড কেবল একটি প্রযুক্তিগত মান নয়, এটি ছিল বাংলা ভাষার জন্য একটি ডিজিটাল মুক্তির সনদ। এর প্রভাব ছিল সুদূরপ্রসারী এবং বৈপ্লবিক।

ইন্টারনেট ও ওয়েবের democratization: ইউনিকোডের কল্যাণে বাংলা ভাষায় ওয়েবসাইট, ব্লগ এবং নিউজ পোর্টাল তৈরি করা অত্যন্ত সহজ হয়ে যায়। প্রথম আলো, বিবিসি বাংলা, আনন্দবাজার পত্রিকা-র মতো বড় গণমাধ্যমগুলো ইউনিকোড গ্রহণ করে, যা বিশ্বব্যাপী বাংলাভাষীদের কাছে খবর ও তথ্য পৌঁছে দেয়। উইকিপিডিয়ার মতো জ্ঞানভান্ডার বাংলায় সমৃদ্ধ হতে শুরু করে।

সামাজিক যোগাযোগ মাধ্যমে বাংলার জোয়ার: ফেসবুক, টুইটার, হোয়াটসঅ্যাপের মতো প্ল্যাটফর্মগুলোতে বাঙালিরা স্বতঃস্ফূর্তভাবে বাংলায় লেখালেখি শুরু করে। ইউনিকোডের কারণে বাংলায় স্ট্যাটাস দেওয়া, মন্তব্য করা বা বার্তা পাঠানো একটি সাধারণ অভ্যাসে পরিণত হয়, যা ভাষার ডিজিটাল حیاتকে এক নতুন মাত্রা দেয়।

সফটওয়্যার এবং অপারেটিং সিস্টেমের স্থানীয়করণ: ইউনিকোডের ফলে অপারেটিং সিস্টেম (Windows, Android) এবং বিভিন্ন সফটওয়্যারের ইন্টারফেস বাংলায় তৈরি করা সম্ভব হয়। এর ফলে প্রযুক্তি সাধারণ মানুষের কাছে আরও সহজবোধ্য হয়ে ওঠে।

তথ্য প্রক্রিয়াকরণ এবং কৃত্রিম বুদ্ধিমত্তা: যেহেতু ইউনিকোড টেক্সট একটি স্ট্যান্ডার্ড বিন্যাসে থাকে, তাই গুগল বা অন্যান্য সার্চ ইঞ্জিন এখন বাংলা কনটেন্টকে সঠিকভাবে ইন্ডেক্স এবং সার্চ করতে পারে। এর ফলে বাংলা ভাষায় তথ্য খোঁজা অনেক সহজ হয়েছে। ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং (NLP), মেশিন ট্রান্সলেশন, স্পেল চেকার, এবং ওসিআর (OCR)-এর মতো প্রযুক্তির গবেষণা ও উন্নয়ন বাংলায় সম্ভব হচ্ছে।

ডিজিটাল সংরক্ষণ: পুরনো বই, পত্রিকা এবং নথিগুলোকে ইউনিকোড ফরম্যাটে ডিজিটাইজ করার মাধ্যমে সেগুলোকে চিরস্থায়ীভাবে সংরক্ষণ করা সম্ভব হচ্ছে। এটি বাংলা সাহিত্য ও সংস্কৃতির ঐতিহ্যকে ভবিষ্যৎ প্রজন্মের জন্য সুরক্ষিত করছে।

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

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

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

Comments

Popular posts from this blog

যমুনার বৃত্তান্ত: মর্মরের কারাগার

লেখকের নিয়তি

লীলা মজুমদার - আনন্দের জগৎ