PHP ကို အသုံးပြု. ဖွံ့ဖြိုးရေးလုပ်ငန်းစဉ်အတွင်း setlocale () function ကိုဇာတ်ညွှန်း၏ဒေသနှင့်ဒေသကိုသတ်မှတ်ရန်အသုံးပြုသည်။ ၎င်းသည်ပရိုဂရမ်၏ဒေသဆိုင်ရာပတ် 0 န်းကျင်ကိုပြောင်းလဲခြင်းဖြင့်ရက်စွဲများ, အချိန်, ငွေကြေးစသဖြင့်ရက်စွဲများ, အချိန်, ငွေကြေးစသဖြင့်ပြုလုပ်သောစွမ်းဆောင်ရည်ကိုသက်ရောက်စေသည်။ သို့သော်တစ်ခါတစ်ရံတွင် developer များက Setlocale () ဟုခေါ်သော်လည်းရလဒ်သည်ထိရောက်မှုမရှိပါ, ပုံမှန်ဒေသ (သို့) ဒေသသို့မဟုတ်ဒေသသို့မဟုတ်ဒေသဆိုင်ရာဆက်တင်များကမူ developer များကတွေ့ရှိရသည်။ ဒီတော့အကြောင်းပြချက်ကဘာလဲ။
1 ။ setlocale () function ကိုမိတ်ဆက်
Setlocale () ပရိုဂရမ်၏လက်ရှိဒေသကိုသတ်မှတ်ရန် PHP built-in function တစ်ခုဖြစ်သည်။ Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-title function_ invoke__">setlocale</span></span><span>(</span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$category</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$locale</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> ...</span><span><span class="hljs-variable">$locales</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>
$ အမျိုးအစား - lc_time (Time Format), lc_n_netary (ငွေကြေးပုံစံ), lc_numeric (Numeric format), lc_all (အားလုံး settings),
$ locale : သတ်မှတ်ထားမည့်ဒေသကိုသတ်မှတ်သည်။
Reward Value: အောင်မြင်သောနေရာကိုပြန်ပို့ပါ ။
ဥပမာအားဖြင့်, Setlocale () ကို DATEAND ဒေသကိုတရုတ်သို့သတ်မှတ်ရန်အသုံးပြုပါ။
<span><span><span class="hljs-title function_ invoke__">setlocale</span></span><span>(LC_TIME, </span><span><span class="hljs-string">'zh_CN.UTF-8'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strftime</span></span><span>(</span><span><span class="hljs-string">"%A, %B %d, %Y"</span></span><span>);
</span></span>
ဤကုဒ်၏ရည်ရွယ်ချက်မှာရက်စွဲပုံစံကိုတရုတ်ဘာသာသို့သတ်မှတ်ရန်ဖြစ်သည်။
2 ။ ပြ the နာ၏အကြောင်းရင်း - operating system နှင့်ဒေသများသည်သဟဇာတဖြစ်သည်
Setlocale () သည် အကျိုးသက်ရောက်မှုမအောင်မြင်ပါကအသုံးအများဆုံးအကြောင်းပြချက်မှာ operating system သည်သက်ဆိုင်ရာဒေသများကို install လုပ်ခြင်းသို့မဟုတ်မထောက်ပံ့နိုင်ခြင်းဖြစ်သည်။ PHP သည်သတ်မှတ်ထားသောဒေသတစ်ခုအား operating system ၏ localating system ၏ပံ့ပိုးမှုဖြင့်လျှောက်ထားခြင်းရှိမရှိကိုဆုံးဖြတ်သည်။
Linux (သို့) MacOS စနစ်များတွင်တည်နေရာကိုပုံမှန်အားဖြင့် operating system ၏ localization support package မှပေးသည်။ အကယ်. PHP မှသိမ်းပိုက်ထားသောဒေသကို operating system တွင် install လုပ်မထားပါက Setlocale () သည် အကျိုးသက်ရောက်မည်မဟုတ်ပါ။ ဥပမာအားဖြင့်, zh_cn.utf-8 နေရာဒေသကိုအချို့သော operating system များတွင် install လုပ်ခြင်းမပြုရ, PHP ကိုဤဒေသသို့ပြောင်းရန်ပျက်ကွက်စေနိုင်သည်။
လက်ရှိ operating system မှထောက်ပံ့သောဒေသအားစစ်ဆေးရန်အောက်ပါ command ကိုသုံးနိုင်သည်။
Linux တွင်ပံ့ပိုးထားသောဒေသများစာရင်းကိုကြည့်ရှုရန် Command Locale -a ကို သင်အသုံးပြုနိုင်သည်။
MacOS တွင်သင် Locale -a ကို သုံးနိုင်သည်သို့မဟုတ် / usr / size / locale directory ရှိဘာသာစကားဖိုင်များကိုကြည့်ရှုနိုင်သည်။
ဒေသတစ်ခုပျောက်ဆုံးနေသည်ကိုသင်တွေ့ရှိပါက operating system ၏ Package Management Tool မှတဆင့်ဘာသာစကားအထုပ်ကို install လုပ်ရန်ကြိုးစားနိုင်သည်။ ဥပမာအားဖြင့် Ubuntu တွင်အောက်ပါ command ကို အသုံးပြု. တရုတ်ဘာသာစကားအထုပ်ကိုသင်တပ်ဆင်နိုင်သည်။
<span><span>sudo apt-get install language-pack-zh-hans
</span></span>
နောက်ထပ်ဖြစ်နိုင်ချေရှိသောပြ problem နာတစ်ခုမှာသဟဇာတမတူသောဇာတ်ကောင်ဖြစ်သည်။ ဥပမာအားဖြင့်, သင်၏ operating system သည် zh_cn တည်နေရာကိုထည့်သွင်းထားသော်လည်း UTF-8 encoding support တပ်ဆင်ထားပါက zh_cn.utf-8 ကို install လုပ်ထားပါက, ဤကိစ္စတွင်သက်ဆိုင်ရာဇာတ်ကောင် Set Support ကိုတပ်ဆင်ထားကြောင်းသေချာပါစေ။
အချို့သောဆာဗာပတ် 0 န်းကျင်တွင် PHP သည် operating system ၏ဒေသဆိုင်ရာ configuration ကိုဝင်ရောက်ရန်ခွင့်ပြုချက်မရှိပါ။ ဥပမာအားဖြင့် PHP ကို docker ကွန်တိန်နာတစ်ခုတွင်အသုံးပြုပါကသင်ပျောက်ဆုံးနေသောဒေသများသို့မဟုတ်ခွင့်ပြုချက်ပြ problems နာများကိုသင်ကြုံတွေ့ရနိုင်သည်။ ယခုအချိန်တွင်သင်သည် PHP script သို့မဟုတ် server configuration တွင် locale သို့မဟုတ် server configuration တွင်သို့မဟုတ်ကွန်တိန်နာ configurations ကိုပြုပြင်ရန်သို့မဟုတ်ပိတ်ထားသည့်ဒေသဆိုင်ရာအထောက်အပံ့များတပ်ဆင်ရန်စဉ်းစားနိုင်သည်။
3 ။ ပြ the နာကိုဘယ်လိုဖြေရှင်းရမလဲ။
operating system ၏ဒေသကိုစစ်ဆေးပါ Command Locale -A ကို အသုံးပြုပါ။ အကယ်. ၎င်းကိုမထောက်ပံ့ပါကသက်ဆိုင်ရာဘာသာစကားအထုပ်သို့မဟုတ်ဇာတ်ကောင်များကိုတပ်ဆင်ရန်လိုအပ်သည်။
သင့်လျော်သောဒေသတစ်ခုတည်ဆောက်ခြင်း <br> <br> PHP တွင် Setlocale () ကို အသုံးပြုသည့်အခါဒေသတွင်း parameters များသည် operating system မှထောက်ပံ့သောဒေသနှင့်ကိုက်ညီကြောင်းသေချာအောင်လုပ်ပါ။ ဥပမာအားဖြင့်, zh_cn.utf-8 သည် operating system မှ install လုပ်ထားသည့်ဒေသနှင့်ကိုက်ညီသင့်သည်။
PHP configurations ကိုစစ်ဆေးပါ PHP configuration file ( PHPP.ini ) ၏ချိန်ညှိချက်များ (php.ini) တွင် Setlocale () setlocale () ကို ကန့်သတ်ခြင်းသို့မဟုတ်ကာကွယ်ခြင်းမပြုရန်,
ဆာဗာကို restart လုပ်ပါ အချို့ဖြစ်ရပ်များတွင်ဒေသတွင်းပြောင်းလဲမှုများသည်ဝက်ဘ်ဆာဗာကိုပြန်လည်စတင်ရန်အတွက်ပြန်လည်စတင်ရန်လိုအပ်သည်။ PHP-FPM, NGINX သို့မဟုတ် Apache 0 န်ဆောင်မှုကိုပြန်လည်စတင်ရန်ကြိုးစားနိုင်သည်။
4 ။ အကျဉ်းချုပ်
PHP ၏ Setlocale () function သည်တစ်ခါတစ်ရံတွင်အကျိုးသက်ရောက်မှုမရှိသေးပေ။ များသောအားဖြင့် operating system သည်သတ်မှတ်ထားသောဒေသများတပ်ဆင်ခြင်းသို့မဟုတ်မထောက်ပံ့ပါ။ ဤပြ problem နာကိုဖြေရှင်းရန်လိုအပ်ပြီး operating system ၏နောက်ဆက်တွဲအထောက်အပံ့ကိုစစ်ဆေးရန်နှင့် PHP သည်ဤချိန်ညှိချက်များကိုလက်လှမ်းမီနိုင်အောင်ပြုလုပ်နိုင်သည်။ အကယ်. operating system တွင်သက်ဆိုင်ရာဘာသာစကားစာစဉ်မရှိပါက၎င်းကိုကိုယ်တိုင်တပ်ဆင်ပြီး PHP တွင်မှန်ကန်စွာဟုခေါ်နိုင်သည်။ ဤနည်းများဖြင့် Setlocale () မမှန်ကန်သောပြ the နာကိုဖြေရှင်းနိုင်ပြီး script သည်မျှော်လင့်ထားသည့်အတိုင်းလည်ပတ်သည်။