تلقي إشعارات حول الإصدارات القادمة من Intlayer
    إنشاء:2025-04-18آخر تحديث:2025-06-29

    إعلان محتوى "لكل لغة" في Intlayer

    يدعم Intlayer طريقتين لإعلان المحتوى متعدد اللغات:

    • ملف واحد يحتوي على جميع الترجمات
    • ملف واحد لكل لغة (تنسيق لكل لغة)

    تتيح هذه المرونة:

    • سهولة الترحيل من أدوات التدويل الأخرى
    • دعم سير عمل الترجمة الآلية
    • تنظيم واضح للترجمات في ملفات منفصلة خاصة بكل لغة

    ملف واحد مع ترجمات متعددة

    هذا التنسيق مثالي لـ:

    • التكرار السريع في الكود.
    • التكامل السلس مع نظام إدارة المحتوى (CMS).

    هذه هي الطريقة الموصى بها لمعظم حالات الاستخدام. فهو يركز الترجمات في مكان واحد، مما يسهل التكرار والتكامل مع نظام إدارة المحتوى.

    hello-world.content.ts
    import { t, type Dictionary } from "intlayer";const helloWorldContent = {  key: "hello-world",  content: {    multilingualContent: t({      en: "Title of my component",      es: "Título de mi componente",    }),  },} satisfies Dictionary;export default helloWorldContent;

    موصى به: هذا التنسيق هو الأفضل عند استخدام محرر Intlayer المرئي أو إدارة الترجمات مباشرة في الكود.

    تنسيق حسب اللغة

    هذا التنسيق مفيد عندما:

    • تريد إصدار أو تجاوز الترجمات بشكل مستقل.
    • تقوم بدمج سير عمل الترجمة الآلية أو البشرية.

    يمكنك أيضًا تقسيم الترجمات إلى ملفات لغة فردية عن طريق تحديد حقل اللغة:

    hello-world.en.content.ts
    import { t, Locales, type Dictionary } from "intlayer";const helloWorldContent = {  key: "hello-world",  locale: Locales.ENGLISH, // مهم  content: { multilingualContent: "عنوان المكون الخاص بي" },} satisfies Dictionary;export default helloWorldContent;
    hello-world.es.content.ts
    import { t, Locales, type Dictionary } from "intlayer";const helloWorldContent = {  key: "hello-world",  locale: Locales.SPANISH, // مهم  content: { multilingualContent: "Título de mi componente" },} satisfies Dictionary;export default helloWorldContent;

    مهم: تأكد من تعريف حقل locale. فهو يخبر Intlayer باللغة التي يمثلها الملف.

    ملاحظة: في كلتا الحالتين، يجب أن يتبع ملف إعلان المحتوى نمط التسمية *.content.{ts,tsx,js,jsx,mjs,cjs,json} ليتم التعرف عليه من قبل Intlayer. اللاحقة .[locale] اختيارية وتستخدم فقط كاتفاقية تسمية.

    مزج الصيغ

    يمكنك دمج كلا النهجين للإعلان عن نفس مفتاح المحتوى. على سبيل المثال:

    • أعلن عن المحتوى الأساسي الخاص بك بشكل ثابت في ملف مثل index.content.ts.
    • أضف أو استبدل الترجمات المحددة في ملفات منفصلة مثل index.fr.content.ts أو index.content.json.

    هذا الإعداد مفيد بشكل خاص عندما:

    • تريد تعريف هيكل المحتوى الأولي في الكود.
    • تخطط لإثراء أو إكمال الترجمات لاحقًا باستخدام نظام إدارة المحتوى (CMS) أو الأدوات الآلية.
    bash
    .└── Components    └── MyComponent        ├── index.content.ts        ├── index.content.json        └── index.ts

    مثال

    هنا ملف إعلان محتوى متعدد اللغات:

    Components/MyComponent/index.content.ts
    import { t, type Dictionary } from "intlayer";const helloWorldContent = {  key: "hello-world",  locale: Locales.ENGLISH,  content: {    multilingualContent: "عنوان المكون الخاص بي",    projectName: "مشروعي",  },} satisfies Dictionary;export default helloWorldContent;
    Components/MyComponent/index.content.json
    {  "$schema": "https://intlayer.org/schema.json",  "key": "hello-world",  "content": {    "multilingualContent": {      "nodeType": "translation",      "translation": {        "fr": "Titre de mon composant",        "es": "Título de mi componente"      }    }  }}

    يقوم Intlayer بدمج الملفات متعددة اللغات وملفات كل لغة تلقائيًا.

    Components/MyComponent/index.ts
    import { getIntlayer, Locales } from "intlayer";const intlayer = getIntlayer("hello-world"); // اللغة الافتراضية هي الإنجليزية، لذا ستُرجع المحتوى باللغة الإنجليزيةconsole.log(JSON.stringify(intlayer, null, 2));// النتيجة:// {//  "multilingualContent": "عنوان المكون الخاص بي",//  "projectName": "مشروعي"// }const intlayer = getIntlayer("hello-world", Locales.SPANISH);console.log(JSON.stringify(intlayer, null, 2));// النتيجة:// {//  "multilingualContent": "Título de mi componente",//  "projectName": "مشروعي"// }const intlayer = getIntlayer("hello-world", Locales.FRENCH);console.log(JSON.stringify(intlayer, null, 2));// النتيجة:// {//  "multilingualContent": "Titre de mon composant",//  "projectName": "مشروعي"// }

    التوليد التلقائي للترجمة

    استخدم intlayer CLI لملء الترجمات المفقودة تلقائيًا بناءً على الخدمات المفضلة لديك.

    تاريخ الوثيقة

    • 5.5.10 - 2025-06-29: بدء التاريخ
    تلقي إشعارات حول الإصدارات القادمة من Intlayer