লোকালাইজড কনটেন্ট প্রদর্শন করা

Internationalization (i18n) এবং Localization (l10n) - জেন্ড ফ্রেমওয়ার্ক (Zend Framework) - Web Development

264

Zend Framework (এখন Laminas) এ লোকালাইজেশন (Localization) এবং ইন্টারন্যাশনালাইজেশন (Internationalization) একটি গুরুত্বপূর্ণ অংশ। এই ফিচারটি অ্যাপ্লিকেশনটিকে বিভিন্ন ভাষা এবং অঞ্চলের কনটেন্ট প্রদর্শন করার জন্য সাহায্য করে। আপনি যদি আপনার অ্যাপ্লিকেশনটি একাধিক ভাষায় প্রদর্শন করতে চান, তবে Zend Framework এর মধ্যে ভাষা নির্ধারণ, কনটেন্ট পরিবর্তন এবং ভাষাগত অপশন প্রদর্শন করার জন্য কিছু কনফিগারেশন করতে হবে।


লোকালাইজেশন (Localization) কি?

লোকালাইজেশন হল একটি প্রক্রিয়া যার মাধ্যমে আপনার অ্যাপ্লিকেশন বা সাইটটি বিভিন্ন ভাষা এবং অঞ্চলের জন্য কাস্টমাইজ করা হয়। এটি ভাষার, ডেটার ফরম্যাট, মুদ্রার ধরণ, এবং অন্য সাংস্কৃতিক উপাদানকে সমর্থন করে। উদাহরণস্বরূপ, ইংরেজিতে "date" 12/31/2024 হতে পারে, কিন্তু জার্মানিতে তা 31/12/2024 হতে পারে।

Zend Framework এ লোকালাইজেশন নিশ্চিত করার জন্য Zend\I18n কম্পোনেন্ট ব্যবহার করা হয়। এটি ডেটা ফরম্যাটিং, স্ট্রিং ট্রান্সলেশন, মুদ্রা, সংখ্যা, এবং অন্যান্য স্থানিক বিষয়গুলো পরিচালনা করতে সহায়তা করে।


লোকালাইজেশন কনফিগারেশন সেটআপ

  1. Zend\I18n কম্পোনেন্ট ইনস্টল করা

প্রথমে, আপনাকে Zend\I18n কম্পোনেন্ট ইনস্টল করতে হবে, যা আপনাকে ট্রান্সলেশন এবং স্থানিক ফরম্যাটিং প্রদান করবে।

composer require laminas/laminas-i18n
  1. ভাষা ফাইল তৈরি করা

Zend Framework এ লোকালাইজড কনটেন্ট প্রদর্শন করার জন্য আপনাকে ভাষার ফাইল তৈরি করতে হবে। সাধারণত ভাষা ফাইলগুলি .po বা .mo ফরম্যাটে হয়, তবে Zend এ আপনি PHP অ্যারের মাধ্যমে ভাষা ফাইল তৈরি করতে পারেন।

উদাহরণ: English ভাষা ফাইল (en_US.php)

return [
    'greeting' => 'Hello, world!',
    'welcome'  => 'Welcome to our application.',
];

উদাহরণ: Bengali ভাষা ফাইল (bn_BD.php)

return [
    'greeting' => 'হ্যালো, বিশ্ব!',
    'welcome'  => 'আমাদের অ্যাপ্লিকেশনে স্বাগতম।',
];

এই ভাষা ফাইলগুলি সাধারণত আপনার অ্যাপ্লিকেশনের language ডিরেক্টরির মধ্যে সংরক্ষণ করা হয়।

  1. লোকাল কনফিগারেশন

Zend Framework এর লোকালাইজেশন সিস্টেমের জন্য আপনাকে কনফিগারেশন সেটআপ করতে হবে যাতে অ্যাপ্লিকেশনটি সঠিক ভাষায় কনটেন্ট প্রদর্শন করতে পারে।

module.config.php

return [
    'service_manager' => [
        'factories' => [
            'Translator' => 'Zend\I18n\Translator\TranslatorServiceFactory',
        ],
    ],
    'translator' => [
        'locale' => 'en_US',  // Default locale
        'translation_file_patterns' => [
            [
                'type'     => 'phparray',
                'base_dir' => __DIR__ . '/../language',
                'pattern'  => '%s.php',
            ],
        ],
    ],
];

