Skill

ইন্টারন্যাশনালাইজেশন (i18n) এবং লোকালাইজেশন (l10n)

জী ফ্রেমওয়ার্ক (Yii Framework) - Web Development

284

ইন্টারন্যাশনালাইজেশন (i18n) এবং লোকালাইজেশন (l10n) হল দুটি গুরুত্বপূর্ণ প্রক্রিয়া, যা একটি ওয়েব অ্যাপ্লিকেশনকে বৈশ্বিক (global) ব্যবহারকারীদের জন্য উপযোগী করে তোলে। Yii ফ্রেমওয়ার্ক এই দুটি প্রক্রিয়াকে সমর্থন করে, যাতে ডেভেলপাররা তাদের অ্যাপ্লিকেশনকে বিভিন্ন ভাষা এবং সংস্কৃতির জন্য সহজে উপযোগী করতে পারে।

  • ইন্টারন্যাশনালাইজেশন (i18n): একটি অ্যাপ্লিকেশনকে বিভিন্ন ভাষা ও সংস্কৃতির জন্য প্রস্তুত করার প্রক্রিয়া। এটি সাধারণত সফটওয়্যারের কোড এবং আর্কিটেকচারকে ভাষার জন্য নিরপেক্ষ করে তোলে।
  • লোকালাইজেশন (l10n): নির্দিষ্ট ভাষা এবং সংস্কৃতির জন্য অ্যাপ্লিকেশনটি কাস্টমাইজ করার প্রক্রিয়া। এখানে মূলত ভাষার স্ট্রিং, তারিখ, সময়, সংখ্যা ইত্যাদি কাস্টমাইজ করা হয়।

Yii ফ্রেমওয়ার্কে i18n এবং l10n ব্যবহার করা সহজ, এবং এই প্রক্রিয়া ব্যবহারের জন্য Yii প্রযোজ্য টুল এবং ফিচার সরবরাহ করে।


i18n এবং l10n প্রক্রিয়া Yii তে কিভাবে কাজ করে

Yii ফ্রেমওয়ার্কে i18n এবং l10n কার্যকরভাবে ব্যবহার করতে হলে কিছু কনফিগারেশন এবং নির্দিষ্ট ধাপ অনুসরণ করতে হয়। এখানে, আমরা দেখব কিভাবে Yii-তে এই প্রক্রিয়াগুলি কার্যকরী করা যায়।


i18n (ইন্টারন্যাশনালাইজেশন) সেটআপ

Yii-তে i18n সক্রিয় করার জন্য, আপনাকে কয়েকটি কনফিগারেশন করতে হবে যাতে অ্যাপ্লিকেশনটি বিভিন্ন ভাষার জন্য প্রস্তুত থাকে।

১. অ্যাপ্লিকেশনের কনফিগারেশন ফাইল আপডেট করা

Yii অ্যাপ্লিকেশনের config/web.php ফাইলের মধ্যে language এবং sourceLanguage কনফিগারেশন সেট করুন। এই সেটিংগুলি অ্যাপ্লিকেশনটির ডিফল্ট ভাষা এবং সোর্স ভাষা নির্ধারণ করে।

'language' => 'en-US',  // ডিফল্ট ভাষা (যেমন ইংরেজি)
'sourceLanguage' => 'en',  // সোর্স ভাষা (সাধারণত ইংরেজি রাখা হয়)

এছাড়া, অ্যাপ্লিকেশনের মধ্যে i18n সম্পর্কিত রিসোর্স ফাইলগুলো পরিচালনা করতে message ক্যাটালগ তৈরি করতে হবে।

২. মেসেজ ক্যাটালগ তৈরি করা

Yii-এর i18n সিস্টেমে মেসেজ ক্যাটালগ ব্যবহৃত হয়, যা বিভিন্ন ভাষার জন্য স্ট্রিং ধারণ করে। এটি সাধারণত messages ডিরেক্টরির মধ্যে রাখা হয়।

প্রথমে, একটি নতুন ফোল্ডার তৈরি করুন messages নামে এবং এর মধ্যে ভাষা অনুযায়ী সাবফোল্ডার তৈরি করুন, যেমন en (ইংরেজি) এবং bn (বাংলা)।

messages/
    en/
        app.php
    bn/
        app.php

৩. মেসেজ ফাইল তৈরি করা

এখন, প্রতি ভাষার জন্য একটি PHP ফাইল তৈরি করুন (যেমন app.php) এবং সেখানে আপনার মেসেজ স্ট্রিং গুলি সংজ্ঞায়িত করুন। উদাহরণস্বরূপ, en/app.php ফাইলে:

return [
    'Hello' => 'Hello',
    'Welcome to our website' => 'Welcome to our website',
];

এবং bn/app.php ফাইলে:

return [
    'Hello' => 'হ্যালো',
    'Welcome to our website' => 'আমাদের ওয়েবসাইটে স্বাগতম',
];

৪. মেসেজ ব্যবহার করা

মেসেজ ব্যবহার করার জন্য, Yii-এর Yii::t() ফাংশন ব্যবহার করা হয়, যা নির্দিষ্ট ভাষায় অনুবাদ করা স্ট্রিং রিটার্ন করে।

echo Yii::t('app', 'Hello');

এখানে, 'app' হল মেসেজ ক্যাটালগের নাম, এবং 'Hello' হল সেই ক্যাটালগের মধ্যে সংজ্ঞায়িত স্ট্রিং।


l10n (লোকালাইজেশন) সেটআপ

লোকালাইজেশন (l10n) হল নির্দিষ্ট ভাষা বা অঞ্চলের জন্য অ্যাপ্লিকেশনকে কাস্টমাইজ করা। Yii ফ্রেমওয়ার্কে, l10n সাধারণত তারিখ, সময়, সংখ্যা, মুদ্রা ইত্যাদির জন্য কাস্টমাইজেশন নিয়ে কাজ করে।

১. লকেল (Locale) কনফিগারেশন

Yii তে লকেল কনফিগারেশন করা সহজ। আপনাকে কেবল locale সেট করতে হবে। Yii ফ্রেমওয়ার্কে অ্যাপ্লিকেশনটির ভাষা এবং অঞ্চল (locale) পরিচালনা করা হয়।

'language' => 'bn-BD', // বাংলা (বাংলাদেশ) সেট করুন

এটি অ্যাপ্লিকেশনটির ভাষা পরিবর্তন করবে এবং তারিখ, সময়, সংখ্যা ইত্যাদির স্থানীয়করণও করবে।

২. সময় এবং তারিখ ফরম্যাট কাস্টমাইজ করা

Yii-তে তারিখ এবং সময় ফরম্যাট কাস্টমাইজ করার জন্য আপনি Yii::$app->formatter ব্যবহার করতে পারেন। এটি বিশেষ করে লোকালাইজড ডেটার জন্য উপযোগী।

// বাংলা ভাষায় তারিখ ফরম্যাট
echo Yii::$app->formatter->asDate('2024-12-16', 'long');  // উদাহরণ: ১৬ ডিসেম্বর ২০২৪

৩. সংখ্যা এবং মুদ্রা ফরম্যাট কাস্টমাইজ করা

Yii-তে লোকালাইজড সংখ্যার ফরম্যাটও খুব সহজে কাস্টমাইজ করা যায়।

// বাংলা ভাষায় সংখ্যা ফরম্যাট
echo Yii::$app->formatter->asDecimal(1234567.89); // ১,২৩,৪৫৬.৮৯

// মুদ্রা ফরম্যাট
echo Yii::$app->formatter->asCurrency(1234567.89, '৳'); // ৳১,২৩,৪৫৬.৮৯

এটি মুদ্রা এবং সংখ্যা স্থানীয়করণের জন্য অনেক উপকারী।


অ্যাপ্লিকেশন আন্তর্জাতিকীকরণ এবং স্থানীয়করণ

Yii তে একটি অ্যাপ্লিকেশনকে আন্তর্জাতিকীকরণ এবং স্থানীয়করণ করার জন্য আপনাকে কয়েকটি কনফিগারেশন ও কৌশল অনুসরণ করতে হবে:

  1. অভ্যন্তরীণ ভাষার স্ট্রিং (message catalogs) তৈরি করুন।
  2. language এবং locale সেটিংস কনফিগার করুন।
  3. Yii::t() ফাংশন ব্যবহার করে স্ট্রিংগুলোর অনুবাদ পরিচালনা করুন।
  4. Formatter ব্যবহার করে তারিখ, সময়, সংখ্যা এবং মুদ্রা কাস্টমাইজ করুন।

সারাংশ

Yii ফ্রেমওয়ার্কে i18n এবং l10n ব্যবহার করে আপনি অ্যাপ্লিকেশনটি আন্তর্জাতিকীকরণ এবং স্থানীয়করণ করতে পারেন। i18n মূলত ভাষা-নিরপেক্ষ স্ট্রিং এবং কাঠামো তৈরি করার প্রক্রিয়া, যা পরে l10n দ্বারা নির্দিষ্ট ভাষায় এবং অঞ্চলে কাস্টমাইজ করা হয়। Yii-এর message catalogs, Yii::t() ফাংশন, এবং formatter ক্লাস আপনাকে এই প্রক্রিয়াগুলি সহজভাবে বাস্তবায়ন করতে সাহায্য করে।

Content added By

i18n (Internationalization) এবং l10n (Localization) দুটি গুরুত্বপূর্ণ ধারণা যা বিশেষত ওয়েব অ্যাপ্লিকেশন বা সফটওয়্যার ডেভেলপমেন্টে আন্তর্জাতিকীকরণ এবং স্থানীয়করণ প্রক্রিয়ার সাথে সম্পর্কিত। Yii ফ্রেমওয়ার্কে এই দুটি ধারণা কার্যকরভাবে ব্যবহৃত হয়, যা ডেভেলপারদের বিভিন্ন ভাষায় অ্যাপ্লিকেশন চালানোর সুবিধা প্রদান করে। Yii-তে i18n এবং l10n ইন্টিগ্রেশন খুবই সহজ এবং এর জন্য প্রচুর প্রস্তুত সাপোর্ট রয়েছে।


i18n (Internationalization) কী?

i18n (Internationalization) হল সেই প্রক্রিয়া যা অ্যাপ্লিকেশন বা সফটওয়্যারকে এমনভাবে ডিজাইন এবং ডেভেলপ করে যাতে এটি বিভিন্ন ভাষা এবং সংস্কৃতিতে সহজে localize (স্থানীয়করণ) করা যায়। সাধারণত i18n প্রক্রিয়ায় ভাষা, তারিখের ফরম্যাট, সময় অঞ্চল, মুদ্রা, এবং অন্যান্য স্থানীয় উপাদানগুলির জন্য সাপোর্ট প্রদান করা হয়।

