Locale-Based Data Formatting

Computer Programming - সি স্ট্যান্ডার্ড লাইব্রেরি রেফারেন্স (C Standard Library Reference) Localization Functions (লোকালাইজেশন ফাংশনস) |
256
256

Locale-Based Data Formatting

Locale-based data formatting হচ্ছে এমন একটি পদ্ধতি যার মাধ্যমে প্রোগ্রামটি ব্যবহৃত অঞ্চলের ভাষা, মুদ্রা, সময়, সংখ্যা এবং তারিখের ফরম্যাট অনুযায়ী আউটপুট প্রদান করে। এটি একটি গুরুত্বপূর্ণ ধারণা যেহেতু বিভিন্ন দেশের মধ্যে সময়, তারিখ, সংখ্যা, এবং মুদ্রার আকারের মধ্যে পার্থক্য থাকে। উদাহরণস্বরূপ, ইউরোপে একটি সংখ্যাকে 1,000.50 হিসাবে লেখা হয়, কিন্তু আমেরিকাতে সেটি 1.000,50 হতে পারে।

Locale এবং তার ব্যবহার

locale একটি সেটিংস যা একটি প্রোগ্রামকে তার ব্যবহৃত অঞ্চলের জন্য নির্দিষ্ট কাস্টমাইজড আচরণ নির্ধারণ করতে সহায়ক হয়। locale এ নির্দিষ্ট তথ্যের মধ্যে অন্তর্ভুক্ত হতে পারে:

  • ভাষা
  • সেগুলির মধ্যে সংখ্যা এবং মুদ্রার ফরম্যাট
  • তারিখ এবং সময়ের ফরম্যাট
  • অক্ষর তুলনা (case sensitivity, sorting)
  • মুদ্রা চিহ্ন

Locale ব্যবহার করা

সি প্রোগ্রামিং ভাষায়, locale.h হেডার ফাইলটি locale সম্পর্কিত ফাংশন সরবরাহ করে, যা প্রোগ্রামটি নির্দিষ্ট অঞ্চলের তথ্য অনুসারে আউটপুট ফরম্যাট করে। এই ফাংশনগুলির মধ্যে গুরুত্বপূর্ণ ফাংশন হচ্ছে:

  • setlocale()
  • localeconv()
  • printf() এবং scanf() এর মাধ্যমে লোকাল বেসড ফরম্যাটিং

১. setlocale() ফাংশন

setlocale() ফাংশনটি প্রোগ্রামের locale সেট করার জন্য ব্যবহৃত হয়। এটি সাধারণত প্রাথমিকভাবে কল করা হয় যাতে পরবর্তী ফাংশনগুলির জন্য সঠিক locale সেট থাকে।

সিঙ্কট্যাক্স:

#include <locale.h>

char *setlocale(int category, const char *locale);
  • category: এটি সেটিংয়ের ধরন নির্ধারণ করে, যেমন:
    • LC_ALL: সব ধরনের সেটিং (ভাষা, সময়, সংখ্যা, ইত্যাদি)
    • LC_TIME: সময় এবং তারিখের ফরম্যাট
    • LC_NUMERIC: সংখ্যার ফরম্যাট
    • LC_MONETARY: মুদ্রার ফরম্যাট
    • LC_CTYPE: অক্ষর সেটিং
  • locale: এটি একটি স্ট্রিং যা নির্দিষ্ট অঞ্চলের নাম প্রদান করে (যেমন "en_US.UTF-8", "fr_FR.UTF-8")।

উদাহরণ: setlocale() ব্যবহার

#include <stdio.h>
#include <locale.h>

int main() {
    // প্রোগ্রামটি সকল অঞ্চলের সেটিং সিলেক্ট করে
    setlocale(LC_ALL, "");

    // লোকালাইজড আউটপুট
    printf("This is a test: %f\n", 1234567.89);
    return 0;
}

এখানে, setlocale(LC_ALL, "") সেটিংটিকে সিস্টেমের লোকাল অনুসারে কনফিগার করে, যেমন ইউরোপ, মার্কিন যুক্তরাষ্ট্র, ভারত, ইত্যাদি।


২. localeconv() ফাংশন

localeconv() ফাংশনটি লোকালাইজড নম্বর ফরম্যাটিং সংক্রান্ত তথ্য প্রদান করে, যেমন: হাজারের সেপারেটর, দশমিক চিহ্ন, মুদ্রা চিহ্ন ইত্যাদি।