এখানে, locale সেট করা হয়েছে en_US (ইংরেজি) হিসেবে, এবং translation_file_patterns এর মাধ্যমে ভাষা ফাইলের লোকেশন নির্ধারণ করা হয়েছে।


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

আপনি অ্যাপ্লিকেশনে ব্যবহারকারীকে ভাষা পরিবর্তনের সুযোগ দিতে পারেন। এটি করতে আপনাকে ইভেন্ট বা কন্ট্রোলার থেকে locale পরিবর্তন করতে হবে।

ভাষা পরিবর্তন উদাহরণ

use Zend\I18n\Translator\Translator;

class LanguageController extends AbstractActionController
{
    protected $translator;

    public function __construct(Translator $translator)
    {
        $this->translator = $translator;
    }

    public function changeLanguageAction()
    {
        $locale = $this->params()->fromRoute('locale', 'en_US');  // URL থেকে লোকাল পাঠান
        $this->translator->setLocale($locale);
        
        return $this->redirect()->toRoute('home');  // হোম পেজে রিডিরেক্ট
    }
}

এখানে, আপনি URL এর মাধ্যমে লোকাল পাঠাতে পারেন, যেমন: /language/change/locale/en_US


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

একবার লোকালাইজেশন কনফিগার হয়ে গেলে, আপনি আপনার কন্ট্রোলার বা ভিউ থেকে ট্রান্সলেশন ফাংশন ব্যবহার করতে পারেন।

কন্ট্রোলারে ট্রান্সলেশন ব্যবহার

use Zend\I18n\Translator\Translator;

class IndexController extends AbstractActionController
{
    protected $translator;

    public function __construct(Translator $translator)
    {
        $this->translator = $translator;
    }

    public function indexAction()
    {
        // ট্রান্সলেটেড স্ট্রিং ব্যবহার
        $greeting = $this->translator->translate('greeting');
        return new ViewModel(['greeting' => $greeting]);
    }
}

এখানে, translate() মেথড ব্যবহার করে ভাষার ফাইল থেকে "greeting" চাবির মান ট্রান্সলেট করা হচ্ছে।

ভিউতে ট্রান্সলেশন ব্যবহার

// View script (e.g., index.phtml)
echo $this->translate('greeting');

এখানে, translate() মেথডের মাধ্যমে আপনি ভিউ স্ক্রিপ্টে ট্রান্সলেটেড স্ট্রিং প্রদর্শন করতে পারেন।


মুদ্রা এবং ডেটা ফরম্যাটিং

Zend Framework আপনাকে মুদ্রা এবং ডেটা ফরম্যাটিংয়ের জন্যও সুবিধা প্রদান করে। আপনি Zend\I18n\View\Helper\Currency এবং Zend\I18n\View\Helper\DateFormat হেল্পার ব্যবহার করতে পারেন।

মুদ্রা ফরম্যাটিং

echo $this->currency(1000.5, 'USD');  // $1,000.50

ডেটা ফরম্যাটিং

echo $this->dateFormat('2024-12-07', 'long');  // December 7, 2024

এখানে, currency() মেথডের মাধ্যমে আপনি মুদ্রা ফরম্যাটিং করতে পারেন এবং dateFormat() মেথডের মাধ্যমে আপনি ডেটার ফরম্যাট পরিবর্তন করতে পারেন।


সারাংশ

Zend Framework (এখন Laminas) এ লোকালাইজেশন কার্যকর করতে Zend\I18n কম্পোনেন্ট ব্যবহার করা হয়। এর মাধ্যমে আপনি বিভিন্ন ভাষার জন্য কনটেন্ট প্রদর্শন, ডেটা ফরম্যাটিং, মুদ্রা এবং সংখ্যা ফরম্যাটিং করতে পারেন। ভাষার ফাইল তৈরি করা, লোকাল সেটআপ করা, এবং ট্রান্সলেশন ব্যবহারের মাধ্যমে আপনি সহজেই মাল্টি-ল্যাঙ্গুয়েজ অ্যাপ্লিকেশন তৈরি করতে পারবেন। Event-based language switching এবং view helpers এর মাধ্যমে আপনি ভাষাগত কাস্টমাইজেশন আরও সহজে পরিচালনা করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...