i18n-এ মূলত অ্যাপ্লিকেশনটি এমনভাবে নির্মিত হয় যাতে এটি একাধিক ভাষা এবং অঞ্চল সমর্থন করতে পারে, কিন্তু এতে বিশেষ কোনো নির্দিষ্ট ভাষা বা সংস্কৃতির সাথে সম্পর্কিত কিছু থাকে না।

Yii 2 এ i18n

Yii ফ্রেমওয়ার্কে i18n সিস্টেমের মাধ্যমে ভাষা ফাইল তৈরি করা হয়। এই ফাইলগুলি বিভিন্ন ভাষার জন্য স্ট্যাটিক টেক্সট স্টোর করতে ব্যবহৃত হয়। Yii 2 ফ্রেমওয়ার্কে এই ফিচারটি কাজে লাগাতে আপনাকে messages ডিরেক্টরিতে ভাষা ফাইলগুলি তৈরি করতে হয় এবং এগুলো অ্যাপ্লিকেশনটির বিভিন্ন অংশে ব্যবহার করা হয়।

i18n কনফিগারেশন:

Yii 2-এ i18n কনফিগারেশন সাধারণত config/web.php ফাইলে করা হয়, যেখানে ভাষা সংক্রান্ত সেটিংস নির্ধারণ করা হয়।

'language' => 'en-US', // ডিফল্ট ভাষা
'charset' => 'UTF-8',
'extensions' => [
    'i18n' => [
        'class' => 'yii\i18n\I18N',
        'translations' => [
            'app*' => [
                'class' => 'yii\i18n\PhpMessageSource',
                'basePath' => '@app/messages',
            ],
        ],
    ],
],

এই কনফিগারেশনে:

  • language দিয়ে ডিফল্ট ভাষা সেট করা হয়।
  • translations দ্বারা app* নামে একটি ট্রান্সলেশন গ্রুপের জন্য ভাষার ফাইল ব্যবহৃত হয়।
  • basePath নির্দেশ করে কোথায় ভাষা ফাইলগুলি অবস্থিত থাকবে।

ভাষা ফাইল তৈরি করা

messages ডিরেক্টরিতে ভাষার ফাইল তৈরি করতে হয়। উদাহরণস্বরূপ, en-US.php এবং bn-BD.php নামে ইংরেজি এবং বাংলা ভাষার জন্য ফাইল তৈরি করা যেতে পারে:

en-US.php:

return [
    'Welcome to Yii' => 'Welcome to Yii',
    'Hello, world!' => 'Hello, world!',
];

bn-BD.php:

return [
    'Welcome to Yii' => 'Yii তে স্বাগতম',
    'Hello, world!' => 'হ্যালো, বিশ্ব!',
];

ভাষা পরিবর্তন করা

Yii 2-এ আপনি ব্যবহারকারীর ভাষা পরিবর্তন করতে পারেন। যেমন, ইউজার যদি বাংলা ভাষা চায়, তাহলে আপনি অ্যাপ্লিকেশনের ভাষা পরিবর্তন করতে পারেন:

Yii::$app->language = 'bn-BD';

এভাবে, অ্যাপ্লিকেশনটি বাংলা ভাষায় রেন্ডার হবে, যেখানে সব স্ট্যাটিক টেক্সট বাংলা ভাষার ফাইলে দেওয়া থাকবে।


l10n (Localization) কী?

l10n (Localization) হল একটি প্রক্রিয়া যা অ্যাপ্লিকেশনটির নির্দিষ্ট ভাষা এবং সংস্কৃতি অনুযায়ী কাস্টমাইজ করা হয়। এটি মূলত i18n এর পরবর্তী ধাপ যেখানে একটি অ্যাপ্লিকেশনকে নির্দিষ্ট অঞ্চলের ভাষা, সময়, তারিখ, মুদ্রা ইত্যাদির উপযোগী করা হয়।

l10n একটি কনটেক্সট নির্ধারণের মাধ্যমে অ্যাপ্লিকেশনকে একটি নির্দিষ্ট বাজার বা অঞ্চলের জন্য উপযোগী করে তোলে। এটি ভাষার অনুবাদ, স্থানীয় সংস্করণের জন্য তারিখের ফরম্যাট এবং মুদ্রা বিনিময়ের ফিচারসহ অন্যান্য নির্দিষ্ট সেটিংস অন্তর্ভুক্ত করে।

Yii 2 এ l10n

Yii 2-এ l10n প্রক্রিয়া করার জন্য, আপনি কেবলমাত্র i18n এর জন্য ভাষা ফাইল তৈরি করবেন না, বরং আপনি dateFormatter, numberFormatter, currencyFormatter ইত্যাদির মাধ্যমে স্থানীয়করণের বিষয়গুলি কনফিগার করতে পারেন।

উদাহরণ: তারিখ এবং সময়ের স্থানীয়করণ

Yii::$app->formatter->locale = 'bn-BD'; // বাংলা (বাংলাদেশ)
Yii::$app->formatter->dateFormat = 'php:d-M-Y'; // বাংলা তারিখ ফরম্যাট
Yii::$app->formatter->timeFormat = 'php:H:i'; // বাংলা সময় ফরম্যাট

এই কনফিগারেশন দিয়ে আপনি অ্যাপ্লিকেশনটির সময় এবং তারিখ প্রদর্শনের স্টাইল বাংলা সংস্করণের জন্য পরিবর্তন করতে পারবেন।


