إضافة Project Translator لـ VSCode لتحقيق الترجمة متعددة اللغات على مستوى المشروع

Project Translator هي إضافة قوية لـ VSCode، تحقق الترجمة التلقائية متعددة اللغات على مستوى المشروع باستخدام تقنيات الذكاء الاصطناعي، مع القدرة على الحفاظ على سلامة هيكل الكود وإنجاز عمل توطين الوثائق بكفاءة.

تقدم إضافة Project Translator لـ VSCode للمطورين حلاً فعالاً للترجمة متعددة اللغات على مستوى المشروع. تستخدم هذه الإضافة تقنية الذكاء الاصطناعي لتحقيق الترجمة التلقائية من ملف واحد إلى مجلد المشروع بأكمله، مع الحفاظ على سلامة هيكل الكود والتنسيق، مما يقلل بشكل كبير من الجهد المطلوب لتوطين الوثائق. بالنسبة للمشاريع مفتوحة المصدر أو البرامج التجارية التي تحتاج إلى استهداف مستخدمين عالميين، يمكن لـ Project Translator تعزيز كفاءة الترجمة واتساقها بشكل كبير. مقارنة بطريقة الترجمة اليدوية التقليدية، يمكن لأدوات الأتمتة مثل هذه معالجة كميات كبيرة من محتوى الوثائق، خاصةً وثائق المشاريع التي يتم تحديثها باستمرار. عند استخدام أداة تطوير VSCode لتطوير المشاريع، يمكن دمج إضافة Project Translator بسلاسة في سير العمل الحالي، مما يوفر للمطورين دعمًا متعدد اللغات سهل الاستخدام.

الميزات الوظيفية الأساسية

تمتلك إضافة Project Translator مجموعة من الميزات الوظيفية القوية، والتي تشكل معًا حلاً متكاملاً للترجمة متعددة اللغات على مستوى المشروع. تدعم الإضافة وضعين للترجمة: على مستوى المجلد وعلى مستوى الملف، ويمكن اختيار الوضع المناسب وفقًا لاحتياجات المشروع. في وضع ترجمة المجلد، يمكن للإضافة معالجة المجلدات الفرعية بشكل متكرر، والكشف تلقائيًا عن المحتوى القابل للترجمة، مع الحفاظ على هيكل المجلدات والعلاقات الهرمية الأصلية. تجعل آلية المعالجة الدفعية هذه ترجمة المشاريع الكبيرة ممكنة وفعالة. يمكن الحصول على الإضافة وتثبيتها مجانًا من VS Code Extensions Marketplace و Open VSX Registry.

تمثل وظيفة الترجمة الذكية إحدى المزايا الأساسية للإضافة. أثناء عملية الترجمة، تحافظ الإضافة تلقائيًا على سلامة هيكل الكود، حيث تترجم فقط تعليقات الكود ومحتوى الوثائق، مع الحفاظ على منطق الكود دون تغيير. بالنسبة لتنسيقات هياكل البيانات مثل JSON وXML، يمكن للإضافة أيضًا الحفاظ على سلامة هيكلها الأصلي. يضمن هذا التصميم أن تظل ملفات الكود المترجمة قابلة للترجمة والتشغيل بشكل طبيعي، ويتجنب مشاكل تلف الكود الناتجة عن الترجمة. كما تقدم الإضافة جودة ترجمة وثائق تقنية على مستوى احترافي، مع القدرة على فهم المصطلحات التقنية والعلاقات السياقية بدقة.

mindmap
  root((Project Translator))
    وضع الترجمة
      مستوى المجلد
      مستوى الملف
      المعالجة المتكررة
    الترجمة الذكية
      حماية هيكل الكود
      ترجمة التعليقات
      ترجمة الوثائق
      الحفاظ على التنسيق
    المرونة في التكوين
      مجلدات مصدر متعددة
      لغات هدف متعددة
      تصفية الملفات
      اختيار نموذج الذكاء الاصطناعي
    تجربة المستخدم
      التقدم في الوقت الحقيقي
      التحكم في المهام
      الترجمة التزايدية
      الترجمة التفاضلية

