إضافة Project Translator لـ VSCode لتحقيق التوطين متعدد اللغات للمشروع
Categories:
تقدم إضافة Project Translator لـ VSCode حلاً فعالاً للتوطين متعدد اللغات للمشروع للمطورين. تستخدم هذه الإضافة تقنية الذكاء الاصطناعي لتحقيق الترجمة الآلية من ملف واحد إلى مجلد المشروع بأكمله، مع الحفاظ على سلامة هيكل الكود والتنسيق، مما يقلل بشكل كبير من工作量 توطين الوثائق. بالنسبة للمشاريع مفتوحة المصدر أو البرامج التجارية التي تحتاج إلى استهداف مستخدمين عالميين، يمكن لـ Project Translator تعزيز كفاءة الترجمة واتساقها بشكل كبير. مقارنة بطريقة الترجمة اليدوية التقليدية، يمكن لأدوات الأتمتة هذه معالجة محتوى الوثائق على نطاق واسع، وهي مناسبة بشكل خاص لوثائق المشاريع التي يتم تحديثها باستمرار.
الميزات الوظيفية الأساسية
تتميز إضافة Project Translator بمجموعة من الميزات الوظيفية القوية، والتي تشكل معاً حلاً متكاملاً للترجمة متعددة اللغات للمشروع. تدعم الإضافة وضعين للترجمة: على مستوى المجلد وعلى مستوى الملف، ويمكن اختيارهما بشكل مرن وفقاً لاحتياجات المشروع. في وضع ترجمة المجلد، يمكن للإضافة معالجة المجلدات الفرعية بشكل متكرر، واكتشاف المحتوى القابل للترجمة تلقائياً، والحفاظ على هيكل المجلدات والعلاقات الهرمية الأصلية. تجعل آلية المعالجة الدفعية هذه عمل ترجمة المشاريع الكبيرة ممكناً وفعالاً. يمكن الحصول على الإضافة وتثبيتها مجاناً من VS Code Extensions Marketplace و Open VSX Registry.
الترجمة الذكية هي إحدى المزايا الأساسية للإضافة. أثناء عملية الترجمة، تحافظ الإضافة تلقائياً على سلامة هيكل الكود، وتترجم فقط تعليقات الكود ومحتوى الوثائق، مع الحفاظ على منطق الكود دون تغيير. بالنسبة لتنسيقات هياكل البيانات مثل JSON وXML، يمكن للإضافة أيضاً الحفاظ على سلامة هيكلها الأصلي. يضمن هذا التصميم أن ملفات الكود المترجمة لا تزال قابلة للترجمة والتشغيل بشكل طبيعي، ويتجنب مشاكل تلف الكود الناتجة عن الترجمة. توفر الإضافة أيضاً جودة ترجمة وثائق تقنية على مستوى احترافي، قادرة على فهم المصطلحات التقنية والعلاقات السياقية بدقة.
مرونة التكوين هي سمة أخرى كبيرة لـ Project Translator. يمكن للمستخدمين تكوين مجلد المصدر وعدة مجلدات هدف، ودعم فترات ترجمة الملفات المخصصة، وتعيين أنواع الملفات المحددة التي يجب تجاهلها، واختيار خيارات نماذج الذكاء الاصطناعي المتعددة. تجعل هذه المرونة الإضافة قادرة على التكيف مع هياكل ومتطلبات ترجمة المشاريع المختلفة. تدعم الإضافة نماذج ذكاء اصطناعي رئيسية متعددة، بما في ذلك OpenAI وDeepSeek وGrok وغيرها، حيث يمكن للمستخدمين اختيار النموذج المناسب بناءً على ميزانيتهم ومتطلبات جودة الترجمة. بالنسبة للمشاريع التي تستخدم Hugo أو مولدات المواقع الثابتة الأخرى، فإن طريقة التكوين القائمة على المجلدات هذه مناسبة بشكل خاص.
يركز تصميم واجهة المستخدم للإضافة على تجربة التشغيل. أثناء عملية الترجمة، يتم عرض التقدم بشكل مباشر، ويمكن للمستخدمين إيقاف أو استئناف أو إيقاف مهمة الترجمة في أي وقت. تحافظ الإضافة تلقائياً على هيكل مجلد الهدف، وتدعم الترجمة التزايدية لتجنب العمل المتكرر. عندما تتطلب مهمة الترجمة وقتاً أطول، تصبح هذه القابلية للتحكم مهمة بشكل خاص. علاوة على ذلك، تقدم الإضافة وظيفة ترجمة الفروق التجريبية، التي يمكنها ترجمة المحتوى المتغير فقط، مما يقلل من استخدام 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 أو عن طريق تحرير ملف التكوين مباشرة. تتضمن العناصر الأساسية للتكوين مسارات المصدر والهدف للترجمة، ومعلمات نموذج الذكاء الاصطناعي، وقواعد التصفية وغيرها.
تنقسم مشاريع التكوين بشكل أساسي إلى عدة فئات. يحدد تكوين المجلدات والملفات مسارات الإدخال والإخراج للترجمة، حيث يمكن للمستخدمين تحديد عدة مجلدات مصدر ومجلدات الهدف المقابلة لها. يجب تحديد رمز اللغة لكل مجلد مصدر ومجلد هدف، وتدعم الإضافة 28 لغة، بما في ذلك اللغات الرئيسية مثل الصينية المبسطة، والصينية التقليدية، واليابانية، والكورية، والإنجليزية، والفرنسية، والألمانية، والإسبانية، والبرتغالية، والروسية. يسمح تكوين الهدف متعدد اللغات هذا بتوليد إصدارات متعددة اللغات في مهمة ترجمة واحدة، مما يعزز كفاءة الترجمة بشكل كبير.
يسمح تكوين نموذج الذكاء الاصطناعي للمستخدمين باختيار موفري خدمات ونماذج ترجمة مختلفين. تستخدم الإضافة بشكل افتراضي نموذج DeepSeek، كما تدعم خدمات أخرى مثل OpenAI وGrok. يمكن للمستخدمين تكوين نقطة نهاية API، ومفتاح API، واسم النموذج، وعدد الطلبات في الدقيقة، والحد الأقصى لعدد الرموز لكل مقطع، ووقت المهلة، ومعلمة درجة الحرارة وغيرها. لتعزيز الأمان، تدعم الإضافة إدارة مفاتيح API من خلال متغيرات البيئة، لتجنب كتابة المعلومات الحساسة مباشرة في ملف التكوين.
يمنح تكوين التصفية وقواعد التخطي المستخدمين القدرة على التحكم بدقة في الملفات التي تحتاج إلى ترجمة وتلك التي يجب تجاهلها. يسمح عنصر التكوين ignore للمستخدمين بتحديد المسارات وامتدادات الملفات التي يجب تجاهلها تماماً، ويتم تجاهل دليل node_modules وملفات .log افتراضياً. يُستخدم عنصر التكوين copyOnly لتحديد أنواع الملفات التي تحتاج إلى النسخ دون ترجمة. يسمح عنصر التكوين skipFrontMatterMarkers للمستخدمين بتخطي الترجمة بناءً على بيانات التعريف front matter لملفات Markdown، على سبيل المثال تخطي المستندات التي تم وضع علامة草稿 عليها.
يتضمن التكوين المتقدم لغة المطالبات النظامية، ووضع التصحيح، وتكوين ملف السجلات، ووضع ترجمة الفروق وغيرها. تتحكم لغة المطالبات النظامية في لغة المطالبات المستخدمة داخلياً في الإضافة، وتكون الإنجليزية افتراضياً. عند تمكين وضع التصحيح، يتم تسجيل جميع طلبات واستجابات API، مما يسهل استكشاف الأخطاء وإصلاحها. يسمح تكوين ملف السجلات للمستخدمين بكتابة سجلات التصحيح إلى ملف، مع دعم مسارات مخصصة، وحدود لحجم الملف، وحدود لعدد الملفات. وضع ترجمة الفروق هو ميزة تجريبية، وعند تمكينه، سيتم ترجمة المحتوى المتغير فقط، مما يقلل من استدعاءات API غير الضرورية.
تكوين المطالبات المخصصة للمستخدم هو ميزة مميزة للإضافة. يمكن للمستخدمين تخصيص سلسلة من المطالبات، والتي سيتم إرسالها إلى نموذج الذكاء الاصطناعي بعد المطالبات النظامية. من خلال هذه الطريقة، يمكن للمستخدمين توجيه نموذج الترجمة لاتباع أسلوب ترجمة معين، أو مواصفات المصطلحات، أو متطلبات التنسيق. على سبيل المثال، يمكن للمستخدمين تحديد أنه لا يجب ترجمة حقل front matter draft في ملفات 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 هو دليل نمط المشروع مفتوح المصدر المنبعث من Google، ولديه أكثر من 38000 نجمة، ويغطي معايير الترميز للعديد من لغات البرمجة. من خلال إضافة Project Translator، تمت ترجمة هذه الأدلة النمطية إلى عدة لغات، مما يتيح للمطورين العالميين تعلم أفضل ممارسات الترميز بلغة مألوفة. مشروع reference-en-us هو مجموعة من أوراق الغش للرجوع السريع للمطورين، ولديه أكثر من 7800 نجمة، ويوفر معلومات مرجع سريع لأدوات ولغات متعددة مثل awk وbash وCSS وGolang وPython وVim.
تعرض هذه الحالات العملية ملاءمة إضافة Project Translator لأنواع مختلفة من المشاريع. سواء كانت وثائق تقنية، أو دروس، أو أدلة مرجعية، يمكن للإضافة تقديم نتائج ترجمة عالية الجودة. لا تستطيع الإضافة معالجة المحتوى النصي النقي فحسب، بل يمكنها أيضاً التعامل بشكل صحيح مع ملفات Markdown التي تحتوي على كتل كود وجداول وروابط وتنسيقات معقدة. بالنسبة للمشاريع التي تحتوي على عدد كبير من المصطلحات التقنية، يمكن لقدرة الترجمة الذكية للإضافة الحفاظ على اتساق ودقة المصطلحات. يتوافق فلسفة تصميم الإضافة بشكل كبير مع مبادئ الانفتاح لـ بيئة VS Code، وتقدم للمطورين وظائف مخصصة من خلال آلية التوسعة.
الخلاصة
تقدم إضافة Project Translator لـ VSCode حلاً فعالاً وموثوقاً للتوطين متعدد اللغات للمشروع. تجمع هذه الإضافة بين تقنيات الذكاء الاصطناعي المتقدمة والتصميم الهندسي العملي، لتحقيق سير عمل ترجمة آلي مع الحفاظ على سلامة هيكل الكود. تدعم الإضافة الترجمة على مستوى المجلدات والملفات، وتوفر خيارات تكوين مرنة، وتمتلك واجهة مستخدم صديقة، مما يجعلها الأداة المثالية للمشاريع الموجهة للمستخدمين العالميين.
تكمن الميزة الأساسية للإضافة في قدرتها على الترجمة الذكية، حيث يمكنها تحديد محتوى الكود والوثائق بدقة، وترجمة الأجزاء التي تحتاج إلى ترجمة فقط، وتجنب إتلاف قابلية الكود للتنفيذ. إدخال وظيفة ترجمة الفروق يعزز كفاءة الترجمة بشكل أكبر، وهو ذو قيمة خاصة للتحديثات المستمرة للمشاريع الكبيرة. تم تصميم نظام تكوين الإضافة بشكل معقول، حيث يوفر خيارات تخصيص غنية مع الحفاظ على بساطة التكوين، مما يمكن المستخدمين بمستويات تقنية مختلفة من البدء بسرعة.
تم التحقق من إضافة Project Translator في عدة مشاريع مفتوحة المصدر معروفة، بما في ذلك algorithm-visualizer وgobyexample وGoogle Style Guide وغيرها. تثبت هذه الحالات الناجحة القيمة العملية والموثوقية للإضافة. بالنسبة للمشاريع التي تحتاج إلى دعم متعدد اللغات، وخاصة المشاريع مفتوحة المصدر الغنية بالوثائق، يمكن لإضافة Project Translator تقليل工作量 التوطين بشكل كبير، وتعزيز جودة واتساق الترجمة.
الطبيعة المفتوحة المصدر للإضافة تمنحها إمكانية جيدة للتوسعة ودعم المجتمع. يمكن للمستخدمين تخصيصها وتوسيعها وفقاً لاحتياجاتهم، ويمكن للمساهمين في المجتمع المشاركة في تحسين وإكمال الإضافة. مع تقدم تقنيات الذكاء الاصطناعي واستمرار نمو احتياجات متعددة اللغات، من المتوقع أن تلعب إضافة Project Translator دوراً أكبر في مجال توطين المشاريع.