i18n এবং l10n এর মধ্যে পার্থক্য

  • i18n (Internationalization): এটি অ্যাপ্লিকেশনকে এমনভাবে তৈরি করার প্রক্রিয়া, যাতে সেটি বিভিন্ন ভাষা এবং অঞ্চল সমর্থন করতে পারে, তবে কোনও নির্দিষ্ট ভাষা বা সংস্কৃতির উপর নির্ভর করে না।
  • l10n (Localization): এটি অ্যাপ্লিকেশনকে একটি নির্দিষ্ট ভাষা বা সংস্কৃতির উপযোগী করার প্রক্রিয়া, যেমন একটি নির্দিষ্ট অঞ্চলের ভাষা, তারিখ, সময়, এবং মুদ্রা ফরম্যাট।

সারাংশ

Yii ফ্রেমওয়ার্কে i18n এবং l10n দুইটি গুরুত্বপূর্ণ প্রক্রিয়া যা আন্তর্জাতিকীকরণ এবং স্থানীয়করণের জন্য ব্যবহৃত হয়। i18n অ্যাপ্লিকেশনটি বিভিন্ন ভাষা এবং সংস্কৃতিতে কাজ করার উপযোগী করে, যেখানে l10n একটি নির্দিষ্ট ভাষা এবং সংস্কৃতির উপযোগী করে অ্যাপ্লিকেশনটিকে কাস্টমাইজ করে। Yii 2 এর i18n সিস্টেম সহজে ভাষা ফাইল ব্যবহার এবং কাস্টমাইজেশন করতে সহায়তা করে, এবং l10n এর মাধ্যমে সময়, তারিখ, মুদ্রা ইত্যাদি উপাদানগুলি স্থানীয় সংস্করণের জন্য ফরম্যাট করা যায়।

Content added By

Yii ফ্রেমওয়ার্ক আন্তর্জাতিকীকরণ (i18n) এবং স্থানীয়ীকরণ (l10n) সমর্থন করে, যা অ্যাপ্লিকেশনটি বিভিন্ন ভাষায় প্রদর্শন করতে সহায়তা করে। Yii-তে ভাষা ফাইল এবং ট্রান্সলেশন ব্যবস্থাপনা একটি গুরুত্বপূর্ণ অংশ, যা আপনাকে সহজেই বিভিন্ন ভাষায় অ্যাপ্লিকেশনের ইন্টারফেস তৈরি করতে সক্ষম করে।


i18n এবং l10n কি?

  • i18n (Internationalization): অ্যাপ্লিকেশনকে এমনভাবে ডিজাইন করা যাতে এটি বিভিন্ন ভাষা এবং সংস্কৃতির জন্য সহজেই কাস্টমাইজ করা যায়।
  • l10n (Localization): i18n-এ তৈরি করা অ্যাপ্লিকেশনকে বিশেষ কোনো ভাষা বা অঞ্চলের জন্য কাস্টমাইজ করা।

Yii ফ্রেমওয়ার্কে, i18n এবং l10n ব্যবস্থাপনার জন্য ভাষা ফাইল (language files) ব্যবহার করা হয়, যা ট্রান্সলেশন স্ট্রিং এবং অন্যান্য স্থানীয় ভাষার ডেটা ধারণ করে।


Yii তে ভাষা ফাইলস

Yii ফ্রেমওয়ার্ক ভাষা ফাইলগুলি messages/ ডিরেক্টরিতে সংরক্ষণ করে। এই ফাইলগুলো সাধারণত PHP অ্যারে হিসেবে তৈরি হয় এবং একে একে বিভিন্ন ভাষায় অনুবাদ করা হয়।

ভাষা ফাইলের গঠন

Yii তে ভাষা ফাইলের গঠন সাধারণত এমন হয়:

/messages
    /en-US
        app.php
    /fr-FR
        app.php
  • en-US/app.php ফাইলটি ইংরেজি ভাষার জন্য অনুবাদ স্ট্রিং ধারণ করে।
  • fr-FR/app.php ফাইলটি ফরাসি ভাষার জন্য অনুবাদ স্ট্রিং ধারণ করে।

ভাষা ফাইলের উদাহরণ

en-US/app.php:

return [
    'Welcome' => 'Welcome to our site!',
    'Hello, {name}' => 'Hello, {name}!',
];

fr-FR/app.php:

return [
    'Welcome' => 'Bienvenue sur notre site!',
    'Hello, {name}' => 'Bonjour, {name}!',
];

এইভাবে, আপনি প্রতিটি ভাষার জন্য আলাদা আলাদা ফাইল তৈরি করতে পারেন এবং এতে প্রয়োজনীয় অনুবাদ স্ট্রিং যোগ করতে পারেন।


Yii তে ট্রান্সলেশন

Yii ফ্রেমওয়ার্কে ট্রান্সলেশন করার জন্য Yii::t() মেথড ব্যবহার করা হয়। এই মেথড একটি ট্রান্সলেশন স্ট্রিং ব্যবহার করে নির্দিষ্ট ভাষায় অনুবাদ প্রদর্শন করে।

ট্রান্সলেশন ব্যবহারের উদাহরণ

echo Yii::t('app', 'Welcome');

এখানে, 'app' হচ্ছে ভাষা ফাইলের ক্যাটেগরি (যেমন app.php), এবং 'Welcome' হচ্ছে স্ট্রিং যা ট্রান্সলেট হবে।

আপনি যদি ফ্রেঞ্চ ভাষায় ট্রান্সলেশন করতে চান, এবং সিস্টেমের লোকেশন ফ্রেঞ্চ হিসেবে সেট করা থাকে, তাহলে এটি "Bienvenue sur notre site!" হিসাবে প্রদর্শিত হবে।


ভাষা নির্বাচন এবং কনফিগারেশন

Yii ফ্রেমওয়ার্কে ভাষা নির্বাচন করা সহজ। আপনি অ্যাপ্লিকেশনের কনফিগারেশন ফাইলে language কনফিগারেশন সেটিংস ব্যবহার করে ভাষা নির্ধারণ করতে পারেন।

ভাষা সেট করা

'language' => 'en-US',  // ইংরেজি ভাষা ব্যবহার

আপনি যদি অ্যাপ্লিকেশনটির ভাষা পরিবর্তন করতে চান, আপনি নিম্নলিখিতভাবে এটি করতে পারেন:

Yii::$app->language = 'fr-FR';  // ফরাসি ভাষা সেট করা

এটি সেশন বা কুকি ব্যবহার করে ভাষা পরিবর্তন করতে সাহায্য করে, যাতে ইউজার অ্যাপ্লিকেশনের ভাষা পরিবর্তন করতে পারেন।


ডাইন্যামিক ট্রান্সলেশন

Yii তে আপনি ভাষা পরিবর্তন করার সময় কাস্টম ডাটা যেমন ইউজারের নাম, বয়স ইত্যাদি ডায়নামিকালি ট্রান্সলেট করতে পারেন। এর জন্য {} চিহ্ন ব্যবহার করা হয়।

উদাহরণ

echo Yii::t('app', 'Hello, {name}', ['name' => 'John']);

এই কোডটি ইংরেজি ভাষায় "Hello, John!" এবং ফরাসি ভাষায় "Bonjour, John!" প্রদর্শন করবে, যদি ফরাসি ভাষা নির্বাচিত থাকে।


i18n এবং l10n এর উন্নত ব্যবহার

Yii তে আরও উন্নত i18n এবং l10n ব্যবস্থাপনা করা যায়, যেমন:

  1. ডেটা ফর্ম্যাটিং: Yii স্বয়ংক্রিয়ভাবে ভাষার ভিত্তিতে তারিখ, সময় এবং সংখ্যার ফরম্যাট পরিবর্তন করে। উদাহরণস্বরূপ:

    echo Yii::$app->formatter->asDate('2024-12-15', 'long');  // "December 15, 2024" অথবা "15 décembre 2024"
    
  2. ভাষা-নির্ভর কনটেন্ট: আপনি বিভিন্ন ভাষার জন্য বিশেষ কনটেন্ট শো করতে পারেন। উদাহরণস্বরূপ, কিছু ছবি বা মেনু অপশন বিভিন্ন ভাষায় ভিন্ন হতে পারে।
  3. কাস্টম ভাষা ফাইল: Yii তে আপনি কাস্টম ভাষা ফাইল তৈরি করতে পারেন, যেখানে ডেভেলপারদের নির্দিষ্ট ট্রান্সলেশন স্ট্রিং দেওয়া হয়। এটি বড় প্রকল্পে বিশেষভাবে সাহায্য করে যেখানে অনেক কাস্টম ফিচার প্রয়োজন।

সারাংশ

Yii ফ্রেমওয়ার্কে i18n এবং l10n ব্যবস্থাপনার জন্য ভাষা ফাইল এবং ট্রান্সলেশন ব্যবস্থাপনা গুরুত্বপূর্ণ ভূমিকা পালন করে। Yii::t() মেথডের মাধ্যমে সহজে ট্রান্সলেশন করা যায় এবং ভাষা ফাইলগুলো বিভিন্ন ভাষায় অনুবাদ সংরক্ষণ করে। Yii তে ভাষা নির্বাচন এবং কনফিগারেশন সহজ, এবং ডেভেলপাররা ডায়নামিক ট্রান্সলেশন ও কাস্টম ভাষা ফাইল ব্যবহার করতে পারেন। এই সব বৈশিষ্ট্য Yii-কে একাধিক ভাষার অ্যাপ্লিকেশন তৈরির জন্য একটি শক্তিশালী প্ল্যাটফর্ম হিসেবে প্রতিষ্ঠিত করে।

Content added By

Yii ফ্রেমওয়ার্কে মাল্টি-ল্যাঙ্গুয়েজ সাপোর্ট প্রদান করার জন্য একটি শক্তিশালী ইন্টারন্যাশনালাইজেশন (i18n) এবং লোকালাইজেশন (l10n) সিস্টেম রয়েছে। এর মাধ্যমে আপনি অ্যাপ্লিকেশনকে একাধিক ভাষায় কনফিগার করতে পারেন, যাতে আপনার ওয়েবসাইট বা অ্যাপ্লিকেশন বিভিন্ন ভাষায় প্রদর্শিত হয়। Yii ফ্রেমওয়ার্কে মাল্টি-ল্যাঙ্গুয়েজ সাপোর্ট ইমপ্লিমেন্ট করা বেশ সহজ এবং এর জন্য নির্দিষ্ট কিছু স্টেপ অনুসরণ করতে হয়।


১. আন্তর্জাতিকীকরণ (Internationalization) এবং স্থানীয়করণ (Localization)

Internationalization (i18n) হল এমন একটি প্রক্রিয়া যার মাধ্যমে একটি অ্যাপ্লিকেশনকে বিভিন্ন ভাষায় ব্যবহারযোগ্য করে তোলা হয়। এটি কোডের মধ্যে ভাষার নির্দিষ্ট টেক্সট বা কনস্ট্যান্ট গুলোকে পরিবর্তন করার সুযোগ দেয়।
Localization (l10n) হল নির্দিষ্ট ভাষার জন্য অ্যাপ্লিকেশনটি কাস্টমাইজ করা, যেমন ভাষার ধরন, ডেটা ফরম্যাট, সংখ্যা এবং মুদ্রার ধরন ইত্যাদি।

