অ্যাপল কয়েক মাস ধরে একটি বগি আছে. এখন আমরা iPhones-এ টেক্সট-রেন্ডারিং কার্যকারিতায় একটি নতুন, গুরুতর বাগ পেয়েছি। বাগটি একটি একক তেলুগু অক্ষর দ্বারা ট্রিগার করা হয়েছে যা একটি আইফোনকে অক্ষর সম্বলিত একটি বিজ্ঞপ্তি পাওয়ার মাধ্যমে একটি অবিচ্ছিন্ন বুট লুপে প্রবেশ করতে পারে। আসুন জেনে নেওয়া যাক কেন একটি একক অক্ষর iOS এর সাথে এই ধরনের বড় সমস্যা সৃষ্টি করতে পারে।
দ্রষ্টব্য: তেলুগু বাগটির সমাধান iOS এর সাম্প্রতিকতম সংস্করণে উপলব্ধ (11.2.6)৷ যদি তেলুগু অক্ষরটি আপনার অ্যাপ বা ডিভাইস লক আপ করে থাকে, তাহলে iTunes এর মাধ্যমে আপনার iPhone পুনরুদ্ধার করুন এবং iOS-এর সাম্প্রতিকতম সংস্করণে আপডেট করুন। আপনার আইফোন যদি বুট লুপে আটকে থাকে, তাহলে আইটিউনসকে চিনতে পেতে আপনাকে ডিভাইস ফার্মওয়্যার আপডেট (DFU) অবস্থায় রাখতে হবে। শেষ হয়ে গেলে, আপনার সাম্প্রতিক ব্যাকআপ থেকে আপনার ডিভাইসটি পুনরুদ্ধার করুন, যা আপনি আশা করে তৈরি করেছেন৷
৷তেলেগু কি?
তেলেগু হল ভারতের কিছু অংশে, বিশেষ করে অন্ধ্র প্রদেশ, তেলেঙ্গানা রাজ্য এবং ইয়ানাম শহরে কথ্য ও লিখিত একটি ভাষা। অনেক লিপি-ভিত্তিক ভাষার মতো, যেমন আরবি এবং অন্যান্য ব্রাহ্মিক স্ক্রিপ্ট, তেলুগু ইউনিকোড অক্ষর সেটের কিছু বিশেষ বৈশিষ্ট্য ব্যবহার করে কম্পিউটার স্ক্রিনে তার অক্ষরগুলি প্রদর্শন করে।
যদিও বেশিরভাগ ল্যাটিন অক্ষরগুলি ASCII সামঞ্জস্যের জন্য একক 8-বিট ইউনিকোড কোড পয়েন্ট দ্বারা উপস্থাপিত হয় (উদাহরণস্বরূপ, অক্ষর A ইউনিকোড কোড পয়েন্ট U+0041
এ বিদ্যমান , যা 01000001
দ্বারা বাইনারিতে উপস্থাপন করা হয় ), স্ক্রিপ্ট বা অ-ল্যাটিন অক্ষর দিয়ে লেখা ভাষাগুলি সাধারণত তাদের অক্ষরগুলিকে উপস্থাপন করতে একাধিক ইউনিকোড কোড পয়েন্ট একত্রিত করে।
এটি তেলুগুর মতো ভাষাগুলির জন্য বিশেষভাবে সত্য, যেগুলি ক্লাস্টারে অক্ষরগুলির ভাষার সংস্করণগুলিকে একত্রিত করে। ইংরেজির শৈলীগত লিগ্যাচারের বিপরীতে, প্রতিটি তেলুগু অক্ষরের মধ্যে সংযোগ ভাষাগতভাবে গুরুত্বপূর্ণ। এটিকে সামঞ্জস্য করার জন্য, ইউনিকোড অক্ষর সংযুক্ত করার একটি জটিল সিস্টেম অন্তর্ভুক্ত করে, প্রতিটি তাদের নিজস্ব কোড পয়েন্ট দ্বারা একে অপরের সাথে উপস্থাপন করা হয়।
ইউনিকোড কোড পয়েন্টের নিছক সংখ্যা বিবেচনা করে, এটি প্রায় অসীম বৈচিত্র্য তৈরি করতে পারে। এই পয়েন্টগুলি একত্রিত হয়ে একটি সুস্পষ্ট চরিত্র রেন্ডার করে। এইভাবে ইউনিকোডের আক্ষরিক অর্থে প্রতিটি সম্ভাব্য তেলেগু শব্দের জন্য ইউনিকোড কোড পয়েন্টের প্রয়োজন নেই। পরিবর্তে, ইউনিকোড তেলুগু ব্যঞ্জনবর্ণ, স্বরবর্ণ এবং ডায়াক্রিটিকস ("ভিরাম") একত্রিত করে এমন শব্দ তৈরি করে যা একটি একক অক্ষরের মতো প্রদর্শিত হয়। একই কথা অন্যান্য ভাষার ক্ষেত্রেও প্রযোজ্য যেখানে লিগ্যাচারের জন্য অর্থোগ্রাফিক নিয়ম রয়েছে, যেমন আরবি।
ক্র্যাশের কারণ কি?
সমস্যাটি কোড পয়েন্ট U+200C
এ জিরো উইডথ নন-জোনার (ZWNJ) এর সাথে সম্পর্কিত বলে মনে হচ্ছে . ZWNJ অনুরোধ করে যে দুটি সংলগ্ন অক্ষর তাদের সাধারণ লিগ্যাচার ছাড়াই রেন্ডার করে। ইংরেজিতে, একটি ZWNJ অক্ষরগুলিকে তাদের স্ট্যান্ডার্ড সংযোগ লিগ্যাচারের সাথে মুদ্রণ করা থেকে বিরত রাখে, পরিবর্তে প্রতিটি f আলাদা করে। কিন্তু যখন চারটি তেলুগু কোড পয়েন্টের একটি নির্দিষ্ট সেটের সাথে একত্রিত করা হয় (যার সবকটিই একটি একক ক্লাস্টারে একত্রিত হওয়া উচিত), কোন কারণে iOS সঠিকভাবে ফলাফল প্রদর্শন করতে পারে না।
কেউ কেউ অনুমান করেছেন যে অ্যাপলের সান ফ্রান্সিসকো ফন্ট চরিত্রটি প্রদর্শন করতে পারে না, অন্যরা বলেছে যে অ্যাপল যে নির্দিষ্ট রেন্ডারিং প্রক্রিয়া ব্যবহার করে তা দায়ী। সঠিক কারণ যাই হোক না কেন, চরিত্রটিকে রেন্ডার করার প্রচেষ্টা বার্তা এবং হোয়াটসঅ্যাপ থেকে স্প্রিংবোর্ড পর্যন্ত যা কিছু রেন্ডার করছে তার একটি নাটকীয় ক্র্যাশ ঘটায়। ইউনিকোড কোড পয়েন্টগুলি যা অক্ষর তৈরি করে ("gya" অর্থ "জ্ঞান") নীচে রয়েছে:
U+0C1C
ja ( )U+0C4D
একটি ভিরাম, বা ডায়াক্রিটিক চিহ্ন ( )U+0C1E
না ( )U+200C
শূন্য প্রস্থ নন-জয়নারU+0C3E
এএ( )
কিন্তু আমরা এমনকি জিরো উইথ নন-জোনার (ZWNJ) কে একা দোষ দিতে পারি না। এটি কোনো সমস্যা ছাড়াই নিরীহ পারিবারিক ইমোজিতে (????) ব্যবহার করা হয়। এটি কিছু নির্দিষ্ট কোড পয়েন্ট এবং ZWNJ এর একটি নির্দিষ্ট সমন্বয় বলে মনে হচ্ছে। আঘাতের সাথে অপমান যোগ করা, দেখে মনে হচ্ছে ZWNJ হয় এই তেলুগু ক্লাস্টারে রেন্ডারিংয়ের উপর কোন বিশেষ প্রভাব ফেলে না বা এটি প্রথম স্থানে থাকা উচিত নয়।
অন্যান্য ব্রাহ্মিক লিপি সমস্যা
তবে তেলেগুই এই সমস্যার একমাত্র ভাষা নয়। বাংলা এবং দেবনাগরী, যারা তাদের ব্রাহ্মিক লিপির জন্য একইভাবে ইউনিকোড ব্যবহার করে, তাদের একই সমস্যা রয়েছে। মনীশ গোরেগাওকার একটি চমকপ্রদ এবং বিস্তারিত ব্লগ পোস্ট লিখেছেন যা সঠিক ক্র্যাশ কেসকে আরও কমিয়ে দেয়:
যেকোনো ক্রম
<consonant1, virama, consonant2, ZWNJ, vowel>
দেবনাগরী, বাংলা এবং তেলেগুতে, যেখানে:1.
consonant2
প্রত্যয় যোগ হচ্ছে (pstf
/vatu
)
২.consonant1
এটি একটি reph-গঠনকারী অক্ষর নয়
3.vowel
দুটি গ্লাইফ উপাদান নেই
উপসংহার:কেন এটি অ্যাপল দ্বারা ধরা পড়েনি?
এই বাগটি কীভাবে হয়েছে তা বোঝার জন্য, আপনাকে নিজেকে অ্যাপলের জুতাতে রাখতে হবে। অবশ্যই, এই অক্ষরের সংমিশ্রণটি তেলুগু ভাষায় কিছু অস্পষ্ট শব্দ নয়। কিন্তু আইফোন কয়েক ডজন ভাষার জন্য সমর্থন অন্তর্ভুক্ত করে। ইউনিকোডে আক্ষরিক অর্থে কোটি কোটি সম্ভাব্য সমন্বয় রয়েছে। এত বৈচিত্র্যের সাথে, প্রকাশের আগে ইউনিকোড বাগগুলির জন্য অর্থপূর্ণ পরীক্ষা নিয়মিত সফ্টওয়্যার আপডেটগুলিকে অসম্ভব করে তুলবে৷
যাইহোক, ত্রুটির কারণে এতটা ক্ষতি হওয়া উচিত ছিল না। একটি পাঠ্য বার্তার বিষয়বস্তুর উপর ভিত্তি করে ফোনগুলিকে ইট করা উচিত নয়। যদিও পশ্চাৎদৃষ্টি অবশ্যই 20/20, মনে হচ্ছে একটি প্রশ্ন চিহ্ন বক্স (�) হিসাবে চরিত্রটিকে রেন্ডার করা স্প্রিংবোর্ড ক্র্যাশ করার চেয়ে ভাল হত৷