استخدم مساعدك المفضل للملخص واستخدم هذه الصفحة والموفر AI الذي تريده
تاريخ الإصدارات
- "إصدار ميزة المتغيرات"v9.0.0١٢/٦/٢٠٢٦
- "أصبح `variant` يقبل سلسلة نصية أو كائنًا — تُعلَن `meta` / السجلات الديناميكية السابقة كمتغيرات كائنية"v9.1.0٢٦/٦/٢٠٢٦
تمت ترجمة محتوى هذه الصفحة باستخدام الذكاء الاصطناعي.
اعرض آخر نسخة المحتوى الأصلي باللغة الإنكليزيةIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
المتغيرات
المتغير هو مجموعة من ملفات المحتوى تشترك في مفتاح القاموس نفسه (key) لكن يحمل كل منها قيمة variant مختلفة. يقدّم Intlayer الملف المناسب بناءً على المُحدِّد المُمرَّر إلى useIntlayer.
يمكن أن تأخذ قيمة variant شكلين:
- سلسلة نصية — بديل مُسمّى واحد (اختبارات A/B، لافتات موسمية، أعلام ميزات).
- كائن — مُميِّز منظّم يُعنوَن بمجموعة من الحقول (سجلات CMS، محتوى خاص بالمستخدم، أي محتوى مفتاحه مُعرِّف غامض). الكائن بأكمله هو الهوية: يجب أن يوفّر المُحدِّد كائنًا مساويًا لحلّ المدخلة.
يحلّ الشكل الكائني محل حقلmetaالسابق. في كل مكان كنت تكتب فيه سابقًاmeta: { id, … }، اكتبvariant: { id, … }، وحدّدها بـ{ variant: { id, … } }.
المتغيرات المُسمّاة (النصية)
يمثّل كل ملف بديلًا مُسمّى واحدًا. حذف variant (أو ضبطه على "default") يجعله البديل الاحتياطي.
نسخ الكود إلى الحافظة
import { t, type Dictionary } from "intlayer";
const dictionary = {
key: "hero-banner",
variant: "default",
content: {
headline: t({
en: "Build faster with Intlayer",
fr: "Développez plus vite avec Intlayer",
}),
cta: t({ en: "Get started", fr: "Commencer" }),
},
} satisfies Dictionary;
export default dictionary;نسخ الكود إلى الحافظة
import { t, type Dictionary } from "intlayer";
const dictionary = {
key: "hero-banner",
variant: "black_friday",
content: {
headline: t({
en: "50 % off — today only",
fr: "−50 % — aujourd'hui seulement",
}),
cta: t({ en: "Shop now", fr: "Acheter maintenant" }),
},
} satisfies Dictionary;
export default dictionary;استهلاك المتغيرات المُسمّاة
المتغير الافتراضي
نسخ الكود إلى الحافظة
import { useIntlayer } from "react-intlayer";
export const Hero = () => {
const { headline, cta } = useIntlayer("hero-banner");
// ← المتغير الافتراضي
return (
<section>
<h1>{headline}</h1>
<a>{cta}</a>
</section>
);
};متغير مُسمّى
نسخ الكود إلى الحافظة
const { headline, cta } = useIntlayer("hero-banner", { variant: "black_friday",});متغير مُسمّى بلغة locale صريحة
نسخ الكود إلى الحافظة
const content = useIntlayer("hero-banner", { variant: "black_friday", locale: "fr",});المتغيرات الكائنية (المنظّمة)
يُعنوِن المتغير الكائني المحتوى بمجموعة عشوائية من أزواج المفتاح-القيمة المُعلَنة في حقل variant — مما يتيح نمذجة سجلات CMS، أو المحتوى الخاص بالمستخدم، أو أي محتوى مفتاحه مُعرِّف غامض. الهوية هي الكائن بأكمله: يجب أن يوفّر المُحدِّد كائنًا مساويًا حتى تُحلّ المدخلة.
نسخ الكود إلى الحافظة
import { t, type Dictionary } from "intlayer";
const dictionary = {
key: "product",
variant: { id: "prod_abc", userId: "user_123" },
content: {
name: t({ en: "Widget Pro", fr: "Widget Pro" }),
description: t({ en: "The best widget.", fr: "Le meilleur widget." }),
},
} satisfies Dictionary;
export default dictionary;نسخ الكود إلى الحافظة
import { t, type Dictionary } from "intlayer";
const dictionary = {
key: "product",
variant: { id: "prod_abcd", userId: "user_123" },
content: {
name: t({ en: "Widget Lite", fr: "Widget Lite" }),
description: t({ en: "A lighter option.", fr: "Une option plus légère." }),
},
} satisfies Dictionary;
export default dictionary;استهلاك المتغيرات الكائنية
مرّر الكائن المطابق إلى variant. يجب توفير كل حقل مُعلَن في القاموس ومساواته؛ وإلا فالنتيجة null. لا يهم ترتيب الحقول.
نسخ الكود إلى الحافظة
import { useIntlayer } from "react-intlayer";
export const Product = ({
productId,
userId,
}: {
productId: string;
userId: string;
}) => {
const content = useIntlayer("product", {
variant: { id: productId, userId },
});
if (!content) return null;
return <p>{content.description}</p>;
};مع لغة locale صريحة
نسخ الكود إلى الحافظة
const content = useIntlayer("product", { variant: { id: "prod_abc", userId: "user_123" }, locale: "fr",});حقل مفقود — لا تطابق
نسخ الكود إلى الحافظة
// يُعيد null: `userId` مفقود، لذا لا يتطابق الكائن مع المتغير المُعلَنconst content = useIntlayer("product", { variant: { id: "prod_abc" } });وضع التحميل
غالبًا ما تُحمَّل المتغيرات الكائنية بشكل كسول. اضبط importMode على القاموس للتحكم في ذلك:
نسخ الكود إلى الحافظة
const dictionary = {
key: "product",
importMode: "fetch", // or "dynamic"
variant: { id: "prod_abc", userId: "user_123" },
content: { … },
} satisfies Dictionary;
export default dictionary;راجع تحسين الحزمة لمعرفة تفاصيل أوضاع static وdynamic وfetch.
حالات الاستخدام النموذجية
- اختبارات A/B للنصوص مُوجَّهة بمفتاح تجربة
- لافتات موسمية أو ترويجية
- رسائل بأعلام الميزات
- حملات تسويقية خاصة بلغة locale
- نص تسويقي لكل منتج يُدار في CMS
- محتوى خاص بالمستخدم أو الحساب
- أي محتوى يُعنوَن بمُعرِّف غامض في وقت التشغيل