Yii ফ্রেমওয়ার্কে এটি বাস্তবায়ন করতে নিম্নলিখিত ধাপগুলো অনুসরণ করা যায়।


২. ভাষা কনফিগারেশন সেটআপ

প্রথমে, আপনাকে অ্যাপ্লিকেশনটি মাল্টি-ল্যাঙ্গুয়েজ সমর্থন করতে কনফিগার করতে হবে। Yii ফ্রেমওয়ার্কে ভাষা পরিবর্তন করার জন্য Yii::$app->language ব্যবহার করা হয়।

২.১. অ্যাপ্লিকেশন কনফিগারেশন পরিবর্তন

config/web.php ফাইলে ভাষা কনফিগার করুন। এই কনফিগারেশনে আপনি ডিফল্ট ভাষা নির্ধারণ করবেন এবং অন্যান্য ভাষার জন্য ট্রান্সলেশন ফাইলগুলো লোড করবেন।

'language' => 'en-US',  // ডিফল্ট ভাষা
'components' => [
    'i18n' => [
        'translations' => [
            'app*' => [
                'class' => 'yii\i18n\PhpMessageSource',
                'basePath' => '@app/messages',  // ট্রান্সলেশন ফাইলের লোকেশন
                'fileMap' => [
                    'app' => 'app.php',  // ডিফল্ট ট্রান্সলেশন ফাইল
                ],
            ],
        ],
    ],
],

এখানে, language দিয়ে আপনি অ্যাপ্লিকেশনের ডিফল্ট ভাষা নির্ধারণ করেছেন এবং i18n কম্পোনেন্টের মাধ্যমে ভাষার জন্য ট্রান্সলেশন ফাইলের অবস্থান নির্দিষ্ট করেছেন।

২.২. ভাষার ফাইল তৈরি করা

messages ফোল্ডারে বিভিন্ন ভাষার জন্য আলাদা আলাদা ফাইল তৈরি করতে হবে। উদাহরণস্বরূপ, ইংরেজি এবং বাংলা ভাষার জন্য ট্রান্সলেশন ফাইল তৈরি করা হবে।

  1. messages/en/app.php (ইংরেজি ভাষার জন্য):
return [
    'Hello, World!' => 'Hello, World!',
    'Welcome to Yii Framework' => 'Welcome to Yii Framework',
];
  1. messages/bn/app.php (বাংলা ভাষার জন্য):
return [
    'Hello, World!' => 'হ্যালো, বিশ্ব!',
    'Welcome to Yii Framework' => 'Yii ফ্রেমওয়ার্কে স্বাগতম',
];

এখানে, app.php ফাইলগুলোতে ট্রান্সলেটেড স্ট্রিংগুলোর অ্যারে রাখা হয়েছে।


৩. ভাষা পরিবর্তন করার জন্য UI তৈরি করা

এখন, ব্যবহারকারী যদি ভাষা পরিবর্তন করতে চায়, তাহলে তাকে একটি UI প্রদান করতে হবে। এটি সাধারণত একটি ড্রপডাউন মেনু বা ল্যাংগুয়েজ সুইচারের মাধ্যমে করা হয়।

৩.১. ভাষা সুইচারের উদাহরণ

use yii\helpers\Html;
use yii\helpers\Url;

$languageOptions = [
    'en-US' => 'English',
    'bn-BD' => 'বাংলা',
];

echo Html::beginForm(Url::to(['site/language']), 'post');
echo Html::dropDownList('language', Yii::$app->language, $languageOptions, [
    'onchange' => 'this.form.submit()',
]);
echo Html::endForm();

এখানে, একটি ড্রপডাউন লিস্ট তৈরি করা হয়েছে যেখানে ইউজার ভাষা নির্বাচন করতে পারবেন। onchange ইভেন্টে ফর্মটি সাবমিট হয়ে যাবে এবং ভাষা পরিবর্তিত হবে।

৩.২. ভাষা পরিবর্তনের জন্য অ্যাকশন তৈরি করা

এখন, SiteController এ একটি অ্যাকশন তৈরি করে ব্যবহারকারী যে ভাষা নির্বাচন করবেন তা গ্রহণ করতে হবে।

public function actionLanguage($language)
{
    Yii::$app->language = $language;
    return $this->goBack();
}

এই অ্যাকশনের মাধ্যমে ইউজারের নির্বাচন করা ভাষা Yii::$app->language এ সেট হয়ে যাবে এবং পেজটি পুনরায় রেন্ডার হবে।


৪. ট্রান্সলেশন ব্যবহার

এখন আপনি আপনার অ্যাপ্লিকেশনে ট্রান্সলেটেড স্ট্রিংগুলো ব্যবহার করতে পারবেন। Yii ফ্রেমওয়ার্কে ট্রান্সলেটেড স্ট্রিং পেতে Yii::t() মেথড ব্যবহার করা হয়।

echo Yii::t('app', 'Hello, World!');

এখানে, app হচ্ছে ডোমেইন (যা আপনার ভাষার ফাইলের নামের সাথে মেলে) এবং 'Hello, World!' হচ্ছে সেই স্ট্রিং যেটি আপনি ট্রান্সলেট করতে চান।


৫. ডেটা লোকালাইজেশন

