လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP နှင့် CGI တို့တွင် Internationalization နှင့် Internationalization ကိုမည်သို့အောင်မြင်မည်နည်း။

PHP နှင့် CGI တို့တွင် Internationalization နှင့် Internationalization ကိုမည်သို့အောင်မြင်မည်နည်း။

M66 2025-06-14

1 ။ အပြည်ပြည်ဆိုင်ရာနှင့်ဒေသတွင်းအယူအဆ

နိုင်ငံတကာဆက်ဆံရေးသည်ဘာသာစကားများနှင့်ယဉ်ကျေးမှုမျိုးစုံနှင့်လိုက်လျောညီထွေဖြစ်အောင်လုပ်ရန် application များကိုဒီဇိုင်းဆွဲနိုင်စွမ်းကိုရည်ညွှန်းသည်။ ဒေသတွင်းက 0 င်ရောက်စွက်ဖက်မှု၏ interface နှင့်စာသားကိုသီးခြားဘာသာစကားနှင့်တိုင်းဒေသကြီးသို့ဘာသာပြန်ဆိုခြင်းလုပ်ငန်းစဉ်ကိုရည်ညွှန်းသည်။

2 ။ အပြည်ပြည်ဆိုင်ရာနှင့်ဒေသတွင်းအကောင်အထည်ဖော်မှု

PHP တွင် Internationalization အောင်မြင်ရန် GotText extension ကိုသုံးနိုင်သည်။ GetText သည်ပုံမှန် International Eventization Tool တစ်ခုဖြစ်ပြီးကျွန်ုပ်တို့၏လျှောက်လွှာ၏စာသားကိုဘာသာစကားအမျိုးမျိုးဖြင့်ဘာသာပြန်ဆိုရန်ခွင့်ပြုသည်။ ပထမ ဦး စွာကျွန်ုပ်တို့သည် GetText extension ကို install လုပ်ရန်လိုအပ်သည်။ ထို့နောက်ကျွန်ုပ်တို့သည် .po file တစ်ခုအားစာသားအားလုံးနှင့်အတူဖန်တီးရန်လိုအပ်သည်။ Xgettext command ကို အသုံးပြု. အရင်းအမြစ်ကုဒ်မှဘာသာပြန်ကြိုးအားလုံးကိုထုတ်ယူပါ။ နောက်တစ်နေ့တွင် Poedit ကဲ့သို့သောအထူးပြုဘာသာပြန်ထားသောကိရိယာတစ်ခုကို အသုံးပြု. POSTIT ကဲ့သို့သောဘာသာပြန်ကြိုးများဖြင့်အသုံးပြုနိုင်သည်။ နောက်ဆုံးအနေနဲ့ .po file ကို .mo ဖိုင်ကို binary format နဲ့ပြောင်းဖို့လိုတယ်။ ဤတွင်အပြည်ပြည်ဆိုင်ရာ PHP Code ၏ဥပမာတစ်ခုဖြစ်သည်။

<?php
    // ဒေသကိုတက် setting
    putenv("LC_ALL=zh_CN.UTF-8");
    setlocale(LC_ALL, "zh_CN.UTF-8");

    // အမေှးစာရင်းmoဖိုင်လမ်းကြောင်း
    bindtextdomain("messages", "locale");

    // ဘာသာပြန်ဒိုမိန်းကိုရွေးချယ်ပါ
    textdomain("messages");

    // အသုံးပြုgettextစာသားကိုဘာသာပြန်ပါ
    echo _("Hello World!");
?>

CGI တွင်အပြည်ပြည်ဆိုင်ရာနှင့်ဒေသဆိုင်ရာအောင်မြင်ရန်အပြည်ပြည်ဆိုင်ရာပုံစံစာကြည့်တိုက် (Libintl) ကိုသုံးနိုင်သည်။ အပြည်ပြည်ဆိုင်ရာ template စာကြည့်တိုက်သည်အပြည်ပြည်ဆိုင်ရာစာကြည့်တိုက်တစ်ခုဖြစ်ပြီး InteText သို့အလားတူအင်္ဂါရပ်များကိုထောက်ပံ့ပေးသည်။ Libintl ကိုဆာဗာတွင်တပ်ဆင်ပြီးဖြစ်သည်ကိုသေချာအောင်လုပ်ရန်လိုအပ်သည်။ ဤတွင် International CGI Code ၏ဥပမာတစ်ခုဖြစ်သည်။

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

int အဓိက () {)
    // locale setinglocale (lc_all "zh_cn.utf-8" ကိုသတ်မှတ်ပါ။

    // ဘာသာပြန်ကျမ်းကို Domain BindtextDomomain ("Locale", "locale") ကိုချည်နှောင်ခြင်း,

    // ဘာသာပြန်ကျမ်းကိုရွေးချယ်ပါ။

    // စာသား printf ("% s", gettext ("Hello World!" ကိုဘာသာပြန်ဆိုဖို့ GetText ကိုသုံးပါ။ );
    ပြန်လာ 0;
}

