জাভা ইন্টারন্যাশনালাইজেশন (Java Internationalization বা i18n) এর ক্ষেত্রে JSP Custom Tags এবং Expression Language (EL) ব্যবহারের মাধ্যমে অ্যাপ্লিকেশনগুলিকে স্থানিক ভাষা এবং আঞ্চলিক প্রয়োজনীয়তা অনুসারে কাস্টমাইজ করা যায়। JSP (JavaServer Pages) এবং EL এর মাধ্যমে i18n সমর্থন নিশ্চিত করা হলে, বিভিন্ন ভাষার অনুবাদ এবং উপযুক্ত স্থানিক তথ্য সহজেই প্রদর্শন করা যায়। এখানে JSP Custom Tags এবং Expression Language ব্যবহারের মাধ্যমে i18n সমর্থন করার পদ্ধতি বর্ণনা করা হলো।
1. JSP Custom Tags-এর মাধ্যমে i18n সমর্থন
JSP Custom Tags-এর মাধ্যমে আপনি স্থানিক রিসোর্স লোড করতে এবং একাধিক ভাষার জন্য কনটেন্ট প্রদর্শন করতে পারেন। এই ট্যাগগুলি ব্যবহারকারীর ভাষার উপর ভিত্তি করে কনটেন্ট প্রদর্শন করে।
Custom Tag ব্যবহার করার প্রক্রিয়া:
- Resource Bundle ব্যবহার:
ResourceBundleক্লাসটি জাভা প্রোগ্রামে স্থানিক রিসোর্স লোড করতে ব্যবহৃত হয়। JSP Custom Tags এর মাধ্যমে এটি ব্যবহার করা সম্ভব। - JSP Custom Tag তৈরি: JSP Custom Tags ব্যবহার করে বিভিন্ন ভাষার জন্য অনুবাদ প্রদর্শন করতে Tag Library Descriptor (TLD) ফাইল তৈরি করতে হবে।
** উদাহরণ:**
- প্রথমে একটি ResourceBundle তৈরি করুন, যা ভাষা নির্ভর কনটেন্ট সংরক্ষণ করবে। উদাহরণস্বরূপ,
messages_en.properties(ইংরেজি) এবংmessages_fr.properties(ফরাসি) ফাইল তৈরি করুন। - JSP Custom Tag তৈরি করুন যা
ResourceBundleথেকে স্ট্রিং ডেটা বের করবে। - TLD ফাইলের মধ্যে এই ট্যাগের ডেফিনিশন করুন।
উদাহরণ (JSP Custom Tag TLD):
<tag> <name>message</name> <tag-class>com.example.MessageTag</tag-class> <body-content>empty</body-content> <attribute> <name>key</name> <required>true</required> </attribute> </tag>উদাহরণ (JSP Custom Tag Implementation):
package com.example; import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.TagSupport; import java.util.ResourceBundle; public class MessageTag extends TagSupport { private String key; public void setKey(String key) { this.key = key; } @Override public int doStartTag() throws JspException { ResourceBundle bundle = ResourceBundle.getBundle("messages", pageContext.getRequest().getLocale()); String message = bundle.getString(key); try { pageContext.getOut().write(message); } catch (IOException e) { throw new JspException("Error writing message", e); } return SKIP_BODY; } }এইভাবে, আপনি
messageকাস্টম ট্যাগ ব্যবহার করে বিভিন্ন ভাষায় অনুবাদ ডেটা লোড করতে পারবেন।- প্রথমে একটি ResourceBundle তৈরি করুন, যা ভাষা নির্ভর কনটেন্ট সংরক্ষণ করবে। উদাহরণস্বরূপ,
2. Expression Language (EL) এর মাধ্যমে i18n সমর্থন
Expression Language (EL) হলো JSP এর একটি শক্তিশালী বৈশিষ্ট্য যা টেমপ্লেট কোডে সহজ এবং শক্তিশালী এক্সপ্রেশন ব্যবহার করতে সহায়ক। EL ব্যবহার করে আপনি JSP পৃষ্ঠাতে স্থানিকভাবে সমর্থিত বার্তা সহজে অ্যাক্সেস করতে পারেন।
EL দিয়ে i18n সমর্থন:
- Resource Bundle ব্যবহার: EL এর মাধ্যমে
ResourceBundleথেকে স্থানিক তথ্য সহজেই পাওয়া যায়। EL তে আপনিpageContextব্যবহার করেResourceBundleলোড করতে পারেন। ** উদাহরণ:** আপনি
ResourceBundleএর মাধ্যমে জাভা কনফিগারেশন ফাইলের মধ্যে সংরক্ষিত ভাষার স্ট্রিংগুলি EL দিয়ে অ্যাক্সেস করতে পারেন।উদাহরণ (JSP পৃষ্ঠাতে EL ব্যবহার):
<jsp:useBean id="bundle" scope="page" class="java.util.ResourceBundle" /> <c:set var="messages" value="${pageContext.request.locale}" /> <h1>${messages["welcome.message"]}</h1>
এখানে:
${messages["welcome.message"]}EL এক্সপ্রেশনটিwelcome.messageকী এর মানResourceBundleথেকে বের করে, যা অনুবাদিত স্ট্রিং রিটার্ন করবে।
3. JSP এবং EL ব্যবহার করার উপকারিতা:
- সহজ অনুবাদ সমর্থন: JSP Custom Tags এবং EL এর মাধ্যমে আপনি ভাষা পরিবর্তন করার সাথে সাথে ওয়েব পৃষ্ঠাগুলির কনটেন্টও পরিবর্তন করতে পারবেন।
- প্রাক-সংজ্ঞায়িত কনটেন্ট: EL ব্যবহার করলে আপনি
ResourceBundleএবং অন্যান্য স্থানিক তথ্য দ্রুত অ্যাক্সেস করতে পারবেন। - টেমপ্লেটের মধ্যে কোড মিনিমাইজ করা: EL এবং JSP Custom Tags ব্যবহার করে আপনি কোডে কমপ্লেক্সিটি কমিয়ে ডাইনামিক কনটেন্ট প্রদর্শন করতে পারবেন।
JSP Custom Tags এবং Expression Language (EL) ব্যবহার করে জাভা অ্যাপ্লিকেশনগুলির আন্তর্জাতিককরণ (i18n) সমর্থন সহজ হয়। এটি মাল্টি-ল্যাঙ্গুয়েজ সাপোর্ট, স্থানিকভাবে সংবেদনশীল কনটেন্ট এবং ব্যবহারের জন্য উপযুক্ত অনুবাদ প্রদর্শনে সহায়তা করে।
Read more