শুধু স্ট্রিং নয়, আপনি ডেটা যেমন তারিখ, সময়, সংখ্যা ইত্যাদিও লোকালাইজ করতে পারেন। Yii ফ্রেমওয়ার্কে এই কাজটি খুবই সহজ। আপনি yii\i18n\Formatter ক্লাস ব্যবহার করে এই কাজ করতে পারেন।

$formatter = Yii::$app->formatter;
$formatter->locale = 'bn-BD';  // বাংলা লোকাল সেট করা
echo $formatter->asDate('2024-12-16', 'long');

এখানে, asDate() মেথড দিয়ে আপনি তারিখটি নির্দিষ্ট লোকাল অনুযায়ী ফরম্যাট করতে পারবেন।


সারাংশ

Yii ফ্রেমওয়ার্কে মাল্টি-ল্যাঙ্গুয়েজ সাপোর্ট ইমপ্লিমেন্ট করা খুবই সহজ। Internationalization (i18n) এবং Localization (l10n) সিস্টেম ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশনকে একাধিক ভাষায় কনফিগার করতে পারেন। ভাষার জন্য ট্রান্সলেশন ফাইল তৈরি করে, UI ড্রপডাউন বা সুইচারের মাধ্যমে ব্যবহারকারীর ভাষা পরিবর্তন করা যায়। এছাড়াও, স্ট্রিং এবং ডেটা লোকালাইজেশন সহজেই পরিচালনা করা যায়।

Content added By

Yii ফ্রেমওয়ার্কে Locale Switching এবং Formatting হলো এমন দুটি গুরুত্বপূর্ণ ফিচার, যা আন্তর্জাতিককরণ (i18n) এবং স্থানীয়করণ (l10n) প্রক্রিয়াকে সহজ এবং কার্যকরী করে তোলে। Locale হল একটি ব্যবহারকারী বা সিস্টেমের ভাষা, দেশের সংযোগ বা সেটিং, যা বিভিন্ন কনটেন্ট ফরম্যাটিং, তারিখ, সময়, সংখ্যা এবং মুদ্রার ফরম্যাটিং নির্ধারণে সহায়ক।

Yii ফ্রেমওয়ার্কের Locale Switching ফিচার ব্যবহারকারীদের ইন্টারফেসে বিভিন্ন ভাষার মধ্যে পরিবর্তন করতে সহায়তা করে, এবং Formatting ফিচারটি ব্যবহারকারীর অঞ্চলের ভিত্তিতে ডেটা প্রদর্শন করতে সক্ষম করে। এটি অ্যাপ্লিকেশনটিকে বিভিন্ন ভাষায় এবং অঞ্চলে ব্যবহারযোগ্য করে তোলে, যা গ্লোবালাইজেশন (Localization) এবং আন্তর্জাতিককরণ (Internationalization) প্রক্রিয়া সহজ করে।


Locale Switching

Locale Switching হল এমন একটি প্রক্রিয়া যেখানে ব্যবহারকারীরা তাদের পছন্দের ভাষা বা অঞ্চলের জন্য অ্যাপ্লিকেশন কনটেন্ট দেখতে পারেন। Yii ফ্রেমওয়ার্কে, এটি সহজে কনফিগার করা যায় এবং বিভিন্ন ভাষার ফাইল ব্যবহৃত হয়।

১. Locale সেটআপ

প্রথমে, আপনাকে config/web.php ফাইলে ভাষা সেটআপ করতে হবে। Yii ফ্রেমওয়ার্ক language কম্পোনেন্টের মাধ্যমে অ্যাপ্লিকেশনের ডিফল্ট ভাষা নির্ধারণ করে।

config/web.php

'language' => 'en-US',  // ডিফল্ট ভাষা ইংরেজি

এখানে 'en-US' সেট করা হয়েছে, যা ইংরেজি (যুক্তরাষ্ট্র) ভাষা নির্ধারণ করে। আপনি চাইলে অন্য ভাষাও সেট করতে পারেন, যেমন 'bn-BD' (বাংলা, বাংলাদেশ)।

২. ভাষার ফাইল তৈরি করা

আপনি চাইলে আপনার অ্যাপ্লিকেশনকে একাধিক ভাষায় সমর্থন দিতে পারেন। Yii ভাষার ফাইলগুলি messages ডিরেক্টরিতে সংরক্ষণ করে। প্রতিটি ভাষার জন্য আলাদা একটি ফোল্ডার তৈরি করুন এবং তার মধ্যে PHP অ্যারে ব্যবহার করে ভাষার টেক্সটগুলো সংরক্ষণ করুন।

উদাহরণ: বাংলায় ভাষার ফাইল তৈরি করা:

  1. messages/bn-BD/app.php ফাইল তৈরি করুন।
  2. এই ফাইলে আপনি প্রয়োজনীয় টেক্সট এর অনুবাদ দেবেন।
return [
    'Hello, world!' => 'হ্যালো, বিশ্ব!',
    'Welcome to Yii Framework' => 'Yii ফ্রেমওয়ার্কে স্বাগতম',
];

এখানে, আপনি বাংলা ভাষায় Hello, world! এবং Welcome to Yii Framework এর অনুবাদ করেছেন।

৩. ভাষা পরিবর্তন (Locale Switching)

ব্যবহারকারীকে ভাষা পরিবর্তন করতে দিতে, আপনার ভিউ বা কন্ট্রোলারে একটি ভাষা নির্বাচন সিস্টেম তৈরি করতে হবে। সাধারণত, এটি একটি ড্রপডাউন মেনু বা একটি URL প্যারামিটার মাধ্যমে করা হয়।

Controller (ভাষা পরিবর্তন করার উদাহরণ):