ဒေသတွင်းအကောင်အထည်ဖော်မှု

စာသားကိုဘာသာပြန်ဆိုခြင်းအပြင်ဒေသတွင်းတွင်ရက်စွဲ, အချိန်နှင့်ငွေကြေး၏ပုံစံချခြင်းတို့ပါဝင်သည်။ PHP တွင် datetime နှင့်ငွေကြေးများကို format လုပ်ရန် strtime function နှင့် money_format function ကိုသုံးနိုင်သည်။ ဤနေရာတွင်ဥပမာအားဖြင့် PHP Code ကိုဤနေရာတွင်ဖော်ပြထားသည်။

<?php
    // ဒေသကိုတက် setting
    setlocale(LC_ALL, "zh_CN.UTF-8");

    // format date အချိန်
    $date = strftime("%d %B %Y");
    echo $date;

    // format ကိုငွေကြေး
    $number = 1234.56;
    $formatted_number = money_format("%n", $number);
    echo $formatted_number;
?>

CGI တွင်ကျွန်ုပ်တို့သည်ဒေသတွင်းနေ့နှင့်ငွေကြေးပုံစံများကိုရရှိရန် function library collectconv ကိုသုံးနိုင်သည်။ ဤနေရာတွင်ဥပမာအားဖြင့် CGI ကုဒ်နံပါတ်တစ်ခုဖြစ်သည်။

#include<locale.h>
#include<stdio.h>
#include<stdlib.h>
#include<sys/time.h>
#include<localeconv.h>

int အဓိက () {)
    // locale setinglocale (lc_all "zh_cn.utf-8" ကိုသတ်မှတ်ပါ။

    // ဒေသဆိုင်ရာနေ့စွဲနှင့်အချိန် format struct ကို tv ကိုရယူပါ;
    structt TM * tm;
    CharD ရက်စွဲ [128];

    gettitoromday (& TV, null);
    TM = ဒေသခံအချိန်တိုင်း (& tv.tv_sec),

    strftime (နေ့စွဲ, sizeof (ရက်စွဲ), "% d% b ခ% y", TM);
    Printf ("% s", ရက်စွဲ);

    // ဒေသတွင်းငွေကြေးအမျိုးအစား struct ကိုဖန်တီးပါ။ LC = Locconv ();
    နှစ်ဆနံပါတ် = 1234.56;
    Char Formatted_number [128];

    Snprintpf (formatatted_number, sizeof (formatatted_number_symbol, နံပါတ်);
    Printf ("% s", formatted_number);

    ပြန်လာ 0;
}

4 ။ အကျဉ်းချုပ်

နိုင်ငံတကာမှနှင့်ဒေသတွင်းသည်လက်ဝါးကပ်တိုင်ဘာသာစကားနှင့်ဒေသဆိုင်ရာအပလီကေးရှင်းများတည်ဆောက်ရန်အုတ်မြစ်ဖြစ်သည်။ PHP နှင့် CGI တွင်ကျွန်ုပ်တို့သည် Internationalization နှင့် Integration သို့ရောက်ရှိရန် GetText Extensions နှင့် Internet Template Libraries များကိုသုံးနိုင်သည်။ စာသားကိုဘာသာပြန်ဆိုခြင်းအပြင်ဒေသတွင်းတွင်ရက်စွဲ, အချိန်နှင့်ငွေကြေး၏ပုံစံချခြင်းတို့ပါဝင်သည်။ ဤနည်းပညာများကိုကျိုးကြောင်းဆီလျော်စွာကျင့်သုံးခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်အသုံးပြုသူများကိုပိုမိုကောင်းမွန်သောအသုံးပြုသူအတွေ့အကြုံပေးနိုင်ပြီးကျွန်ုပ်တို့၏လျှောက်လွှာများကိုဘာသာစကားအမျိုးမျိုးနှင့်ဒေသများရှိလိုအပ်ချက်များကိုလိုက်လျောညီထွေဖြစ်အောင်ပြုလုပ်နိုင်သည်။

ဤဆောင်းပါးသည်စာဖတ်သူများကိုစာဖတ်သူများအားအပြည်ပြည်ဆိုင်ရာအပြည်ပြည်ဆိုင်ရာနှင့်ဒေသဆိုင်ရာနည်းပညာများကိုကျင့်သုံးရန်မျှော်လင့်သောနမူနာကုဒ်ကိုပေးသည်။ တစ်ချိန်တည်းမှာပင်ဘာသာစကားနှင့်တိုင်းဒေသကြီးများ၏ယဉ်ကျေးမှုနှင့်အလေ့အကျင့်များကိုဂရုပြုရန်နှင့်လျှောက်လွှာသည်ပုံမှန်အားဖြင့်ဘာသာစကားအမျိုးမျိုးဖြင့်လုပ်ဆောင်နိုင်ရန်အတွက်ဒေသဆိုင်ရာဥပဒေများနှင့်စည်းမျဉ်းများကိုလေးစားရန်လိုအပ်သည်။