استخدم مساعدك المفضل للملخص واستخدم هذه الصفحة والموفر AI الذي تريده
هذه الوثيقة غير محدثة، تم تحديث النسخة الأساسية في ٢٠ يناير ٢٠٢٦.
الانتقال إلى الوثيقة الإنجليزيةتاريخ الإصدارات
- "إضافة منسقات vue"v5.8.0٢٠/٨/٢٠٢٥
- "إضافة توثيق المنسقات"v5.8.0١٨/٨/٢٠٢٥
- "إضافة توثيق منسق القوائم"v5.8.0٢٠/٨/٢٠٢٥
- "إضافة أدوات Intl إضافية (DisplayNames، Collator، PluralRules)"v5.8.0٢٠/٨/٢٠٢٥
- "إضافة أدوات التعامل مع اللغة (getLocaleName، getLocaleLang، getLocaleFromPath، إلخ)"v5.8.0٢٠/٨/٢٠٢٥
- "إضافة أدوات التعامل مع المحتوى (getContent، getTranslation، getIntlayer، إلخ)"v5.8.0٢٠/٨/٢٠٢٥
تمت ترجمة محتوى هذه الصفحة باستخدام الذكاء الاصطناعي.
اعرض آخر نسخة المحتوى الأصلي باللغة الإنكليزيةإذا كان لديك فكرة لتحسين هذه الوثيقة، فلا تتردد في المساهمة من خلال تقديم طلب سحب على GitHub.
رابط GitHub للتوثيقنسخ الـ Markdown من المستند إلى الحافظة
أدوات تنسيق Intlayer
نظرة عامة
يوفر Intlayer مجموعة من المساعدين الخفيفين المبنيين على واجهات برمجة التطبيقات الأصلية Intl، بالإضافة إلى غلاف Intl مخزن مؤقت لتجنب إنشاء أدوات تنسيق ثقيلة بشكل متكرر. هذه الأدوات مدركة تمامًا للغة ويمكن استخدامها من الحزمة الرئيسية intlayer.
الاستيراد
إذا كنت تستخدم React، فإن الخطافات متاحة أيضًا؛ راجع react-intlayer/format.
Intl المخزن مؤقتًا
الـ Intl المصدر هو غلاف رقيق مخزن مؤقت حول الـ Intl العالمي. يقوم بتخزين نسخ من NumberFormat، DateTimeFormat، RelativeTimeFormat، ListFormat، DisplayNames، Collator، و PluralRules، مما يتجنب إعادة بناء نفس أداة التنسيق مرارًا وتكرارًا.
نظرًا لأن إنشاء أداة التنسيق مكلف نسبيًا، فإن هذا التخزين المؤقت يحسن الأداء دون تغيير السلوك. الغلاف يعرض نفس واجهة برمجة التطبيقات Intl الأصلية، لذا فإن الاستخدام متطابق.
- التخزين المؤقت يتم لكل عملية وهو شفاف للمستدعين.
إذا لم يكن Intl.DisplayNames متاحًا في البيئة، يتم طباعة تحذير واحد مخصص للمطور فقط (فكر في استخدام polyfill).
أمثلة:
أدوات Intl إضافية
بعيدًا عن مساعدي التنسيق، يمكنك أيضًا استخدام الغلاف المؤقت لـ Intl مباشرةً لميزات Intl الأخرى:
Intl.DisplayNames
لأسماء اللغات والمناطق والعملات والكتابات المحلية:
Intl.Collator
للمقارنة والفرز النصي المعتمد على اللغة:
Intl.PluralRules
لتحديد أشكال الجمع في لغات مختلفة:
أدوات اللغة
getLocaleName(displayLocale, targetLocale?)
يحصل على الاسم المحلي للغة في لغة أخرى:
- displayLocale: اللغة التي سيتم الحصول على اسمها
- targetLocale: اللغة التي سيتم عرض الاسم بها (افتراضيًا تكون نفس displayLocale)
getLocaleLang(locale?)
يستخرج رمز اللغة من سلسلة اللغة:
- locale: اللغة التي سيتم استخراج رمز اللغة منها (افتراضيًا اللغة الحالية)
getLocaleFromPath(inputUrl)
يستخرج جزء اللغة من عنوان URL أو مسار:
- inputUrl: سلسلة عنوان URL الكاملة أو مسار المعالجة
- returns: اللغة المكتشفة أو اللغة الافتراضية إذا لم يتم العثور على لغة
getPathWithoutLocale(inputUrl, locales?)
يزيل جزء اللغة من عنوان URL أو مسار:
- inputUrl: سلسلة عنوان URL الكاملة أو مسار المعالجة
- locales: مصفوفة اختيارية من اللغات المدعومة (افتراضيًا إلى اللغات المُعدة)
- returns: عنوان URL بدون جزء اللغة
getLocalizedUrl(url, currentLocale, locales?, defaultLocale?, prefixDefault?)
ينشئ عنوان URL محلي للغة الحالية:
- url: عنوان URL الأصلي لتوطينه
- currentLocale: اللغة الحالية
- locales: مصفوفة اختيارية من اللغات المدعومة (افتراضيًا إلى اللغات المُعدة)
- defaultLocale: اللغة الافتراضية الاختيارية (افتراضيًا إلى اللغة الافتراضية المُعدة)
- prefixDefault: ما إذا كان يجب إضافة بادئة للغة الافتراضية (افتراضيًا إلى القيمة المُعدة)
getHTMLTextDir(locale?)
يعيد اتجاه النص للغة معينة:
- locale: اللغة التي يتم الحصول على اتجاه النص لها (افتراضيًا إلى اللغة الحالية)
- returns:
"ltr"،"rtl"، أو"auto"
أدوات معالجة المحتوى
getContent(node, nodeProps, locale?)
يقوم بتحويل عقدة المحتوى باستخدام جميع الإضافات المتاحة (الترجمة، الترقيم، الإدراج، إلخ):
- node: عقدة المحتوى التي سيتم تحويلها
- nodeProps: خصائص سياق التحويل
- locale: اللغة الاختيارية (افتراضيًا إلى اللغة الافتراضية المُعدة)
getTranslation(languageContent, locale?, fallback?)
يستخرج المحتوى للغة معينة من كائن محتوى متعدد اللغات:
- languageContent: كائن يربط اللغات بالمحتوى
- locale: اللغة المستهدفة (الافتراضي هو اللغة الافتراضية المُعدة)
- fallback: ما إذا كان يجب الرجوع إلى اللغة الافتراضية (الافتراضي هو true)
getIntlayer(dictionaryKey, locale?, plugins?)
يسترجع ويحوّل المحتوى من قاموس حسب المفتاح:
- dictionaryKey: مفتاح القاموس الذي سيتم استرجاعه
- locale: اللغة الاختيارية (الافتراضي هو اللغة الافتراضية المُعدة)
- plugins: مصفوفة اختيارية من الإضافات المخصصة للتحويل
getIntlayerAsync(dictionaryKey, locale?, plugins?)
يسترجع المحتوى بشكل غير متزامن من قاموس بعيد:
- dictionaryKey: مفتاح القاموس الذي سيتم استرجاعه
- locale: اللغة الاختيارية (الافتراضي هو اللغة الافتراضية المُعدة)
- plugins: مصفوفة اختيارية من الإضافات المخصصة للتحويل
أدوات التنسيق
جميع الأدوات التالية مُصدرة من intlayer.
number(value, options?)
يقوم بتنسيق قيمة رقمية باستخدام التجميع والفواصل العشرية المعتمدة على اللغة.
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }
أمثلة:
percentage(value, options?)
يقوم بتنسيق رقم كسلسلة نسبة مئوية.
السلوك: القيم الأكبر من 1 تُفسر كنسب مئوية كاملة ويتم تطبيعها (مثلاً، 25 → 25%، 0.25 → 25%).
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }
أمثلة:
currency(value, options?)
يقوم بتنسيق قيمة كعملة محلية. الافتراضي هو USD مع رقمين عشريين.
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }- الحقول الشائعة:
currency(مثلاً،"EUR")،currencyDisplay("symbol" | "code" | "name")
- الحقول الشائعة:
أمثلة:
date(date, optionsOrPreset?)
يقوم بتنسيق قيمة التاريخ/الوقت باستخدام Intl.DateTimeFormat.
- date:
Date | string | number - optionsOrPreset:
Intl.DateTimeFormatOptions & { locale?: LocalesValues }أو أحد الإعدادات المسبقة:- الإعدادات المسبقة:
"short" | "long" | "dateOnly" | "timeOnly" | "full"
- الإعدادات المسبقة:
أمثلة:
relativeTime(from, to = new Date(), options?)
يقوم بتنسيق الوقت النسبي بين لحظتين باستخدام Intl.RelativeTimeFormat.
- مرر "now" كوسيط أول والهدف كوسيط ثاني للحصول على تعبير طبيعي.
- from:
Date | string | number - to:
Date | string | number(افتراضيًاnew Date()) - options:
{ locale?: LocalesValues; unit?: Intl.RelativeTimeFormatUnit; numeric?: Intl.RelativeTimeFormatNumeric; style?: Intl.RelativeTimeFormatStyle }- الوحدة الافتراضية
unitهي"second".
- الوحدة الافتراضية
أمثلة:
units(value, options?)
يقوم بتنسيق قيمة رقمية كسلسلة وحدة محلية باستخدام Intl.NumberFormat مع style: 'unit'.
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }- الحقول الشائعة:
unit(مثلًا،"kilometer"،"byte")،unitDisplay("short" | "narrow" | "long") - القيم الافتراضية:
unit: 'day'،unitDisplay: 'short'،useGrouping: false
- الحقول الشائعة:
أمثلة:
compact(value, options?)
يقوم بتنسيق رقم باستخدام التدوين المضغوط (مثلًا، 1.2K، 1M).
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }(يستخدمnotation: 'compact'ضمنيًا)
أمثلة:
list(values, options?)
يقوم بتنسيق مصفوفة من القيم إلى سلسلة قائمة محلية باستخدام Intl.ListFormat.
- values:
(string | number)[] - options:
Intl.ListFormatOptions & { locale?: LocalesValues }- الحقول الشائعة:
type("conjunction" | "disjunction" | "unit")،style("long" | "short" | "narrow") - القيم الافتراضية:
type: 'conjunction'،style: 'long'
- الحقول الشائعة:
أمثلة:
ملاحظات
- جميع الأدوات المساعدة تقبل مدخلات من نوع
string؛ حيث يتم تحويلها داخليًا إلى أرقام أو تواريخ. - اللغة الافتراضية هي
internationalization.defaultLocaleالتي قمت بتكوينها إذا لم يتم توفير لغة. - هذه الأدوات هي أغلفة رقيقة؛ للتنسيق المتقدم، استخدم خيارات
Intlالقياسية.
نقاط الدخول وإعادة التصدير (@index.ts)
تعيش أدوات التنسيق في الحزمة الأساسية ويتم إعادة تصديرها من الحزم الأعلى للحفاظ على سهولة الاستيراد عبر بيئات التشغيل المختلفة:
أمثلة:
React
مكونات العميل:
مكونات الخادم (أو وقت تشغيل خادم React):
ستأخذ هذه الخطافات في الاعتبار اللغة منIntlayerProviderأوIntlayerServerProvider
Vue
مكونات العميل:
ستأخذ هذه التركيبات في الاعتبار اللغة من IntlayerProvider المحقون