تمثل المرونة في التكوين سمة أخرى كبيرة لـ Project Translator. يمكن للمستخدمين تكوين مجلدات المصدر ومجلدات الهدف المتعددة، ودعم فترات ترجمة الملفات المخصصة، وتحديد أنواع الملفات المحددة التي يجب تجاهلها، واختيار خيارات نماذج الذكاء الاصطناعي المتعددة. تتيح هذه المرونة للإضافة التكيف مع هياكل المشاريع المختلفة واحتياجات الترجمة. تدعم الإضافة العديد من نماذج الذكاء الاصطناعي السائدة، بما في ذلك OpenAI وDeepSeek وGrok وغيرها، حيث يمكن للمستخدمين اختيار النموذج المناسب وفقًا لميزانيتهم ومتطلبات جودة الترجمة. بالنسبة للمشاريع التي تستخدم Hugo أو مولدات المواقع الثابتة الأخرى، فإن طريقة التكوين القائمة على المجلدات هذه تكون ودية بشكل خاص.

يركز تصميم واجهة المستخدم للإضافة على تجربة التشغيل. أثناء عملية الترجمة، يتم عرض التقدم في الوقت الحقيقي، ويمكن للمستخدمين إيقاف أو استئناف أو إيقاف مهمة الترجمة في أي وقت. تحافظ الإضافة تلقائيًا على هيكل مجلد الهدف، وتدعم الترجمة التزايدية لتجنب العمل المتكرر. عندما تستغرق مهمة الترجمة وقتًا طويلاً، تصبح هذه القابلية للتحكم مهمة بشكل خاص. علاوة على ذلك، تقدم الإضافة وظيفة ترجمة تفاضلية تجريبية، قادرة على ترجمة المحتوى المتغير فقط، مما يقلل من استخدام API ويحافظ بشكل أفضل على تاريخ الإصدارات. بالنسبة للمطورين الذين يستخدمون OpenAI API أو خدمات الذكاء الاصطناعي الأخرى، تدعم الإضافة إدارة مفاتيح API بأمان من خلال متغيرات البيئة.

سير عمل الترجمة

تم تصميم سير عمل الترجمة لـ Project Translator بعناية لضمان أن تكون العملية بأكملها فعالة وموثوقة. بعد أن يبدأ المستخدم مهمة الترجمة من خلال لوحة الأوامر، تتبع الإضافة التدفق المحدد مسبقًا لمعالجة المحتوى المصدر تدريجيًا وإنشاء إصدارات اللغة الهدف.

flowchart TD
    A[المستخدم يبدأ أمر الترجمة] e1@--> B{فحص التكوين}
    B e2@-->|غير مكون| C[عرض حوار اختيار المجلد]
    C e3@--> D[حفظ مسارات المصدر والهدف المحددة من قبل المستخدم]
    D e4@--> E[مسح ملفات ومجلدات المصدر]
    B e5@-->|مكون| E
    E e6@--> F[تحديد الملفات التي تحتاج إلى ترجمة]
    F e7@--> G[ترتيب مهام الترجمة حسب الأولوية]
    G e8@--> H{اختيار المستخدم لوضع الترجمة}
    H e9@-->|الترجمة القياسية| I[قراءة محتوى ملف المصدر]
    H e10@-->|الترجمة التفاضلية| J[قراءة محتوى ملفات المصدر والهدف]
    I e11@--> K[استدعاء نموذج الذكاء الاصطناعي للترجمة]
    J e12@--> K
    K e13@--> L[إنشاء نتيجة الترجمة]
    L e14@--> M{التحقق من جودة الترجمة}
    M e15@-->|تم التحقق| N[كتابة الملف الهدف]
    M e16@-->|فشل التحقق| O[تراجع أو إعادة المحاولة]
    N e17@--> P[تحديث تقدم الترجمة]
    P e18@--> Q{هل هناك ملفات مترجمة متبقية؟}
    Q e19@-->|نعم| I
    Q e20@-->|لا| R[إنجاز مهمة الترجمة]
    R e21@--> S[عرض ملخص الترجمة]

    classDef start fill:#E3F2FD,stroke:#1565C0,stroke-width:1px,color:#0D47A1;
    classDef work fill:#E8F5E9,stroke:#2E7D32,stroke-width:1px,color:#1B5E20;
    classDef check fill:#FFF8E1,stroke:#EF6C00,stroke-width:1px,color:#E65100;
    classDef done fill:#F3E5F5,stroke:#6A1B9A,stroke-width:1px,color:#4A148C;
    classDef animate stroke:#EF6C00,stroke-width:2px,stroke-dasharray: 9\,5,stroke-dashoffset: 900,animation: dash 25s linear infinite;
    class A start;
    class e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15,e16,e17,e18,e19,e20,e21 animate;
    class B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S work;
    class B,H,M,Q check;
    class S done;

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

