- ဒေသစကား/ဘာသာစကား အမှတ်အသားတစ်ခု ဖြည့်ပါBCP 47 တက်ဂ်တစ်ခု၊ POSIX စတိုင် locale တစ်ခု သို့မဟုတ် ဘာသာစကားနာမည်ကို input field ထဲတွင်ရိုက်ထည့်ပါ။
- ကန့်သတ်ထားသော ဖော်မက်များကို ပြန်လည်စစ်ဆေးပါBCP 47 သာမန်ပြုလုပ်ထားသော ဖော်မတ်နှင့် underscore ဖော်မတ်များကို နှင့် တွေ့ရှိထားသော ဘာသာစကား၊စာလုံးပုံစံ(script)、ဒေသ(region)、ရေးသားမှုလမ်းစဉ်(direction) ကို စစ်ဆေးပါ။
- ကောင်းမွန်မှုကို ကူးယူပါကုဒ်သို့မဟုတ် စည်းကမ်းချက်များတွင် locale ကို အသုံးပြုရန် ပြင်ဆင်ပြီးသားဖြစ်လျှင် တိကျစွာမှတ်ထားထားသော labeled result ကို ကူးယူပါ။
သေချာမနားမလည်ဘဲ locale ဖော်မတ်များကို ပြောင်းပါ
ဧရိယာ အတိအကျကို ဖော်ပြဖို့ သတ်မှတ်ချက်များ သေးငယ်ပေမယ့် အကွာအယစ်ရှိသော အက္ခရာအမျိုးအစား၊ ချိတ်ဆက်အသုံးအနှုန်းများ၊ နိုင်ငံ/ဒေသ ဆောင်ချက်မှားများကြောင့် ဘာသာစကား များအလိုက် လမ်းညွှန်ခြင်းနှင့် ဘာသာပြန် အစားထိုးမှုများ မမှန်ကန်သဖြင့် ပျက်ကွက်လေ့ရှိသည်။ ဤ ကွန်ဗာတာသည် ဘရောင်ဇာ Internationalization API ဖြင့် ကုဒ်တစ်ခုကို စံနှုန်းသတ်မှတ်ပေးပြီး တူညီသော ပုံစံများကို ဘက်ဘက်ချင်း ပြပေးသည်။
သင်သည် BCP 47 တက်ဂ်၊ underscore-စတိုင်ကုဒ် သို့မဟုတ် လူသိများသော ဘာသာစကားအမည်ဖြင့် စတင်နိုင်သည်။ ရလဒ်သည် ဘာသာစကား၊ အက္ခရာစနစ် နှင့် တိုင်းဒေသကို ခွဲသွားပြီး အသုံးပြုသူများနှင့် ဆော့ဖ်ဝဲအား ထူးခြားစေသည့် ဂဏာစာတံဆိပ်က ဘာကို ကမ်းလှမ်းထားသည်ကို တိတိကျကျ မြင်နိုင်စေသည်။
BCP 47၊ POSIX နှင့် ISO ကုဒ်များ ရှင်းပြချက်
BCP 47 သည် ဝဘ် သတ်မှတ်ချက်ဖြစ်ပြီး ဘာသာစကားကို ရှေ့ထားပြီး ထို့နောက် ရွေးချယ်နိုင်သော စာလုံးအမျိုးအစား(script) နှင့် ဒေသ(region) အနောက်ပိုင်း အသေးစိတ်(subtags) များကို ဟိုင်ဖန်(-) ဖြင့် ခွဲထုတ်သတ်မှတ်သည်။ POSIX ပုံစံ locale များတွင် များအားဖြင့် အောက်ဆိုင်(underscore) ကို အသုံးပြုကြသည်။ ဘာသာစကား subtag ကို ပုံမှန်အားဖြင့် ISO 639 မှ ထုတ်ယူပြီး ဒေသအတွက် အက္ခရာနှစ်လုံး region subtag ကို ISO 3166-1 မှ ရယူသည်။
Canonicalization သည် အဓိပ္ပါယ်ကို မပြောင်းပေးဘဲ ပေါ်ပြူလာဖော်ပြပုံကိုသာ ပြင်ဆင်ပေးသည်။ ဥပမာအားဖြင့် သက်ဆိုင်ရာ အက္ခရာလက်လှမ်းချထားမှု(casing) နှင့် သိရှိပြီးသား နာမည်ချင်းချင်းအစားထိုးများ(aliases) ကို သာ မူတည်၍ စံပြုနိုင်သော်လည်း၊ မူလ စပိန်ဘာသာ(generic Spanish) ကို es-ES သို့မဟုတ် es-MX ဖြစ်စေမည်ဟုပြုသဘောဆောင်၍ ဆုံးဖြတ်ပေး၍ မရနိုင်ပါ။ ထိုထုတ်ကုန်ဆိုင်ရာ ဆုံးဖြတ်ချက်သည် သင်တကယ်ဘာများကို ဘာသာပြန်ထားသည်ကို လေးလံစွာ အခြေခံသင့်သည်။
တိကျမှုကို պահպանနိုင်သည့် အနည်းဆုံးကျဉ်းလည်းသော locale ကို အသုံးပြုပါ
တစ်ဦးတည်းသော ဘာသာစကားတစ်ခုဖြင့်သာ သုံးရန် သတ်မှတ်ပါ၊ ဘာသာပြန်တစ်ခုက တိုင်းဒေသအားလုံးအတွက် မှန်ကန်စွာ ဆောင်ရွက်ပေးနိုင်သောအခါ။ စာလုံးပေါင်း၊ ငွေကြေး၊ ဥပဒေရေးရာစာသား၊ အတိုင်းအတာများ သို့မဟုတ် ထုတ်ကုန်ရရှိနိုင်မှုများက ကွဲပြားသည့်အခါ တိုင်းဒေသကို ထည့်ပါ။ တူညီသော ဘာသာစကားရဲ့ ဖတ်ရှုသူများက ရေးသားပုံစံများ ကွာခြားမှု ရှိသည်ဆိုလျှင် ရေးလုံးပေါင်း(စာလုံးပုံ)ကို ထည့်ပါ။
ဒီနေရာမှာ ထည့်သွင်းသည့် အရာအားလုံးကို သင့် browser ထဲမှာ ပင် ပြုလုပ်ဆောင်ရွက်ပါမည်။ Multilocale သည် ဤတန်ဖိုးကို လက်ခံယူခြင်း၊ သိမ်းဆည်းခြင်း သို့မဟုတ် analytics အဖြစ် မျှဝေခြင်း မရှိပါ။
en-US နှင့် en_US အကြားကွာခြားချက်ကတော့ ဖော်မက်တူ ဖြစ်ပုံသာ ကွာခြားတာပါ — အဓိပ္ပာယ်တူတူပဲ။ en-US သည် hyphen (-) ကို အသုံးပြုပြီး BCP 47 locale ဖော်မတ်ကို လိုက်နာထားတာဖြစ်ပြီး၊ en_US သည် underscore (_) ကို အသုံးပြုပြီး POSIX သို့မဟုတ် အချို့အဟောင်းစနစ်တွေမှာ တွေ့ရတဲ့ ဖော်မတ်ဖြစ်ပါတယ်။ Multilocale အနေဖြင့် မည်သည့်ဖော်မတ်ကိုမဆို သင့် project တွင် တစ်ပြိုင်နက်တည်း စနစ်တကျ အသုံးပြုရန်သာ အရေးကြီးသည်၊ သို့မဟုတ် ဖော်မတ်မျိုးစုံကို လက်ခံနိုင်ရန် Mapping/normalization ကို ထည့်သွင်းပေးပါ။
en-US သည် HTML, hreflang, JavaScript နှင့် အများစုသော web API များက အသုံးပြုသော BCP 47 ပုံစံဖြစ်သည်။ en_US သည် အချို့သော operating system များ၊ ဒေတာဘေ့စ်များနှင့် ဘာသာပြန်ဖိုင်များတွင် ထပ်မံအသုံးပြုနေသည့် POSIX-ပုံစံဖြစ်သည်။ အများအားဖြင့် နှစ်ခုစလုံးသည် အမေရိကန်ပြည်ထောင်စု အင်္ဂလိပ်ဘာသာ_locale ကို ကိုယ်စားပြုကြသည်။
locale ကုဒ်နဲ့ language ကုဒ် တူသလား?
မဟုတ်ပါ။ en ကဲ့သို့သော ဘာသာစကားကုဒ်တစ်ခုသည် ဘာသာစကားကို မှတ်သားပါသည်။ locale သည် စာလုံးရေးစနစ်၊ ဒေသ သို့မဟုတ် နှစ်ခုလုံးကိုလည်း သတ်မှတ်နိုင်ပါသည်၊ ဥပမာ ထိုင်းဝမ်တွင် အသုံးပြုသော ပြန်လည်ရိုးရှင်းထာဝရ တရုတ်ကို ဖော်ပြရန် zh-Hant-TW ကို အသုံးပြုနိုင်သည်။ သင်၏ ထုတ်ကုန်အတွက် လိုအပ်သည့် အသေးစိတ်သာ အသုံးပြုပါ။
ဝက်ဘ်ပေါ်မှာ မည်သည့် locale ဖော်မတ်ကို အသုံးပြုသင့်ပါသလဲ?
HTML lang attribute များ၊ hreflang၊ Intl API များနှင့် HTTP language negotiation အတွက် canonical BCP 47 tag များကို hyphen ဖြင့် အသုံးပြုပါ။ ရှိပြီးသား framework သို့မဟုတ် ဖိုင် convention တစ်ခုခုက underscore code များကို သတ်မှတ် ပြုရန် တိုက်ရောက်ပေးသော အခြေအနေထက်မပြောပါက underscore code များကိုသာ ထားပါ။