মজার কোডিং
.
আচ্ছা আসেন, আজকে একটু কোডিং নিয়ে আলোচনা করি।
.
কুরআনের আয়াত গুলো কালার কোডেড তাজবীদ দেখার জন্য চিন্তায় ছিলাম। অনেক গুলো অক্ষরের মধ্যে মাঝে মাঝে একটি অক্ষর ভিন্ন রঙ্গের বানানো খুব বেশী কঠিন কিছু না। কিন্তু পুরো কুরআনে এই কাজ করা যথেষ্ট কঠিন। পরবর্তীতে খোজ পেলাম api.alqruanCloud এবং GlobalQuran ওয়েব সাইট কালার কোডেড তাজবীদ এর এপিয়াই তৈরী করে রেখেছে। এখন দেখুন আপনি যখন ব্যাকগ্রাউন্ডে একটি আয়াত রঙিন তাজবীদ অক্ষর সহ তাদের কাছে রিকোয়েস্ট করবেন তার লিংকটা এরকম :
http://api.alquran.cloud/ayah/24:35/quran-tajweed
- এখানে ২৪ নং সুরার ৩৫ নং আয়াত চাওয়া হয়েছে। যদি সুরা ফাতিহার ১ নং আয়াত অর্থাৎ বিসমিল্লাহ আয়াতটি চান তাহলে লিংক হলো :
http://api.alquran.cloud/ayah/1:1/quran-tajweed
ইচ্ছে করলে উপরের লিংকে একটু কষ্ট করে ক্লিক করে মজা দেখতে পারেন। আয়াতটির মূল চেহারা দেখলে আপনি অবাক হয়ে যাবেন। আপনি কল করার পর তাদের কাছ থেকে বিসমিল্লাহ কালার কোডেড আয়াত হিসেবে যা পাবেন তা হলো এই :
"\u0628\u0650\u0633\u0652\u0645\u0650 [h:1[\u0671]\u0644\u0644\u0651\u064e\u0647\u0650 [h:2[\u0671][l[\u0644]\u0631\u0651\u064e\u062d\u0652\u0645\u064e[n[\u0640\u0670]\u0646\u0650 [h:3[\u0671][l[\u0644]\u0631\u0651\u064e\u062d[p[\u0650\u064a]\u0645\u0650"
উপরের লেখা গুলোতে বিসমিল্লাহ পুরো আয়াতটি রঙিন তাজবীদে লেখা আছে। এখন এই লেখাটিকে দুই ভাবে হিউম্যান রিডেবল করা যাবে । দুই ভাবে বললাম এই জন্য যে, একভাবে গিটহাব এ দেখানো হয়েছে। আর একভাবে আমি নিজে তৈরী করেছি, আলহামদুলিল্লাহ।
গিটহাবে যে সিস্টেম দেখানে হয়েছে, তা হলো : php (parser) > Css Script > html
আর আমি তাফহীম এ্যাপে যেভাবে করেছি : jsonParser > Replace Method ( Make Html String ) > Html to Text
এই দুটির মধ্যে পার্থক্য হলো গিটহাব এর পদ্ধতিতে যেহেতু পিএইচপি এবং সিএসএস আছে, তাই কুরআনের আয়াতগুলো মূল কুরআন অধ্যয়নে দেখানো সম্ভব নয়, আলাদা স্থানে (এ্যাকটিভিটিতে দেখাতে হবে), যেমনটি গ্রীন টেক এ্যাপের ক্ষেত্রে করা হয়েছে, কিন্তু, আলহামদুলিল্লাহ আমার পদ্ধতিতে মূল কুরআন অধ্যয়ন স্ক্রীণেই কুরআন অনুবাদের সাথেই এ্যারাবিক রঙিন লেখাটি দেখানো সম্ভব।
এখন আসেন উপরের বিসমিল্লাহ আয়াতটি এপিআই থেকে পাওয়ার পর আমরা একে জেসন পার্সার এর মাধ্যমে হিউম্যান রিডেবল তৈরী করলাম । জেসন পার্সার কোড নিম্নরূপ :
jsonObject = new JSONObject(mainString);
JSONObject object = jsonObject.getJSONObject("data");
String text = object.getString("text");
এই পার্সার এর মাধ্যমে বিসমিল্লাহ রঙিন আয়াতটির হিউম্যান রিডেবল চেহারা দাড়ালো নিম্নরূপ :
"بِسْمِ [h:1[ٱ]للَّهِ [h:2[ٱ][l[ل]رَّحْمَ[n[ـٰ]نِ [h:3[ٱ][l[ل]رَّح[p[ِي]م
এখানে খেয়াল করে দেখেন উপরোল্লিখিত ভাবে যারা পুরো কুরআন কে লিখেছেন / টাইপ করেছেন এবং সবার জন্য উন্মুক্ত এপিআই করে দিয়েছেন তারা কতটুকু পরিশ্রম করেছেন। ভাবা যায় ?
এখন বিসমিল্লাহ আয়াতটি এ্যাপের মধ্যে রঙিন অক্ষরে দেখানোর জন্য আমরা যে জাভা মেথডটি তৈরী করেছি তা হচ্ছে টেক্সট এর রিপ্লেস ফাংশনের মাধ্যমে তৈরী করা । জাভা মেথডটি নিম্নরূপ :
public static String replaceText (String text){
return text.replaceAll("\\d+", "")
.replace(":", "")
.replace("[h[","<font color = '#CAAE1C'>" )
.replace("[s[","<font color = '#069ECF'>" )
.replace("[l[","<font color = '#11E6CE'>" )
.replace("[n[","<font color = '#00ff00'>" )
.replace("[p[","<font color = '#B97BE4'>" )
.replace("[m[","<font color = '#AC215F'>" )
.replace("[q[","<font color = '#788ACC'>" )
.replace("[o[","<font color = '#A6791D'>" )
.replace("[c[","<font color = '#D500B7'>" )
.replace("[f[","<font color = '#CA57DA'>" )
.replace("[w[","<font color = '#D53333'>" )
.replace("[i[","<font color = '#4CAF50'>" )
.replace("[a[","<font color = '#169777'>" )
.replace("[u[","<font color = '#169200'>" )
.replace("[d[","<font color = '#FF4081'>" )
.replace("[b[","<font color = '#A7FFE3'>" )
.replace("[g[","<font color = '#FF0000'>" )
.replace("]","</font>" );
}
এই মেথডটি চালিয়ে দিয়ে বিসমিল্লাহ আয়াতটি যেভাবে পেলাম তা নিম্নরূপ :
بِسْمِ <font color = '#CAAE1C'>ٱ</font>للَّهِ <font color = '#CAAE1C'>ٱ</font><font color = '#11E6CE'>ل</font>رَّحْمَ<font color = '#00ff00'>ـٰ</font>نِ <font color = '#CAAE1C'>ٱ</font><font color = '#11E6CE'>ل</font>رَّح<font color = '#B97BE4'>ِي</font>مِ,
এইটা আসলে একটা Html String , এটাই সর্বশেষ রূপ। এরপর এ্যাপে কালার কোডেড তাজবীদ (রঙিন অক্ষরের ) বিসমিল্লাহ দেখানোর জন্য আমরা জাভার যে মেথডটি ব্যবহার করেছি তাহলো সেট টেক্সট উইথ এইচটিএমএল ফরমেট :
textView.setText(Html.fromHtml(bismillahText));
এই শেষ লাইন কোডটির ফলেই আমরা রঙিন হরফে আয়াতগুলো দেখতে পাবো। এখন প্রশ্ন হতে পারে এপিআই থেকে একটা আয়াত বা সুরা কল করার জন্য তো এ্যাপের অনলাইন হওয়া প্রয়োজন। জ্বি ঠিক বলেছেন। আসলে যা করেছি তা হলো, ম্যানুয়ালি ব্রাউজারে লিংক দিয়ে এপিয়াই কল করে পুরো একটি সুরা ডাউনলোড করেছি। এরপর অনলাইন জেসন পার্সার এর মাধ্যমে সুরাটিকে হিউম্যান রিডেবল ফরমেট তৈরী করেছি। এরপর প্রতিটি আয়াতের সাথে সুরা নাম্বার, আয়াত নাম্বার, রুকু নাম্বার, পারা নাম্বার ইত্যাদি যোগ করেছি। এরপর আয়াতগুলো দিয়ে তথা পুরো কুরআনের একটি এসকিউলাইট (sQlite) ডাটাবেজ তৈরী করেছি। এরপর এ্যাপের মধ্যে এই সিস্টেম করেছি যে, অন ডিমান্ড পুরো ডাটাবেজটি একসাথে ডাউনলোড করে নেওয়া যাবে এবং যেখানে কুরআন অধ্যয়ন করা হয়, ঠিক সেই স্থানেই পূর্বের ডাটাবেজ এর কালো আয়াত এর পরিবর্তে নতুন রঙিন ডাটাবেজ এর রঙিন আয়াত দেখাবে। আলহামদুলিল্লাহ।
উল্লেখ্য যে, পুরো ডাটাবেইজ টি মাত্র চার এমবিরও কম।
তো এই হলো রঙিন আয়াত / কালার কোডেড তাজবীদ এ্যান্ড্রয়েডে প্রদর্শনের সিস্টেম। হয়তো অনেক কঠিন মনে হচ্ছে, আসলে আলহামদুলিল্লাহ বিষয়টা অনেক সোজা। আর সবচেয়ে বড় কথা হচ্ছে, গিটহাব এর দেখানো পদ্ধতির পিএইচপি স্ক্রীপ্ট এবং জাভা স্ক্রীপ্ট বাইপাস করে শুধুমাত্র জেসন পার্সার ও জাভার মাধ্যমে এত সহজে যে এই জিনিসটা এ্যান্ড্রয়েডে প্রদর্শন করনো যাবে, এই বুদ্ধিটা আসলে মহান আল্লাহই দয়া করে আমাকে দান করেছেন। আলহামদুলিল্লাহ, অবনত মস্তকে মহান আল্লাহর শুকরিয়া আদায় করছি। বিশ্বাস করুন, এখানে আমার নিজের কোনই কৃতিত্ব নাই। সব কৃতিত্বই একমাত্র মহান আল্লাহর।
আলহামদুলিল্লাহ, আলহামদুলিল্লাহ, আলহামদুলিল্লাহ।
No comments:
Post a Comment