Multi-language অ্যাপ্লিকেশন তৈরি করা

ইন্টারন্যাশনালাইজেশন (i18n) এবং লোকালাইজেশন (l10n) - কেকপিএইচপি (CakePHP) - Web Development

245

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

এই গাইডে, আমরা দেখব কীভাবে CakePHP তে একটি multi-language অ্যাপ্লিকেশন তৈরি করা যায় এবং বিভিন্ন ভাষায় কনটেন্ট প্রদর্শন করা যায়।


CakePHP তে Multi-language অ্যাপ্লিকেশন কনফিগারেশন

CakePHP তে multi-language ফিচারটি i18n (internationalization) এবং l10n (localization) এর মাধ্যমে পরিচালিত হয়। এখানে কিছু গুরুত্বপূর্ণ ধাপ দেয়া হলো, যেগুলোর মাধ্যমে আপনি multi-language অ্যাপ্লিকেশন তৈরি করতে পারবেন।

১. CakePHP তে ভাষা কনফিগার করা

প্রথমে, CakePHP তে ভাষার কনফিগারেশন করতে হবে। এটি করতে, আপনাকে config/app.php ফাইলে কিছু সেটিংস যোগ করতে হবে।

// config/app.php

'App' => [
    'defaultLocale' => 'en_US',  // ডিফল্ট ভাষা (এখানে ইংরেজি)
    'supportedLocales' => ['en_US', 'fr_FR', 'es_ES'],  // সমর্থিত ভাষা তালিকা
],

এখানে:

  • defaultLocale: অ্যাপ্লিকেশনের ডিফল্ট ভাষা সেট করা হয়েছে, যেমন en_US (ইংরেজি)।
  • supportedLocales: যে ভাষাগুলো আপনার অ্যাপ্লিকেশন সমর্থন করবে, তাদের তালিকা এখানে দেয়া হয়েছে।

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

CakePHP তে ভাষা ফাইলগুলি src/Locale ডিরেক্টরির মধ্যে রাখা হয়। এখানে আপনার অ্যাপ্লিকেশনের জন্য বিভিন্ন ভাষার কনটেন্ট সংরক্ষিত থাকবে।

আপনার ভাষা ফাইল তৈরি করতে হলে, প্রথমে src/Locale ডিরেক্টরি তৈরি করুন, এবং এরপর ভাষা অনুযায়ী ফাইল তৈরি করুন।

উদাহরণস্বরূপ, ইংরেজি (en_US) এবং ফরাসি (fr_FR) ভাষার জন্য ফাইল তৈরি করা যেতে পারে:

src/Locale/en_US/default.po
src/Locale/fr_FR/default.po

এখানে:

  • default.po ফাইলটি ভাষার কনটেন্ট ধারণ করে, যেমন সঠিক টেক্সট বা স্ট্রিং।

৩. ভাষা ফাইলের কনটেন্ট

.po ফাইলগুলো ভাষার কনটেন্ট থাকে, যা আপনাকে অনুবাদ করতে হবে। নিচে একটি উদাহরণ দেয়া হলো:

# src/Locale/en_US/default.po

msgid "Hello, World!"
msgstr "Hello, World!"  // ইংরেজি টেক্সট

# src/Locale/fr_FR/default.po

msgid "Hello, World!"
msgstr "Bonjour le monde!"  // ফরাসি অনুবাদ

এখানে:

  • msgid: এই টেক্সটটি অ্যাপ্লিকেশনে দেখা যাবে।
  • msgstr: এই টেক্সটটি অনুবাদ করা ভাষায় দেখানো হবে।

৪. ভাষার ফাইল কম্পাইল করা

CakePHP তে .po ফাইলগুলি কম্পাইল করার জন্য আপনাকে msgfmt টুল ব্যবহার করতে হবে, যা .mo ফাইল তৈরি করবে। এই .mo ফাইলগুলি অ্যাপ্লিকেশন লোড করতে হবে।

msgfmt src/Locale/en_US/default.po --output-file=src/Locale/en_US/default.mo
msgfmt src/Locale/fr_FR/default.po --output-file=src/Locale/fr_FR/default.mo

এইভাবে, .po ফাইলগুলিকে .mo ফাইলে রূপান্তরিত করতে হবে।


CakePHP তে ভাষা পরিবর্তন করার পদ্ধতি

CakePHP তে ভাষা পরিবর্তন করতে, আপনি কনট্রোলার বা ভিউ ফাইলের মাধ্যমে ব্যবহারকারীর পছন্দ অনুযায়ী ভাষা সেট করতে পারেন।

১. ভাষা পরিবর্তন কন্ট্রোলার থেকে

ব্যবহারকারী যদি ভাষা পরিবর্তন করতে চান, তাহলে কন্ট্রোলারের মাধ্যমে তা করা যেতে পারে। উদাহরণস্বরূপ:

// src/Controller/LanguageController.php

namespace App\Controller;

use App\Controller\AppController;

class LanguageController extends AppController
{
    public function change($lang)
    {
        // ভাষা পরিবর্তন করা
        if (in_array($lang, ['en_US', 'fr_FR', 'es_ES'])) {
            $this->request->getSession()->write('Config.language', $lang);
        }
        return $this->redirect($this->referer()); // পূর্ববর্তী পেজে রিডাইরেক্ট
    }
}

এখানে:

  • ভাষা পরিবর্তন করার জন্য, আমরা Config.language সেশন কীগুলি ব্যবহার করেছি।
  • $this->referer() ব্যবহার করে, ব্যবহারকারী যেখানে ছিল সেখানে রিডাইরেক্ট করা হচ্ছে।

২. ভাষা পরিবর্তন লিংক তৈরি করা

ভাষা পরিবর্তনের জন্য একটি লিংক তৈরি করা যেতে পারে। ধরুন, আপনি ভিউ ফাইলে একটি ড্রপডাউন বা লিংক দিয়ে ভাষা পরিবর্তন করতে চান:

// templates/Articles/index.php

<h1>Articles List</h1>

<!-- ভাষা পরিবর্তনের জন্য লিংক -->
<a href="/language/change/en_US">English</a> |
<a href="/language/change/fr_FR">Français</a>

এখানে:

  • আপনি ভিউ ফাইলে একটি লিংক তৈরি করেছেন, যেখানে ব্যবহারকারী ভাষা পরিবর্তন করতে পারেন।

CakePHP তে ভাষা টেক্সট ব্যবহার করা

CakePHP তে ভাষা টেক্সট ব্যবহার করতে, আপনি __() ফাংশনটি ব্যবহার করতে পারেন। এটি আপনার অ্যাপ্লিকেশনে ভাষার অনুবাদ প্রদর্শন করবে।

১. ভাষা টেক্সট প্রদর্শন করা

ভিউ ফাইলে, আপনি __() ফাংশন ব্যবহার করে ভাষার টেক্সট প্রদর্শন করতে পারেন:

// templates/Articles/index.php

<h1><?= __('Hello, World!') ?></h1>

এখানে:

  • __('Hello, World!') এই স্ট্রিংটি অনুবাদ করবে যদি .po ফাইলগুলিতে সেই ভাষার অনুবাদ থাকে।

২. কন্ট্রোলারে ভাষা টেক্সট ব্যবহার করা

কন্ট্রোলারেও আপনি ভাষার টেক্সট ব্যবহার করতে পারেন:

// src/Controller/ArticlesController.php

public function index()
{
    $this->set('message', __('Hello, World!'));
}

এখানে:

  • __('Hello, World!') কন্ট্রোলারে ভাষার টেক্সট অনুবাদ করবে এবং set() ফাংশনের মাধ্যমে ভিউতে পাঠাবে।

CakePHP তে multi-language অ্যাপ্লিকেশন তৈরি করা খুবই সহজ এবং কার্যকরী। আপনি i18n এবং l10n ফিচারের মাধ্যমে বিভিন্ন ভাষায় কনটেন্ট প্রদান করতে পারেন। ভাষার ফাইল তৈরি করা, সেগুলি .po এবং .mo ফরম্যাটে রূপান্তর করা, এবং ভাষা পরিবর্তন করার জন্য সেশন ব্যবহারের মাধ্যমে একাধিক ভাষায় অ্যাপ্লিকেশন পরিচালনা করা সম্ভব। __() ফাংশন ব্যবহার করে আপনি ভাষার টেক্সট পরিবর্তন করতে পারেন, যা আপনার অ্যাপ্লিকেশনকে আন্তর্জাতিককরণ এবং স্থানীয়করণে সক্ষম করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...