Locale নির্ধারণ এবং রিসোর্স ফাইল

Internationalization (i18n) এবং Localization (l10n) - ওয়েব২পাই (Web2Py) - Web Development

312

Web2Py তে Locale নির্ধারণ এবং রিসোর্স ফাইল ব্যবহারের মাধ্যমে আপনি Internationalization (i18n) এবং Localization (l10n) প্রক্রিয়া পরিচালনা করতে পারেন। এটি ব্যবহারকারীর ভাষা এবং সংস্কৃতি অনুযায়ী অ্যাপ্লিকেশন কাস্টমাইজ করতে সহায়তা করে। Web2Py তে লোকে নির্ধারণ এবং রিসোর্স ফাইল ব্যবহারের মাধ্যমে আপনি বিভিন্ন ভাষায় অ্যাপ্লিকেশনকে কাস্টমাইজ করতে পারেন।

নিচে Web2Py তে Locale নির্ধারণ এবং রিসোর্স ফাইল সম্পর্কে বিস্তারিত আলোচনা করা হলো।


১. Locale নির্ধারণ (Setting the Locale)

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

১.১. Locale নির্ধারণ করা

Locale সেট করার জন্য আপনি locale.setlocale() ফাংশন ব্যবহার করবেন, যা আপনাকে নির্দিষ্ট একটি ভাষা বা অঞ্চলের জন্য অ্যাপ্লিকেশন কাস্টমাইজ করতে সহায়তা করবে।

import locale

# ইউরোপীয় স্প্যানিশ ভাষা সেট করা
locale.setlocale(locale.LC_ALL, 'es_ES.UTF-8')

# ইংরেজি ভাষার জন্য সেটিং করা
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')

এই কোডে, LC_ALL দিয়ে সমস্ত লোকাল সেটিং নির্ধারণ করা হচ্ছে (যেমন সময়, তারিখ, ভাষা)। এখানে 'es_ES.UTF-8' স্প্যানিশ ভাষার জন্য এবং 'en_US.UTF-8' ইংরেজির জন্য লোকাল সেটিং নির্ধারণ করা হয়েছে।

১.২. Locale অনুযায়ী তারিখ এবং সময় ফরম্যাটিং

Locale নির্ধারণের পরে, আপনি তারিখ এবং সময় ফরম্যাটিং করতে পারেন যা স্থানীয় ভাষা ও সংস্কৃতির জন্য উপযুক্ত হবে।

from datetime import datetime
print(datetime.now().strftime('%A, %d %B %Y'))  # 'Lunes, 15 Mayo 2024' (স্প্যানিশ)

এখানে, strftime('%A, %d %B %Y') তারিখের একটি লোকালাইজড ফরম্যাট দেখাবে, যা স্প্যানিশ ভাষায় রূপান্তরিত হবে।


২. রিসোর্স ফাইল (Resource Files)

রিসোর্স ফাইল ব্যবহার করে আপনি Web2Py তে বিভিন্ন ভাষায় টেক্সট অনুবাদ এবং লোকালাইজেশন পরিচালনা করতে পারেন। Web2Py তে এই রিসোর্স ফাইলগুলো সাধারণত .po (Portable Object) ফাইল হিসেবে থাকে।

২.১. রিসোর্স ফাইল তৈরি করা

Web2Py তে রিসোর্স ফাইল তৈরি করার জন্য প্রথমে আপনাকে gettext টুল ব্যবহার করতে হবে। এই টুলটি ব্যবহার করে আপনি বিভিন্ন ভাষায় স্ট্রিং অনুবাদ করতে পারেন।

প্রথমে, Web2Py তে gettext ব্যবহার করতে হলে, আপনার অ্যাপ্লিকেশনের রুট ডিরেক্টরিতে locales নামক একটি ফোল্ডার তৈরি করতে হবে।

উদাহরণ:

  1. locales ফোল্ডার তৈরি করা: Web2Py তে আপনার অ্যাপ্লিকেশনের জন্য locales ফোল্ডার তৈরি করুন।

    /your_app_name
      /locales
        /en
          /LC_MESSAGES
            messages.po
        /es
          /LC_MESSAGES
            messages.po
    
  2. messages.po ফাইল তৈরি করা: এখানে, messages.po ফাইলটিতে আপনি আপনার অ্যাপ্লিকেশনের স্ট্রিং গুলো রাখতে পারেন, যা ভাষা অনুযায়ী অনুবাদ হবে।

    উদাহরণ (English - en/messages.po):

    msgid "Welcome"
    msgstr "Welcome"
    

    উদাহরণ (Spanish - es/messages.po):

    msgid "Welcome"
    msgstr "Bienvenido"
    