شرح طرق التكوين

تم تصميم نظام تكوين إضافة Project Translator ليكون مرنًا وبديهيًا. يمكن للمستخدمين تخصيص سلوك الإضافة من خلال واجهة إعدادات VSCode أو عن طريق تحرير ملف التكوين مباشرة. تشمل العناصر الأساسية للتكوين مسارات المصدر والهدف للترجمة، ومعلمات نموذج الذكاء الاصطناعي، وقواعد التصفية، وغيرها.

mindmap
  root((نظام التكوين))
    تكوين المسارات
      مجلد المصدر
      مجلد الهدف
      دعم متعدد اللغات
    نموذج الذكاء الاصطناعي
      اختيار المزود
      تكوين API
      معلمات النموذج
    قواعد التصفية
      تجاهل المسارات
      تجاهل الامتدادات
      نسخ فقط
    خيارات متقدمة
      موجهات النظام
      وضع التصحيح
      تكوين السجلات
      الترجمة التفاضلية
    موجهات مخصصة
      أسلوب الترجمة
      مواصفات المصطلحات
      متطلبات التنسيق

تنقسم عناصر التكوين بشكل أساسي إلى عدة فئات. يحدد تكوين المجلدات والملفات مسارات الإدخال والإخراج للترجمة، حيث يمكن للمستخدمين تحديد مجلدات مصدر متعددة ومجلدات الهدف المقابلة لكل منها. يجب تحديد رمز اللغة لكل مجلد مصدر ومجلد هدف، وتدعم الإضافة 28 لغة، بما في ذلك اللغات الرئيسية مثل الصينية المبسطة، والصينية التقليدية، واليابانية، والكورية، والإنجليزية، والفرنسية، والألمانية، والإسبانية، والبرتغالية، والروسية، وغيرها. يتيح تكوين الهدف متعدد اللغات هذا إنشاء إصدارات متعددة اللغات في مهمة ترجمة واحدة، مما يحسن كفاءة الترجمة بشكل كبير.

يتيح تكوين نموذج الذكاء الاصطناعي للمستخدمين اختيار مزودي خدمات ونماذج ترجمة مختلفين. تستخدم الإضافة بشكل افتراضي نموذج DeepSeek، كما تدعم خدمات أخرى مثل OpenAI وGrok. يمكن للمستخدمين تكوين نقطة نهاية API، ومفتاح API، واسم النموذج، وعدد الطلبات في الدقيقة، والحد الأقصى لعدد الرموز لكل مقطع، ووقت المهلة، ومعلمات درجة الحرارة، وغيرها. لتعزيز الأمان، تدعم الإضافة إدارة مفاتيح API من خلال متغيرات البيئة، لتجنب كتابة المعلومات الحساسة مباشرة في ملف التكوين.

يمنح تكوين قواعد التصفية والتخطي المستخدمين القدرة على التحكم بدقة في الملفات التي تحتاج إلى ترجمة وتلك التي يجب تجاهلها. يسمح عنصر التكوين ignore للمستخدمين بتحديد المسارات وامتدادات الملفات التي يجب تجاهلها تمامًا، وبشكل افتراضي يتم تجاهل دليل node_modules وملفات .log. يُستخدم عنصر التكوين copyOnly لتحديد أنواع الملفات التي يجب نسخها دون ترجمتها. بينما يسمح عنصر التكوين skipFrontMatterMarkers للمستخدمين بتخطي الترجمة بناءً على بيانات التعريف front matter لملفات Markdown، على سبيل المثال تخطي المستندات التي تم تحديدها كمسودة.