সিঙ্কট্যাক্স:

#include <locale.h>

struct lconv *localeconv(void);

এই ফাংশনটি একটি struct lconv রিটার্ন করে যা বিভিন্ন প্রোপার্টি ধারণ করে:

  • decimal_point: দশমিক চিহ্ন
  • thousands_sep: হাজারের সেপারেটর
  • currency_symbol: মুদ্রা চিহ্ন
  • mon_grouping: মুদ্রার গ্রুপিং

উদাহরণ: localeconv() ব্যবহার

#include <stdio.h>
#include <locale.h>

int main() {
    setlocale(LC_NUMERIC, "en_US.UTF-8");  // সেট locale ইউএসএ

    struct lconv *loc = localeconv();
    printf("Decimal point: %s\n", loc->decimal_point);
    printf("Thousands separator: %s\n", loc->thousands_sep);
    
    return 0;
}

এখানে localeconv() ফাংশনটি লোকাল ফরম্যাটিং সম্পর্কিত তথ্য প্রদান করে, যা decimal_point এবং thousands_sep প্রপার্টির মাধ্যমে দশমিক চিহ্ন এবং হাজারের সেপারেটরের মান বের করে।


৩. printf() এবং scanf() লোকাল ফরম্যাটিং

যখন setlocale() ব্যবহার করে লোকাল সেট করা হয়, তখন printf() এবং scanf() ফাংশনগুলিও লোকালাইজড আউটপুট বা ইনপুট ফরম্যাটিং অনুসরণ করে। উদাহরণস্বরূপ, printf() ফাংশনে মুদ্রা চিহ্ন এবং স্থানীয় সংখ্যা ফরম্যাট প্রদর্শন করতে localeconv() ব্যবহার করা যেতে পারে।

উদাহরণ: লোকাল অনুযায়ী সংখ্যার ফরম্যাট

#include <stdio.h>
#include <locale.h>

int main() {
    setlocale(LC_NUMERIC, "de_DE.UTF-8");  // জার্মান লোকাল

    // জার্মান লোকাল অনুযায়ী আউটপুট
    printf("Formatted number: %'.2f\n", 1234567.89);

    return 0;
}

এখানে, %'.2f ফরম্যাট স্পেসিফায়ারটি লোকাল অনুযায়ী হাজারের সেপারেটর (যেমন কমা বা স্পেস) এবং দশমিক সঠিকতা ব্যবহার করবে।


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

localeconv() ফাংশনের মাধ্যমে মুদ্রা সম্পর্কিত তথ্যও পাওয়া যায়, যেমন মুদ্রা চিহ্ন, মুদ্রার আকার ইত্যাদি।

উদাহরণ: মুদ্রা ফরম্যাট

#include <stdio.h>
#include <locale.h>

int main() {
    setlocale(LC_MONETARY, "en_US.UTF-8");

    struct lconv *loc = localeconv();
    printf("Currency symbol: %s\n", loc->currency_symbol);

    return 0;
}

এখানে, localeconv() এর মাধ্যমে ইউএস লোকাল অনুযায়ী মুদ্রার চিহ্ন প্রদর্শন করা হয়েছে।


সারসংক্ষেপ

  • setlocale() ফাংশনটি বিভিন্ন অঞ্চলের locale সেট করতে ব্যবহৃত হয়, যা তারিখ, সময়, মুদ্রা, সংখ্যা এবং ভাষা ফরম্যাটিং নির্ধারণ করে।
  • localeconv() ফাংশনটি লোকাল সম্পর্কিত বিভিন্ন তথ্য যেমন হাজারের সেপারেটর, দশমিক চিহ্ন, মুদ্রা চিহ্ন প্রদান করে।
  • printf() এবং scanf() ফাংশনগুলি লোকালাইজড আউটপুট এবং ইনপুট প্রদান করতে setlocale() এবং localeconv() এর সাথে কাজ করতে পারে।
  • Locale-based data formatting প্ল্যাটফর্ম নির্ভর প্রোগ্রামিং এর জন্য গুরুত্বপূর্ণ, বিশেষত আন্তর্জাতিকীকরণ এবং স্থানীয়ীকরণের ক্ষেত্রে।
common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion