TurboGears এর পরিচিতি
TurboGears হলো একটি পূর্ণাঙ্গ ওয়েব ফ্রেমওয়ার্ক যা Python ভাষায় তৈরি। এটি দ্রুত ওয়েব অ্যাপ্লিকেশন তৈরি করার জন্য ডিজাইন করা হয়েছে এবং MVC (Model-View-Controller) আর্কিটেকচার অনুসরণ করে। TurboGears ফ্রেমওয়ার্কের মধ্যে অনেক শক্তিশালী ফিচার রয়েছে যেমন ORM (Object-Relational Mapping), form handling, data validation, এবং template rendering, যা ডেভেলপারদের দ্রুত এবং কার্যকরীভাবে ওয়েব অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে।
একটি গুরুত্বপূর্ণ ফিচার যা TurboGears সরবরাহ করে, তা হলো Multilingual Support বা ভাষা সমর্থন। TurboGears-এ Multilingual Support ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশনকে একাধিক ভাষায় কনফিগার করতে পারেন, যাতে বিভিন্ন ব্যবহারকারীরা তাদের পছন্দের ভাষায় ওয়েবসাইট ব্যবহার করতে পারে।
TurboGears এ Multilingual Support এবং Language Switching
Multilingual Support TurboGears-এ একটি গুরুত্বপূর্ণ ফিচার যা ব্যবহারকারীদের ভাষা পছন্দের ভিত্তিতে ওয়েব অ্যাপ্লিকেশন কনফিগার করার সুযোগ দেয়। এর মাধ্যমে আপনি বিভিন্ন ভাষায় কনটেন্ট সরবরাহ করতে পারেন এবং ব্যবহারকারীদের তাদের পছন্দের ভাষায় ওয়েবসাইট ব্যবহার করতে সক্ষম করেন। Language Switching ফিচারটি ব্যবহারকারীদের সহজেই ভাষা পরিবর্তন করতে সক্ষম করে।
TurboGears এ ভাষা সমর্থন সেটআপ করার জন্য সাধারণত gettext এবং babel লাইব্রেরি ব্যবহার করা হয়, যা Internationalization (i18n) এবং Localization (l10n) কাজের জন্য ব্যবহৃত হয়।
TurboGears এ Multilingual Support কনফিগারেশন
১. TurboGears-এ i18n এবং l10n কনফিগারেশন
TurboGears এ Multilingual Support কনফিগার করতে প্রথমে gettext এবং babel লাইব্রেরি ইনস্টল করতে হবে। এই লাইব্রেরিগুলি আন্তর্জাতিকীকরণ (i18n) এবং স্থানীয়করণ (l10n) এর জন্য ব্যবহৃত হয়।
প্রথমে gettext ইনস্টল করুন:
pip install Babel
২. Application Configuration
TurboGears এর config ফোল্ডারে একটি ফাইল তৈরি করুন, যেখানে আপনি ভাষার পছন্দ কনফিগার করবেন। উদাহরণস্বরূপ, আপনার development.ini ফাইলে নিম্নলিখিত কোডটি যোগ করুন:
[app:main]
...
use_global_languages = true
languages = en, es, fr, de
default_locale = en
এখানে, languages সেটিংয়ের মাধ্যমে আপনি অ্যাপ্লিকেশনে ব্যবহারযোগ্য ভাষাগুলির তালিকা সংজ্ঞায়িত করেছেন এবং default_locale এর মাধ্যমে আপনি ডিফল্ট ভাষা নির্ধারণ করেছেন।
৩. Translation ফাইল তৈরি করা
TurboGears এ ভাষা অনুবাদ ব্যবস্থাপনা করতে pybabel টুল ব্যবহার করা হয়।
- Translate ফাইল তৈরি করুন:
pybabel init -i messages.pot -d translations -l en
এটি translations ফোল্ডারে ইংরেজি ভাষার জন্য একটি messages.po ফাইল তৈরি করবে।
- অনুবাদ করা:
messages.po ফাইলে আপনার অ্যাপ্লিকেশনের স্ট্যাটিক কনটেন্টগুলির অনুবাদ লিখুন।
- অনুবাদ কম্পাইল করা:
pybabel compile -d translations
এটি translations ফোল্ডারে কম্পাইল করা ট্রান্সলেশন ফাইল তৈরি করবে।
৪. Language Switching
TurboGears এ ভাষা পরিবর্তন করা খুবই সহজ। আপনি ব্যবহারকারীর পছন্দের ভাষা অনুযায়ী কনটেন্ট প্রদর্শন করতে পারেন। সাধারণত, ভাষা পরিবর্তন করার জন্য ব্যবহারকারীর জন্য একটি ড্রপডাউন অথবা ল্যাংগুয়েজ চয়েস প্রদান করা হয়।
Language Switcher Example:
<form method="post" action="/switch_language">
<select name="language">
<option value="en">English</option>
<option value="es">Spanish</option>
<option value="fr">French</option>
<option value="de">German</option>
</select>
<input type="submit" value="Change Language">
</form>
এটি একটি সাধারণ HTML ফর্ম, যা ব্যবহারকারীকে ভাষা পরিবর্তন করতে সক্ষম করে। আপনি এই ফর্মটি আপনার ওয়েবপেজে ব্যবহারকারীর জন্য উপস্থাপন করতে পারেন।
Language Switch Controller:
from tg import request, redirect
from tg.controllers import Controller, expose
from babel import Locale
class RootController(Controller):
@expose('json')
def switch_language(self, language):
request.language = language
return redirect('/')
এখানে, switch_language ফাংশনটি ব্যবহারকারী যে ভাষাটি নির্বাচন করেছে সেটি গ্রহণ করে এবং তারপর সাইটের ভাষা সেট করে।
৫. Multilingual Templates
TurboGears এ ভাষা সমর্থন করার জন্য, আপনাকে Jinja2 টেমপ্লেট ইঞ্জিনে অনুবাদ ট্যাগগুলি যুক্ত করতে হবে। এখানে একটি উদাহরণ দেওয়া হলো, যেখানে আপনি gettext ব্যবহার করবেন।
Template Example:
{% from "babel" import gettext as _ %}
<html>
<head>
<title>{{ _('Welcome to TurboGears!') }}</title>
</head>
<body>
<h1>{{ _('Hello, World!') }}</h1>
</body>
</html>
এখানে, _() ফাংশনটি gettext এর মাধ্যমে স্ট্যাটিক কনটেন্টকে অনুবাদ করবে। এতে আপনার টেমপ্লেট স্বয়ংক্রিয়ভাবে ভাষার উপর ভিত্তি করে কনটেন্ট প্রদর্শন করবে।
সারাংশ
TurboGears ফ্রেমওয়ার্কে Multilingual Support কনফিগার করার জন্য, gettext এবং babel লাইব্রেরি ব্যবহার করা হয়, যা i18n এবং l10n এর সুবিধা প্রদান করে। ভাষা পরিবর্তন করার জন্য আপনি ব্যবহারকারীকে একটি ভাষা নির্বাচন করার সুযোগ দিতে পারেন এবং এর পরে ভাষার উপর ভিত্তি করে কনটেন্ট প্রদর্শন করতে পারেন। TurboGears-এর মাধ্যমে language switching এবং multilingual templates ব্যবহার করে আপনার অ্যাপ্লিকেশনকে একাধিক ভাষায় কনফিগার করা সহজ হয়।
Read more