လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ဘာသာစကားမျိုးစုံ string ကိုတင်းပလိတ်များကိုအကောင်အထည်ဖော်ရန် VSPrintf ကိုသုံးပါ

ဘာသာစကားမျိုးစုံ string ကိုတင်းပလိတ်များကိုအကောင်အထည်ဖော်ရန် VSPrintf ကိုသုံးပါ

gitbox 2025-06-04

ဘာသာစကားမျိုးစုံ (I18N) ဖွံ့ဖြိုးတိုးတက်မှုတွင်ပရိုဂရမ်မာများသည်အသုံးပြုသူအမည်, အချိန်, အရေအတွက်, အရေအတွက်စသဖြင့် variable များကိုမကြာခဏထည့်သွင်းရန်လိုအပ်သည်။ string splicing ကိုတိုက်ရိုက်အသုံးပြုပါက Code Readability သည်ဆင်းရဲခြင်းကိုသာမကဘဲထိန်းသိမ်းရန်ခက်ခဲသည်။ PHP မှပေးသော vsprintf () function သည်ဤပြ problem နာကိုဖြေရှင်းရန်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည် flexible နှင့်အစွမ်းထက်သောတက်ကြွသောအစားထိုးလုပ်ဆောင်မှုများကိုရရှိရန် Formatting ကြိုးနှင့် Array parameters များကိုပေါင်းစပ်ထားသည်။

1 ။ vsprintf () ဆိုတာဘာလဲ။

VSPrintf () PHP တွင် string formating function ဖြစ်သည်။ ၎င်း၏အလုပ်လုပ်နိယာမသည် Sprintf () နှင့်ဆင်တူသည်။ ၎င်းသည်ကျွန်ုပ်တို့အားအလွယ်တကူပြင်ဆင်မှုများ (ဥပမာဒေတာဘေ့စ်မှရရှိသောအမျိုးမျိုးသော variable များကိုရရှိသော variable များကို) ဖြတ်သန်းရန်ခွင့်ပြုသည်။

Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 string vsprintf(string $format, array $values)
  • $ format - format placeholders နှင့်အတူ string ကို။

  • $ တန်ဖိုးများ - ခင်းကျင်းမှုတစ်ခုစီအတွက်တန်ဖိုးတစ်ခုစီသည် placevers များကိုကြိုးဖြင့်အစားထိုးလိမ့်မည်။

2 ။ ဘာသာစကားမျိုးစုံတင်းပလိတ်များတွင် vsprintf () အသုံးပြုခြင်း

ဘာသာစကားမျိုးစုံစနစ်၏ဥပမာတစ်ခုကိုသုံးသပ်ကြည့်ပါ။ အောက်ပါအချက်အလက်များကိုကျွန်ုပ်တို့ပြသရန်လိုအပ်သည်။

English : မင်္ဂလာပါဟီဂျွန်! သင့်မှာစာ 5 မဖတ်ပါ။
တရုတ် - မင်္ဂလာပါ, ဂျွန်! သင့်မှာစာ 5 မဖတ်ပါ။

Variables (Username နှင့် Message နံပါတ်) ကိုပြောင်းလွယ်ပြင်လွယ်စေရန်ဤဝါကျနှစ်ခုကိုတင်းပလိတ်များအဖြစ် သုံး. placeholder % s ကိုမှတ်သားနိုင်သည်။

နမူနာကုဒ်:

 <?php

// ဘာသာစကားဖိုင်သို့မဟုတ်ဒေတာဘေ့စ်မှတင်ထားသောဘာသာစကား template ကိုယူပါ
$translations = [
    'en' => 'Hello, %s! You have %d unread messages.',
    'zh' => 'မင်္ဂလာပါ,%s!သင်မှာ .... ရှိသည် %d မဖတ်ပါ。'
];

// အသုံးပြုသူသတင်းအချက်အလက်
$user = 'John';
$messageCount = 5;

// လက်ရှိဘာသာစကား
$lang = 'zh'; // သို့မဟုတ် 'en'

// အသုံးပြု vsprintf အစားထိုးပါစေ
$output = vsprintf($translations[$lang], [$user, $messageCount]);

echo $output;

?>

ထုတ်လုပ်မှု -

 မင်္ဂလာပါ,John!သင်မှာ .... ရှိသည် 5 မဖတ်ပါ。

VSPrintf () မှတဆင့်အသုံးပြုသူအမည်နှင့်မက်ဆေ့ခ်ျနံပါတ်နှင့်အတူ template ကို template တွင်သတ်မှတ်ထားသော placeholders (string) နှင့် % d (integer) နှင့် % d (integer) ကိုအစားထိုးသည်။

