طراحی شیء Intl کاملاً هدفمحور و بر اساس نیازهای واقعی (Use-case driven) انجام شده است. این ابزار برای هر سناریوی مشخصی که نیاز به منطق خاصِ یک زبان یا فرهنگ دارد، یک شیء مجزا و مستقل ارائه میدهد. در حال حاضر، Intl قابلیتهای زیر را در اختیارتان میگذارد:
دریافت اطلاعات درباره یک زبان: با استفاده از Intl.Locale
فرمت کردن انواع دادهها: با استفاده از ابزارهای:
Intl.DateTimeFormat (برای تاریخ و زمان)
Intl.DurationFormat (برای مدتزمان و بازهها)
Intl.ListFormat (برای فرمت کردن لیستها و آرایهها به متن)
Intl.NumberFormat (برای اعداد و مقادیر پولی)
Intl.RelativeTimeFormat (برای زمانهای نسبی مثل «۲ روز پیش»)
تطبیق و مقایسه (Collation): مقایسه رشتههای متنی برای مرتبسازی (Sorting) یا جستجو با استفاده از Intl.Collator
انتخاب فرمهای جمع (Plural Rules): تشخیص قوانین جمع و مفرد در زبانهای مختلف با استفاده از Intl.PluralRules
بخشبندی متون (Segmentation): تکهتکه کردن یک متن به واحدهای کوچکتر مثل کلمات، جملات یا نویسهها (Graphemes) با استفاده از Intl.Segmenter
دریافت نام نمایشی (Display Names): به دست آوردن نام رسمی و بومیِ ارزها، زبانها، خطوط نگارشی، کشورها/مناطق و مناطق زمانی با استفاده از Intl.DisplayNames
Intlاکثر APIهای مجموعه Intl از یک الگوی طراحی کاملاً مشابه پیروی میکنند (تنها استثنا در این میان Intl.Locale است). روال کار به این صورت است:
ابتدا با مشخص کردن زبان هدف (Locale) و تنظیمات دلخواه (Options)، یک نمونه (Instance) از شیء مورد نظر میسازید. این کار مجموعهای از قوانین را برای عملیات شما (فرمت کردن، مقایسه، بخشبندی و...) مشخص میکند.
سپس متد مربوطه را روی آن نمونه صدا میزنید (مثل متدهای format() ،compare() یا segment()) تا آن قوانین روی دادههای پاسدادهشده اعمال شوند.
بیا این الگو را در قالب یک کد ساده ببینیم:
// ۱. ساخت یک شیء فرمتکننده با مشخص کردن زبان (en-US) و تنظیمات فرمت (واحد پول دلار):
const price = new Intl.NumberFormat("en-US", {
style: "currency",
currency: "USD",
});
// ۲. استفاده از متد format برای اعمال آن قوانین روی یک عدد:
console.log(price.format(5.259)); // خروجی: $5.26
شکل کلی فراخوانی متد سازنده در تمام این اشیاء به صورت زیر است:
new Intl.SomeObject(locales, options)
locales (اختیاری)این پارامتر میتواند یک رشته متنی حاوی برچسب زبان استاندارد (BCP 47 language tag)، یک نمونه از Intl.Locale یا آرایهای از این شناسهها باشد. اگر این پارامتر را پاس ندهید (undefined) یا سیستم از هیچکدام از شناسههای ارسالی شما پشتیبانی نکند، به طور خودکار از زبان پیشفرض سیستمعامل/مرورگر استفاده میشود.
options (اختیاری)شیئی حاوی ویژگیهای مختلف که رفتار و جزئیات دقیق عملیات شما را شخصیسازی میکند. درک این پارامتر، کلید اصلی یادگیری و استفاده حرفهای از هر کدام از اشیای مجموعه Intl است.
این محتوا کاملا رایگان توسط تیم کدلپر ترجمه شده و در اختیار شما کاربران عزیز قرار گرفته است، هر گونه کپی برداری برای مقاصد غیر رایگان و بدون ذکر منبع، مورد پیگیری قانونی قرار میگیرد.
ترجمه شده از منبع: https://developer.mozilla.org/en-US/docs/Web/JavaScript