الرئيسيةبيئة اختبارمعرض الأعمالتطبيقوثيقةمدونة
    • Englishالإنجليزية
      EN
    • русскийالروسية
      RU
    • 日本語اليابانية
      JA
    • françaisالفرنسية
      FR
    • 한국어الكورية
      KO
    • 中文الصينية
      ZH
    • españolالإسبانية
      ES
    • Deutschالألمانية
      DE
    • العربيةالعربية
      AR
    • italianoالإيطالية
      IT
    • British Englishالإنجليزية (المملكة المتحدة)
      EN-GB
    • portuguêsالبرتغالية
      PT
    • हिन्दीالهندية
      HI
    • Türkçeالتركية
      TR
    • polskiالبولندية
      PL
    • Indonesiaالإندونيسية
      ID
    • Tiếng Việtالفيتنامية
      VI
    • українськаالأوكرانية
      UK
    /
    تصفية المستندات حسب الإطار
    Alt+←
    لماذا Intlayer؟
    ابدأ
    مفهوم
    • كيف يعمل Intlayer
    • التكوين
    • TestFillBuildWatchExtractLoginPushPullConfigurationListVersionEditorLiveDebugDoc ReviewDoc TranslateSDK
    • المحرر المرئي
    • CMS
    • تكامل CI/CD
    • ترجمةجمعتعدادشرطجنسإدراجملفتداخلMarkdownHTMLجلب الوظيفة
    • ملف لكل لغة
    • محرر
    • الملء التلقائي
    • اختبار
    • تحسين الحزمة
    بيئة
    • Next.js 14 وموجه التطبيق
      Next.js 15
      Next.js بدون locale URL
      Next.js وموجه الصفحة
      المترجم
    • Tanstack Start Solid
    • Astro و React
      Astro و Svelte
      Astro و Vue
      Astro و Solid
      Astro و Preact
      Astro و Lit
      Astro و Vanilla JS
    • React Router v7
      React Router v7 (fs-routes)
      Compiler
    • Nuxt و Vue
    • Vite و Solid
    • SvelteKit
    • Vite و Preact
    • Vite و Vanilla JS
    • Vite و Lit
    • Angular 19 (Webpack)
      Analog
    • React CRA
    • React Native و Expo
    • Express.js
      NestJS
      Fastify
      Hono
      Adonis
    • Lynx و React
    Plugins
    • JSON
    • gettext (.po)
    امتداد VS Code
    وكيل
    • خادم MCP
    • مهارات الوكيل
    إصدارات
    • v8
    • v7
    • v6
    مؤشر أداء
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    مدونة
    طرح سؤال
    1. Documentation
    2. مفهوم
    3. ملف لكل لغة
    إنشاء:2025-04-18آخر تحديث:2025-06-29
    استخدم هذه الصفحة والموفر AI الذي تريده
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    استخدم مساعدك المفضل للملخص واستخدم هذه الصفحة والموفر AI الذي تريده

    تاريخ الإصدارات

    1. "بدء التاريخ"
      v5.5.1029‏/6‏/2025

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

    اعرض آخر نسخة المحتوى الأصلي باللغة الإنكليزية
    تعديل هذه الوثيقة

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

    رابط GitHub للتوثيق
    نسخ

    نسخ الـ Markdown من المستند إلى الحافظة

    إعلان محتوى "لكل لغة" في 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 المرئي أو إدارة الترجمات مباشرة في الكود.

    التكوين العام لملفات كل لغة

    يمكنك ضبط التكوين العام لملفات كل لغة عن طريق إضافة ما يلي إلى ملف intlayer.config.ts الخاص بك:

    ts
    نسخ الكود

    نسخ الكود إلى الحافظة

    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  dictionary: {    locale: Locales.ENGLISH,  },};export default config;

    باستخدام هذا التكوين، سيتم إنشاء جميع ملفات كل لغة مع تعيين اللغة الافتراضية إلى الإنجليزية. يتضمن ذلك أيضاً إنشاء ملفات .content باستخدام أمر extract والمترجم (compiler). (انظر Compiler أو Extract لمزيد من المعلومات.)

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

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

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

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

    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 لملء الترجمات المفقودة تلقائيًا بناءً على الخدمات المفضلة لديك.

    جلب الوظيفة
    محرر
    Alt+→

    في هذه الصفحة

      المناقشات مجهولة الهوية ويتم مراجعتها بانتظام لمعالجة المشكلات الشائعة. لا تتردد في مشاركة أفكار الميزات أو التعليقات على الوثائق أو أي شيء يتعلق بـ Intlayer, نستخدم هذه المدخلات لتشكيل خارطة الطريق وتحسين المنتج.

      import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  dictionary: {    locale: Locales.ENGLISH,  },};export default config;
      .└── Components    └── MyComponent        ├── index.content.ts        ├── index.content.json        └── index.ts
      import { t, type Dictionary } from "intlayer";const helloWorldContent = {  key: "hello-world",  locale: Locales.ENGLISH,  content: {    multilingualContent: "عنوان المكون الخاص بي",    projectName: "مشروعي",  },} satisfies Dictionary;export default helloWorldContent;
      {  "$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"      }    }  }}
      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": "مشروعي"// }