Apache Tapestry একটি শক্তিশালী web application framework, যা localization (ভাষা স্থানীয়করণ) এবং internationalization (আন্তর্জাতিকীকরণ) সমর্থন করে, যাতে আপনি বিভিন্ন ভাষায় অ্যাপ্লিকেশনটি ব্যবহারযোগ্য করতে পারেন। এই ফিচারটি অ্যাপ্লিকেশনকে বিশ্বের বিভিন্ন অঞ্চলের জন্য উপযোগী করতে সহায়ক, যেখানে একাধিক ভাষা এবং সংস্কৃতি সমর্থিত থাকে।
Tapestry-তে multi-language support প্রদান করতে, আপনাকে দুটি গুরুত্বপূর্ণ দিক বিবেচনায় নিতে হবে:
এই টিউটোরিয়ালে, আমরা দেখব কীভাবে multi-language support তৈরি করা যায়, যেখানে আপনি একাধিক ভাষায় অ্যাপ্লিকেশন প্রদর্শন করতে পারবেন।
Tapestry তে localization এবং internationalization সমর্থন করার জন্য, প্রথমে আপনাকে resource files তৈরি করতে হবে, যেখানে আপনি বিভিন্ন ভাষার জন্য বার্তা এবং টেক্সট কনফিগার করবেন।
Tapestry তে, .properties ফাইল ব্যবহার করে আপনি ভাষার নির্দিষ্ট বার্তা এবং কনটেন্ট কনফিগার করতে পারেন। সাধারণত, messages.properties নামের একটি ফাইল রাখা হয়, যা ডিফল্ট ভাষার বার্তা সংরক্ষণ করে, এবং অন্যান্য ভাষার জন্য আলাদা properties ফাইল রাখা হয়।
welcome.message=Welcome to the Tapestry Application
login.button=Login
welcome.message=Bienvenue dans l'application Tapestry
login.button=Connexion
এখানে:
Tapestry আপনাকে Resource Bundle ব্যবহার করার সুবিধা দেয়, যা ফাইলগুলো থেকে ভাষা নির্ধারণ করে বার্তা লোড করে।
Tapestry-তে ভাষা সেট করার জন্য আপনি locale সেট করতে পারেন এবং সেই অনুযায়ী প্রয়োজনীয় resource bundles ব্যবহার করতে পারেন।
web.xml ফাইলের মধ্যে locale এবং bundle কনফিগার করা যেতে পারে:
<filter>
<filter-name>Locale Filter</filter-name>
<filter-class>org.apache.tapestry5.services.locale.DefaultLocale</filter-class>
<init-param>
<param-name>defaultLocale</param-name>
<param-value>en_US</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Locale Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
এটি en_US (ইংরেজি, মার্কিন যুক্তরাষ্ট্র) ডিফল্ট লোকেল হিসেবে সেট করবে। আপনি যখন অন্য ভাষা ব্যবহার করতে চান, তখন locale পরিবর্তন করতে পারেন, যেমন fr_FR (ফরাসি, ফ্রান্স)।
Tapestry তে একাধিক ভাষা সমর্থন করার জন্য, আপনার resource bundles এবং UI কম্পোনেন্টগুলোকে এমনভাবে কনফিগার করতে হবে যাতে এটি স্বয়ংক্রিয়ভাবে ভাষা পরিবর্তন করতে পারে। এটি করতে, আপনি সাধারণত ব্যবহারকারীর ভাষা নির্বাচন করার জন্য একটি language switcher ব্যবহার করবেন।
একটি সিম্পল language switcher তৈরি করুন যা ব্যবহারকারীদের তাদের পছন্দমতো ভাষা নির্বাচন করতে দেয়।
language-switcher.tml:
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
<head>
<title>Language Switcher</title>
</head>
<body>
<h2><t:message key="welcome.message"/></h2>
<t:select t:id="languageSelect" value="locale" zone="contentZone">
<t:option value="en_US">English</t:option>
<t:option value="fr_FR">Français</t:option>
</t:select>
<h3><t:message key="login.button"/></h3>
</body>
</html>
এখানে:
তবে, ব্যবহারকারীরা যখন ভাষা পরিবর্তন করবেন, তখন পেজ রিফ্রেশ হবে এবং নতুন ভাষার কনটেন্ট দেখানো হবে। এটি সাধারণত zone update বা AJAX এর মাধ্যমে করা যেতে পারে।
UserPage.java (Language Switcher Logic):
package com.example.pages;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.Inject;
import org.apache.tapestry5.ioc.annotations.Symbol;
public class UserPage {
@Property
private String locale;
@Inject
@Symbol("defaultLocale")
private String defaultLocale;
// Constructor to initialize default language
public UserPage() {
locale = defaultLocale; // Set default locale on page load
}
// Method to handle language change
public Object onValueChangedFromLanguageSelect(String newLocale) {
locale = newLocale; // Update locale based on user selection
return null; // No page refresh required, use AJAX
}
}
এখানে:
Tapestry-এর message কম্পোনেন্টের মাধ্যমে আপনি রিসোর্স ফাইল থেকে বার্তা রেন্ডার করতে পারেন, যা ভাষা অনুযায়ী স্বয়ংক্রিয়ভাবে পরিবর্তিত হয়।
message.tml:
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
<head>
<title>Localized Content</title>
</head>
<body>
<h2><t:message key="welcome.message"/></h2>
<h3><t:message key="login.button"/></h3>
</body>
</html>
এখানে:
Apache Tapestry তে multi-language support প্রদান করা খুবই সহজ। আপনি resource bundles ব্যবহার করে ভাষার ভিত্তিতে কনটেন্ট এবং বার্তা পরিবর্তন করতে পারেন এবং language switcher ব্যবহার করে ব্যবহারকারীকে বিভিন্ন ভাষা নির্বাচন করার সুযোগ দিতে পারেন। Tapestry তে localization এবং internationalization সমর্থনের মাধ্যমে অ্যাপ্লিকেশনটি বিশ্বের বিভিন্ন ভাষার সাথে সামঞ্জস্যপূর্ণ করা যায়, যা আপনার অ্যাপ্লিকেশনকে আরো বিশ্বজনীন এবং ব্যবহারকারী-বান্ধব করে তোলে।
Read more