২.২. gettext ব্যবহার করা

Web2Py তে gettext ব্যবহার করে আপনি স্ট্রিং এর অনুবাদ করতে পারেন। এটি একটি i18n ফিচার, যা আপনার অ্যাপ্লিকেশনটি একাধিক ভাষায় রূপান্তরিত করার জন্য ব্যবহৃত হয়।

# controllers/default.py
import gettext

# ইংরেজি ভাষার রিসোর্স ফাইল লোড করা
lang = gettext.translation('messages', localedir='locales', languages=['en'])
lang.install()

# স্প্যানিশ ভাষার রিসোর্স ফাইল লোড করা
lang_es = gettext.translation('messages', localedir='locales', languages=['es'])
lang_es.install()

# ব্যবহার
print(_('Welcome'))  # ইংরেজিতে "Welcome"
print(lang_es.gettext(_('Welcome')))  # স্প্যানিশে "Bienvenido"

এই উদাহরণে, Web2Py gettext ফাংশন ব্যবহার করে "Welcome" স্ট্রিংটি ইংরেজি ও স্প্যানিশ ভাষায় অনুবাদ করেছে।

২.৩. gettext ফাংশন ব্যবহার

Web2Py তে gettext() ফাংশন ব্যবহার করা খুবই সহজ। এটি যে কোন স্ট্রিংকে অনুবাদিত করে যদি অনুবাদ (Translation) ফাইলগুলি সঠিকভাবে কনফিগার করা থাকে।

# Example for translating a string in Web2Py
print(_('Welcome to our website!'))  # This will translate "Welcome to our website!" to the current language set.

৩. Locale এবং রিসোর্স ফাইলের সাথে ইন্টিগ্রেশন

Web2Py তে locale এবং gettext একসাথে ব্যবহার করা যায় যাতে অ্যাপ্লিকেশনটি বিভিন্ন ভাষা এবং সংস্কৃতির জন্য সম্পূর্ণভাবে কাস্টমাইজড হয়। Web2Py তে locale নির্ধারণ এবং রিসোর্স ফাইল ব্যবহার করে আপনি সময়, তারিখ, সংখ্যা, মুদ্রা, এবং অন্যান্য অঞ্চলের বৈশিষ্ট্য কাস্টমাইজ করতে পারেন।

উদাহরণ: টেক্সট, তারিখ এবং মুদ্রা কাস্টমাইজ করা

import locale
import gettext
from datetime import datetime

# Locale set to Spanish
locale.setlocale(locale.LC_ALL, 'es_ES.UTF-8')

# Translate using gettext
lang = gettext.translation('messages', localedir='locales', languages=['es'])
lang.install()

# Print translated text
print(_('Welcome to our website!'))

# Print localized date
print(datetime.now().strftime('%A, %d %B %Y'))  # 'Lunes, 15 Mayo 2024'

# Localized currency (e.g. Euro)
from babel.numbers import format_currency
print(format_currency(123456.78, 'EUR', locale='es_ES'))  # €123,456.78

সারাংশ

  • Locale নির্ধারণ (i18n): এটি অ্যাপ্লিকেশনকে একাধিক ভাষা এবং সংস্কৃতির জন্য প্রস্তুত করে, যাতে ভবিষ্যতে বিভিন্ন ভাষার জন্য সাপোর্ট প্রদান করা যায়। এটি সময়, তারিখ, মুদ্রা ইত্যাদি ফরম্যাটিং সহ বিভিন্ন স্থানীয় বৈশিষ্ট্য নিয়ন্ত্রণ করে।
  • রিসোর্স ফাইল (l10n): .po ফাইলের মাধ্যমে আপনি ভাষার অনুবাদ এবং কাস্টমাইজেশন করতে পারেন। gettext এর মাধ্যমে ভাষার স্ট্রিং অনুবাদ করা হয়, যা আপনার অ্যাপ্লিকেশনকে বিভিন্ন ভাষায় উপলব্ধ করে।

Web2Py তে Locale নির্ধারণ এবং রিসোর্স ফাইল ব্যবহারের মাধ্যমে আপনি সহজেই আপনার অ্যাপ্লিকেশনটি আন্তর্জাতিকভাবে কাস্টমাইজ এবং লোকালাইজ করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...