3 ။ positional parameteters ၏ပုံစံကိုထောကျပံ့

ပိုမိုရှုပ်ထွေးသောဘာသာစကားအဆောက်အအုံများလိုအပ်သည့်အခါ placeholder ရာထူးများပြောင်းလဲနိုင်သည်။ ဥပမာအားဖြင့်:

 $translations = [
    'en' => 'User %1$s has %2$d items in cart.',
    'fr' => 'Il y a %2$d articles dans le panier de l’utilisateur %1$s.'
];

parameter လုပ်ထုံးလုပ်နည်းအနေအထားကိုသတ်မှတ်ခြင်းအားဖြင့် ( % 1 $ s % 2 $ d ) ကိုသတ်မှတ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ကွဲပြားခြားနားသော syntax အမိန့်ကြောင့်ဖြစ်ပေါ်လာသောအမှားများကိုရှောင်ရှားနိုင်သည်။

ဥပမာ -

 <?php

$translations = [
    'en' => 'User %1$s has %2$d items in cart.',
    'fr' => 'Il y a %2$d articles dans le panier de l’utilisateur %1$s.'
];

$user = 'Alice';
$cartItems = 3;

$lang = 'fr';

echo vsprintf($translations[$lang], [$user, $cartItems]);

?>

ထုတ်လုပ်မှု -

 Il y a 3 articles dans le panier de l’utilisateur Alice.

4 ။ URL ဥပမာများကိုပေါင်းစပ်ခြင်း

ကျွန်ုပ်တို့တွင်ချက်ချင်းဤသို့ဆိုပါစို့။ သင်၏ကိုယ်ပိုင်ပင်မစာမျက်နှာကိုကြည့်ရန်ဤနေရာကိုနှိပ်ပါ။ <a href = '% s'> link </a> "

အမှန်တကယ်အသုံးပြုမှုတွင်သင်သည်ဤအရာကိုရေးနိုင်ပါသည်။

 <?php

$translations = [
    'zh' => "သင်၏ကိုယ်ပိုင်ပင်မစာမျက်နှာသို့သွားရန်ဤနေရာကိုနှိပ်ပါ:<a href='%s'>သံကွင်းဆက်</a>"
];

$url = 'https://gitbox.net/user/profile';

echo vsprintf($translations['zh'], [$url]);

?>

ထုတ်လုပ်မှု -

 သင်၏ကိုယ်ပိုင်ပင်မစာမျက်နှာသို့သွားရန်ဤနေရာကိုနှိပ်ပါ:<a href='https://gitbox.net/user/profile'>သံကွင်းဆက်</a>

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

ဘာသာစကားမျိုးစုံ string termetes ကိုပြန်လည်အစားထိုးရန် VSSprintf () ကိုအသုံးပြုခြင်းသည်အောက်ပါအားသာချက်များရှိရန်အောက်ပါအားသာချက်များရှိသည်။

  • Template တွင်ရှင်းလင်းသောဖွဲ့စည်းပုံနှင့်ခိုင်မာသောပြုပြင်ထိန်းသိမ်းမှုရှိသည်။

  • Parameter Positionary Process ကိုထိန်းချုပ်ရန်နှင့်ကွဲပြားခြားနားသော syntax ဖွဲ့စည်းပုံဘာသာစကားနှင့်လိုက်လျောညီထွေဖြစ်အောင်လုပ်ပါ။

  • array ဒေတာနှင့်ဘာသာစကားအစီအစဉ်များနှင့်အဆင်ပြေစွာပေါင်းစည်းခြင်း,

  • HTML နှင့် URLs outputting သည့်အခါပြောင်းလွယ်ပြင်လွယ်နှင့်ထိရောက်သော။

Laravel, Laravel ကဲ့သို့သောမူဘောင်များကိုအသုံးပြုသောစီမံကိန်းများအတွက်၎င်းတို့တွင်ကိုယ်ပိုင် encapsulated ဘာသာပြန်စာတမ်းများရှိသော်လည်းအခြေခံအကောင်အထည်ဖော်မှုသည် Template Placeholders အတွက် VSPrintf () ကို သုံးနေဆဲဖြစ်သည်။

အတိုချုပ်ဆိုရလျှင် VSPrintf () Mastering VSPrintf () သည်လှပသော, ဘာသာစကားမျိုးစုံဖော်ရွေသော PHP ကုဒ်ရေးသားခြင်း၏အရေးကြီးသောအစိတ်အပိုင်းဖြစ်သည်။