public function actionSwitchLanguage($language)
{
    if (in_array($language, ['en-US', 'bn-BD'])) {
        Yii::$app->language = $language;
    }
    return $this->redirect(Yii::$app->request->referrer);
}

এখানে, কন্ট্রোলারটি $language প্যারামিটারটি গ্রহণ করে এবং এটি একটি বৈধ ভাষা হলে, ব্যবহারকারীর ভাষা সেট করে।

View (ভাষা নির্বাচন ড্রপডাউন):

<?php
echo yii\helpers\Html::dropDownList('language', Yii::$app->language, [
    'en-US' => 'English',
    'bn-BD' => 'বাংলা',
], [
    'onchange' => 'this.form.submit()',
    'form' => 'language-form'
]);
?>

এটি একটি ড্রপডাউন তৈরি করবে, যেখানে ব্যবহারকারী তাদের পছন্দসই ভাষা নির্বাচন করতে পারবে এবং তা পরিবর্তন হবে।


Formatting

Yii ফ্রেমওয়ার্কে Formatting আপনাকে আপনার অ্যাপ্লিকেশনটি বিভিন্ন অঞ্চলের জন্য উপযুক্তভাবে ডেটা প্রদর্শন করতে সাহায্য করে। এটি বিশেষ করে তারিখ, সময়, সংখ্যা, মুদ্রা ইত্যাদি ফরম্যাটিং করতে ব্যবহৃত হয়।

১. তারিখ এবং সময় ফরম্যাটিং

Yii 2 তারিখ এবং সময় প্রদর্শন করতে শক্তিশালী DateFormatter ক্লাস প্রদান করে। আপনি Yii::$app->formatter ব্যবহার করে সহজেই স্থানীয়তার উপর ভিত্তি করে তারিখ এবং সময় ফরম্যাট করতে পারবেন।

Date and Time Formatting Example:

echo Yii::$app->formatter->asDate('2024-12-25', 'long');  // December 25, 2024
echo Yii::$app->formatter->asTime('2024-12-25 14:30:00', 'short'); // 2:30 PM
  • asDate() তারিখ ফরম্যাট করে এবং 'long' প্যারামিটারটি একটি দীর্ঘ ফরম্যাটে তারিখ দেখাবে।
  • asTime() সময় ফরম্যাট করে এবং 'short' প্যারামিটারটি একটি সংক্ষিপ্ত ফরম্যাটে সময় দেখাবে।

২. সংখ্যা এবং মুদ্রা ফরম্যাটিং

Yii আপনাকে সংখ্যা এবং মুদ্রা ফরম্যাট করার জন্য asDecimal(), asCurrency() এবং asPercent() ফরম্যাটিং ফাংশন প্রদান করে।

Currency Formatting Example:

echo Yii::$app->formatter->asCurrency(12345.67);  // $12,345.67 (USD)
echo Yii::$app->formatter->asCurrency(12345.67, 'bdt'); // ৳12,345.67 (BDT)
  • asCurrency() ফাংশনটি সংখ্যাকে স্থানীয় মুদ্রার ফরম্যাটে রূপান্তরিত করে।
  • আপনি মুদ্রার সিম্বল এবং সঠিক স্থানীয়করণ পেতে ISO মুদ্রার কোড পাস করতে পারেন (যেমন 'bdt' বা 'usd')।

৩. সংখ্যা ফরম্যাটিং

Number Formatting Example:

echo Yii::$app->formatter->asDecimal(12345.6789, 2);  // 12,345.68
  • asDecimal() ফাংশনটি দশমিক সংখ্যা ফরম্যাট করে এবং 2 প্যারামিটারটি দশমিক স্থান সংখ্যা নির্দেশ করে।

৪. স্থানীয়করণের জন্য formatter কনফিগারেশন

Yii ফ্রেমওয়ার্কে আপনি formatter কম্পোনেন্ট কনফিগার করতে পারেন যাতে আপনি নির্দিষ্ট তারিখ, সময়, সংখ্যা এবং মুদ্রার ফরম্যাটিং অনুসারে অ্যাপ্লিকেশন কনফিগার করতে পারেন।

config/web.php:

'components' => [
    'formatter' => [
        'class' => 'yii\i18n\Formatter',
        'decimalSeparator' => '.',
        'thousandSeparator' => ',',
        'currencyCode' => 'USD',
    ],
],

এখানে, formatter কম্পোনেন্টটি কনফিগার করা হয়েছে যাতে সংখ্যাগুলোর জন্য দশমিক এবং হাজারের আলাদা আলাদা সেপারেটর ব্যবহার করা হয় এবং মুদ্রার কোড USD সেট করা হয়েছে।


সারাংশ

Locale Switching এবং Formatting Yii ফ্রেমওয়ার্কের দুটি অত্যন্ত কার্যকরী বৈশিষ্ট্য, যা আন্তর্জাতিককরণ এবং স্থানীয়করণ প্রক্রিয়াকে সহজ করে তোলে। Locale Switching ব্যবহারকারীদের ভাষা পরিবর্তন করতে সহায়তা করে এবং Formatting স্থানীয়তার ভিত্তিতে ডেটা ফরম্যাট করে যেমন তারিখ, সময়, সংখ্যা, এবং মুদ্রা। এই ফিচারগুলির মাধ্যমে আপনি গ্লোবাল অ্যাপ্লিকেশন তৈরি করতে পারেন যা বিভিন্ন দেশের এবং অঞ্চলের ব্যবহারকারীদের জন্য উপযুক্ত।

Content added By
Promotion

Are you sure to start over?

Loading...