پیغام کی فارمیٹنگ
18ways بطورِ ڈیفالٹ waysParser استعمال کرتا ہے۔ یہی پارسر آپ کو سورس کا متن پڑھنے کے قابل رکھنے کے ساتھ ساتھ متغیرات اور لوکیل سے ہم آہنگ فارمیٹنگ کو بھی سنبھالنے دیتا ہے۔
متغیرات
متغیرات کے لیے بریسز استعمال کریں۔ <T> کے ساتھ، آپ ویلیو کو پیغام کے ساتھ اسی لائن میں رکھ سکتے ہیں۔
const label = await engine.t('Welcome back, {name}', {
vars: { name: 'Ada' },
});جمع بنانے کا عمل
ICU-style plural blocks استعمال کریں جب جملے کی ساخت واقعی بدلتی ہو۔
const summary = await engine.t(
'{count, plural, =0{No messages} =1{One message} other{{count} messages}}',
{
vars: { count: 3 },
}
);تاریخیں اور رقم
اگر آپ ایک حقیقی Date یا amount اور currency والے منی جیسے آبجیکٹ کو پاس کریں، تو 18ways اسے خود بخود فارمیٹ کرے گا
حتیٰ کہ {publishedAt} یا {renewalTotal} جیسے سادہ پلیس ہولڈر کے ساتھ بھی۔
explicit formatter صرف اُس وقت استعمال کریں جب آپ آؤٹ پُٹ کو کنٹرول کرنا چاہتے ہوں، جیسے dateStyle:long یا ایک
custom money divisor.
const publishedAt = new Date('2026-03-14T09:00:00Z');
const renewalTotal = {
amount: 1900,
currency: 'USD',
};
const updatedLabel = await engine.t('Last updated {publishedAt}', {
vars: { publishedAt },
});
const totalLabel = await engine.t('Renewal total {renewalTotal}', {
vars: { renewalTotal },
});
const detailedDate = await engine.t('Detailed date: {publishedAt, date, dateStyle:long}', {
vars: { publishedAt },
});ڈیفالٹ طور پر، رقم کی مقداروں کو چھوٹی اکائیوں کے طور پر سمجھا جاتا ہے۔ اگر آپ کے پاس پہلے ہی بڑی اکائیاں ہیں، تو divisor: 1 کے ساتھ واضح money formatter استعمال کریں۔
بلاک منتخب کریں
جب کاپی چند الگ، محدود ویلیوز پر منحصر ہو تو select استعمال کریں۔
const banner = await engine.t(
'{isSignedIn, select, true{Welcome back, {name}} false{Sign in to continue} other{Sign in to continue}}',
{
vars: {
isSignedIn: true,
name: 'Ada',
},
}
);جزوی ترکیب
@18ways/core returns strings. If you need rich text, keep the sentence whole and handle markup in
your own renderer.
const cta = await engine.t('Click here to see more');If your app needs automatic JSX composition, move up to @18ways/react or @18ways/next.
عملی اصول
اگر جملہ چند متغیروں کے ساتھ ایک مکمل فقرے کی صورت میں لکھا جا سکتا ہے، تو اسے ایک ہی پیغام میں رکھیں۔ اس سے ترجمے کا معیار کوڈ میں ٹکڑوں کو جوڑنے کے مقابلے میں بہت زیادہ بہتر ہو جاتا ہے۔