تشمل التكوينات المتقدمة لغة موجهات النظام، ووضع التصحيح، وتكوين ملف السجلات، ووضع الترجمة التفاضلية، وغيرها. يتحكم إعداد لغة موجهات النظام في لغة الموجهات المستخدمة داخليًا في الإضافة، وهي الإنجليزية افتراضيًا. عند تمكين وضع التصحيح، يتم تسجيل جميع طلبات واستجابات API لتسهيل استكشاف الأخطاء وإصلاحها. يسمح تكوين ملف السجلات للمستخدمين بكتابة سجلات التصحيح إلى ملف، مع دعم مسارات مخصصة، وحدود لحجم الملف، وحدود لعدد الملفات. وضع الترجمة التفاضلية هو ميزة تجريبية، وعند تمكينه، يترجم فقط المحتوى المتغير، مما يقلل من استدعاءات API غير الضرورية.

يُعد تكوين موجهات المستخدم ميزة مميزة للإضافة. يمكن للمستخدمين تخصيص سلسلة من الموجهات، والتي سيتم إرسالها إلى نموذج الذكاء الاصطناعي بعد موجهات النظام. من خلال هذه الطريقة، يمكن للمستخدمين توجيه نموذج الترجمة لاتباع أسلوب ترجمة محدد، أو مواصفات المصطلحات، أو متطلبات التنسيق. على سبيل المثال، يمكن للمستخدمين تحديد أنه عند تعيين حقل ‘draft’ في front matter لملف Markdown على ’true’، فلا داعي للترجمة، أو طلب استبدال ./readmes/ في المسار بـ ./.

{
  "projectTranslator.specifiedFolders": [
    {
      "sourceFolder": {
        "path": "${workspaceFolder}/content/en",
        "lang": "en-us"
      },
      "targetFolders": [
        {
          "path": "${workspaceFolder}/content/zh-cn",
          "lang": "zh-cn"
        },
        {
          "path": "${workspaceFolder}/content/ja-jp",
          "lang": "ja-jp"
        }
      ]
    }
  ],
  "projectTranslator.currentVendor": "deepseek",
  "projectTranslator.vendors": [
    {
      "name": "deepseek",
      "apiEndpoint": "https://api.deepseek.com/v1",
      "apiKeyEnvVarName": "DEEPSEEK_API_KEY",
      "model": "deepseek-chat",
      "rpm": 20,
      "maxTokensPerSegment": 3000,
      "timeout": 300,
      "temperature": 0.1
    }
  ],
  "projectTranslator.ignore": {
    "paths": ["**/node_modules/**", "**/.git/**"],
    "extensions": [".log", ".min.js"]
  },
  "projectTranslator.userPrompts": [
    "1. Should return no need translate if the markdown file has 'draft' set to 'true' in the front matter.",
    "2. Maintain technical terminology consistency across all translated files."
  ]
}

حالات تطبيقية واقعية

تم التحقق من إضافة Project Translator وتطبيقها في العديد من المشاريع الواقعية. تحتفظ منظمة Project Translation بعدة عينات من مشاريع الترجمة، والتي تغطي مجالات مختلفة مثل تصور الخوارزميات، ووثائق لغات البرمجة، وأدلة أدوات التطوير، وغيرها. من خلال هذه الحالات التطبيقية الواقعية، يمكن الحصول على فهم أكثر وضوحًا لسيناريوهات وتأثير الإضافة.

مشروع algorithm-visualizer هو منصة تفاعلية لتصور الخوارزميات، حيث يمتلك المشروع الأصلي أكثر من 47000 نجمة على GitHub. بعد استخدام إضافة Project Translator، تمت ترجمة وثائق هذا المشروع إلى عدة لغات، مما ساعد المطورين العالميين على فهم مبادئ الخوارزميات وتأثيرات التصور بشكل أفضل. مشروع gobyexample هو مجموعة من دروس أمثلة لغة Go، ويتميز بأكثر من 7500 نجمة، وبعد ترجمته باستخدام الإضافة، يمكن للطلاب قراءة أمثلة كود وشرح لغة Go بلغتهم الأم.

Google Style Guide هو دليل نمط مشروع مفتوح المص