الرئيسيةبيئة اختبارمعرض الأعمالتطبيقوثيقةمدونة
    • 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 15Next.js بدون locale URLNext.js وموجه الصفحةالمترجم
    • Tanstack Start Solid
    • Astro و ReactAstro و SvelteAstro و VueAstro و SolidAstro و PreactAstro و LitAstro و Vanilla JS
    • React Router v7React 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.jsNestJSFastifyHonoAdonis
    • Lynx و React
    Plugins
    • JSON
    • gettext (.po)
    امتداد VS Code
    وكيل
    • خادم MCP
    • مهارات الوكيل
    إصدارات
    • v8
    • v7
    • v6
    مؤشر أداء
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    مدونة
    طرح سؤال
    1. Documentation
    2. مفهوم
    3. تكامل CI/CD

    التوليد التلقائي للترجمات في خط أنابيب CI/CD

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

    استخدام نظام إدارة المحتوى (CMS)

    مع Intlayer، يمكنك اعتماد سير عمل حيث يتم إعلان لغة واحدة فقط محليًا، بينما تتم إدارة جميع الترجمات عن بُعد من خلال نظام إدارة المحتوى (CMS). يتيح هذا فصل المحتوى والترجمات تمامًا عن قاعدة الشيفرة، مما يوفر مزيدًا من المرونة لمحرري المحتوى ويمكّن من إعادة تحميل المحتوى الحي (دون الحاجة إلى إعادة بناء التطبيق لتطبيق التغييرات).

    مثال على التكوين

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],    requiredLocales: [Locales.ENGLISH], // سيتم إدارة اللغات الاختيارية عن بُعد    defaultLocale: Locales.ENGLISH,  },  editor: {    dictionaryPriorityStrategy: "distant_first", // المحتوى البعيد له الأولوية    applicationURL: process.env.APPLICATION_URL, // عنوان URL الخاص بالتطبيق المستخدم من قبل نظام إدارة المحتوى    clientId: process.env.INTLAYER_CLIENT_ID, // بيانات اعتماد نظام إدارة المحتوى    clientSecret: process.env.INTLAYER_CLIENT_SECRET,  },  ai: {    applicationContext: "This is a test application", // يساعد في ضمان توليد ترجمة متسقة  },};export default config;

    لمعرفة المزيد عن نظام إدارة المحتوى، راجع التوثيق الرسمي.

    استخدام Husky

    يمكنك دمج توليد الترجمات في سير عمل Git المحلي الخاص بك باستخدام Husky.

    مثال على التكوين

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],    requiredLocales: [Locales.ENGLISH], // يتم التعامل مع اللغات الاختيارية عن بُعد    defaultLocale: Locales.ENGLISH,  },  editor: {    clientId: process.env.INTLAYER_CLIENT_ID,    clientSecret: process.env.INTLAYER_CLIENT_SECRET,  },  ai: {    provider: "openai",    apiKey: process.env.OPENAI_API_KEY, // استخدم مفتاح API الخاص بك    applicationContext: "This is a test application", // يساعد في ضمان توليد ترجمة متسقة  },};export default config;
    .husky/pre-push
    npx intlayer build                          # لضمان تحديث القواميسnpx intlayer fill --unpushed --mode fill    # ملء المحتوى المفقود فقط، لا يقوم بتحديث المحتويات الموجودة
    لمزيد من المعلومات حول أوامر Intlayer CLI وكيفية استخدامها، راجع توثيق CLI.
    إذا كان لديك عدة تطبيقات في مستودعك تستخدم نسخ منفصلة من intlayer، يمكنك استخدام الوسيط --base-dir كما يلي:
    .husky/pre-push
    # التطبيق 1npx intlayer build --base-dir ./app1npx intlayer fill --base-dir ./app1 --unpushed --mode fill# التطبيق 2npx intlayer build --base-dir ./app2npx intlayer fill --base-dir ./app2 --unpushed --mode fill

    استخدام GitHub Actions

    توفر Intlayer أمر CLI لملء ومراجعة محتوى القاموس تلقائيًا. يمكن دمج هذا في سير عمل CI/CD الخاص بك باستخدام GitHub Actions.

    .github/workflows/intlayer-translate.yml
    name: تعبئة Intlayer تلقائيًا# شروط تشغيل هذا سير العملon:  pull_request:    branches:      - "main"permissions:  contents: write  pull-requests: writeconcurrency:  group: "autofill-${{ github.ref }}"  cancel-in-progress: truejobs:  autofill:    runs-on: ubuntu-latest    env:      # OpenAI      AI_MODEL: openai      AI_PROVIDER: gpt-5-mini      AI_API_KEY: ${{ secrets.AI_API_KEY }}    steps:      # الخطوة 1: جلب أحدث كود من المستودع      - name: ⬇️ سحب المستودع        uses: actions/checkout@v4        with:          persist-credentials: true # الاحتفاظ بالاعتمادات لإنشاء طلبات السحب          fetch-depth: 0 # الحصول على كامل تاريخ git لتحليل الفروقات      # الخطوة 2: إعداد بيئة Node.js      - name: 🟢 إعداد Node.js        uses: actions/setup-node@v4        with:          node-version: 20 # استخدام Node.js 20 LTS للاستقرار      # الخطوة 3: تثبيت تبعيات المشروع      - name: 📦 تثبيت التبعيات        run: npm install      # الخطوة 4: تثبيت Intlayer CLI عالميًا لإدارة الترجمات      - name: 📦 تثبيت Intlayer        run: npm install -g intlayer-cli      # الخطوة 5: بناء مشروع Intlayer لإنشاء ملفات الترجمة      - name: ⚙️ بناء مشروع Intlayer        run: npx intlayer build      # الخطوة 6: استخدام الذكاء الاصطناعي لملء الترجمات الناقصة تلقائيًا      - name: 🤖 ملء الترجمات الناقصة تلقائيًا        run: npx intlayer fill --git-diff --mode fill --provider $AI_PROVIDER --model $AI_MODEL --api-key $AI_API_KEY      # الخطوة 7: التحقق من وجود تغييرات والقيام بعملية الالتزام بها      - name: � التحقق من وجود تغييرات        id: check-changes        run: |          if [ -n "$(git status --porcelain)" ]; then            echo "has-changes=true" >> $GITHUB_OUTPUT          else            echo "has-changes=false" >> $GITHUB_OUTPUT          fi      # الخطوة 8: الالتزام ودفع التغييرات إذا وجدت      - name: 📤 الالتزام ودفع التغييرات        if: steps.check-changes.outputs.has-changes == 'true'        run: |          git config --local user.email "[email protected]"          git config --local user.name "GitHub Action"          git add .          git commit -m "chore: ملء تلقائي للترجمات المفقودة [تخطي CI]"          git push origin HEAD:${{ github.head_ref }}

    لإعداد متغيرات البيئة، انتقل إلى GitHub → الإعدادات → الأسرار والمتغيرات → الإجراءات وأضف السر .

    كما هو الحال مع Husky، في حالة وجود مستودع أحادي (monorepo)، يمكنك استخدام الوسيطة --base-dir لمعالجة كل تطبيق بالتتابع.
    بشكل افتراضي، تقوم الوسيطة --git-diff بتصفية القواميس التي تتضمن تغييرات من القاعدة (الافتراضية origin/main) إلى الفرع الحالي (الافتراضي: HEAD).
    لمزيد من المعلومات حول أوامر Intlayer CLI وكيفية استخدامها، راجع توثيق CLI.
    إنشاء:2025-05-20آخر تحديث:2025-08-13
    استخدم هذه الصفحة والموفر AI الذي تريده
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

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

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

    1. "بدء السجل"
      v5.5.1029‏/6‏/2025

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

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

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

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

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

    نسخ الكود

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

    نسخ الكود

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

    نسخ الكود

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

    نسخ الكود

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

    نسخ الكود

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

    CMS
    إعلان المحتوى
    Alt+→

    في هذه الصفحة

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