أدوات التطوير
يوفر @lingo.dev/compiler أدوات تطوير لتسريع سير عملك وتقليل تكاليف واجهة برمجة التطبيقات أثناء التطوير.
المترجم الزائف
يُنشئ المترجم الزائف ترجمات وهمية فورية دون استدعاءات لواجهة برمجة التطبيقات.
التفعيل
{
dev: {
usePseudotranslator: true,
}
}
ما يفعله
يحوّل النص بعلامات مرئية:
الأصلي:
Welcome to our app
المترجم زائفاً:
[!!! Ẃëļċöṁë ẗö öüř äþþ !!!]
الفوائد:
- ردود فعل فورية — لا استدعاءات لواجهة برمجة التطبيقات، لا انتظار
- تصور النص القابل للترجمة — شاهد بالضبط ما يتم ترجمته
- اختبار الأطوال المتفاوتة — الترجمات الزائفة أطول بنسبة ~30%، مما يكشف مشاكل التخطيط
- تكلفة صفرية — لا استهلاك لأرصدة واجهة برمجة التطبيقات
كيف يعمل
المترجم الزائف:
- يضيف علامات (
[!!!و!!!]) - يستبدل الأحرف بإصدارات منقوطة (a → ä، e → ë)
- يمدد طول النص بنسبة ~30%
- يحافظ على الاستيفاءات (
{name}يبقى{name}) - يحافظ على بنية HTML
مثال مع الاستيفاءات:
<p>Hello {name}, you have {count} items</p>
// Becomes: [!!! Ḧëļļö {name}, ÿöü ḧävë {count} ïẗëṁṡ !!!]
متى تستخدمه
أثناء التطوير:
- الإعداد والتكامل الأولي
- اختبار التخطيط مع أطوال نصوص متفاوتة
- تصحيح مشاكل الترجمة
- التكرار السريع على واجهة المستخدم
متى لا تستخدمه:
- مراجعة جودة الترجمة الفعلية
- اختبار التنسيق الخاص باللغة المحلية
- ضمان الجودة النهائي قبل النشر
التعطيل للترجمات الحقيقية
{
dev: {
usePseudotranslator: false,
}
}
أعد تشغيل خادم التطوير لإنشاء ترجمات حقيقية باستخدام موفر نموذج اللغة الكبيرة المُكوَّن لديك.
خادم الترجمة
يتعامل خادم الترجمة مع إنشاء الترجمة عند الطلب أثناء التطوير.
كيف يعمل
عند تشغيل npm run dev:
- يبدأ المترجم خادم HTTP محلي
- يعثر الخادم تلقائيًا على منفذ متاح (60000-60099)
- يطلب تطبيقك الترجمات من الخادم
- يولد الخادم الترجمات (وهمية أو حقيقية)
- يتم تخزين الترجمات مؤقتًا في
.lingo/metadata.json
الإعدادات
{
dev: {
translationServerStartPort: 60000, // Starting port
translationServerUrl: "http://localhost:60000", // Custom URL (advanced)
}
}
نطاق المنفذ: يحاول الخادم المنافذ من 60000 إلى 60099 بالتسلسل حتى يجد منفذًا متاحًا.
البدء اليدوي (متقدم)
يمكنك بدء خادم الترجمة يدويًا:
npx @lingo.dev/compiler translate-server \
--port 60000 \
--config ./lingo.config.json
هذا مفيد لـ:
- تشغيل خادم الترجمة بشكل منفصل عن عملية البناء
- تصحيح مشكلات الترجمة
- سير عمل CI/CD مخصص
دعم WebSocket
يدعم خادم الترجمة WebSocket للاتصال في الوقت الفعلي مع أداة التطوير.
عند تحديث الترجمات، يدفع الخادم التغييرات إلى العملاء المتصلين عبر WebSocket.
أداة التطوير
أداة التطوير هي طبقة تراكبية داخل المتصفح لتحرير الترجمات في الوقت الفعلي.
الميزات
- تحرير الترجمات في المتصفح — لا حاجة لتحرير الملفات
- عرض السياق — عرض النص المصدر وموقع المكون
- تحديثات فورية — تطبق التغييرات فورًا عبر WebSocket
- تبديل اللغات — اختبار لغات مختلفة بسرعة
التفعيل
{
dev: {
enableWidget: true, // Coming soon
}
}
الحالة: أداة التطوير قيد التطوير النشط وستكون متاحة في إصدار مستقبلي.
كيف ستعمل
- اضغط على اختصار لوحة المفاتيح (مثل
Cmd+Shift+L) - تظهر الطبقة التراكبية للأداة
- انقر على أي نص مترجم لتحريره
- غيّر الترجمات للغات محددة
- احفظ—تتزامن التغييرات عبر WebSocket
- تتحدث الترجمات فورًا في
.lingo/metadata.json
سير عمل التطوير
الإعداد الموصى به
1. الإعداد الأولي:
{
dev: {
usePseudotranslator: true, // Fast feedback
}
}
قم بتشغيل npm run dev لرؤية الترجمات الوهمية فوراً.
2. اختبار التخطيط:
تكشف الترجمات الوهمية عن مشاكل التخطيط:
- تجاوز النص
- تسميات مقطوعة
- عناصر غير محاذاة
- نقاط توقف استجابة غير صحيحة
قم بإصلاح مشاكل التخطيط قبل الاستثمار في الترجمات الحقيقية.
3. مراجعة الترجمة الحقيقية:
{
dev: {
usePseudotranslator: false,
}
}
قم بإنشاء ترجمات حقيقية لمراجعة الجودة. اختبر:
- دقة الترجمة
- النبرة والرسمية
- معالجة المصطلحات التقنية
- الحفاظ على أسماء العلامات التجارية
4. الضبط الدقيق:
استخدم data-lingo-override للتحكم الدقيق:
<h1 data-lingo-override={{ es: "Bienvenido", de: "Willkommen" }}>
Welcome
</h1>
5. بناء الإنتاج:
{
buildMode: "cache-only",
}
استخدم الترجمات المُنشأة مسبقاً لبناء سريع وحتمي.
تصحيح الأخطاء
فحص خادم الترجمة
يسجل خادم الترجمة في وحدة التحكم:
[lingo] Translation server started on port 60001
[lingo] Pseudotranslator: enabled
[lingo] Watching for changes...
فحص ملف البيانات الوصفية
افحص .lingo/metadata.json لرؤية الترجمات المخزنة مؤقتاً:
{
"translations": {
"abc123": {
"source": "Welcome to our app",
"locales": {
"es": "[!!! Ẃëļċöṁë ẗö öüř äþþ !!!]",
"de": "[!!! Ẃëļċöṁë ẗö öüř äþþ !!!]"
}
}
}
}
مع تعطيل المترجم الوهمي، سترى ترجمات حقيقية بدلاً من ذلك.
تعارضات المنافذ
إذا كانت المنافذ 60000-60099 قيد الاستخدام جميعها:
{
dev: {
translationServerStartPort: 61000, // Use different range
}
}
أو إيقاف العمليات التي تستخدم تلك المنافذ يدويًا:
# Find process using port 60000
lsof -i :60000
# Kill process
kill -9 <PID>
نصائح الأداء
المترجم الزائف سريع—استخدمه افتراضيًا في التطوير.
الترجمات الحقيقية أبطأ—استخدمها فقط عندما تحتاج إلى مراجعة الجودة:
- إنشاء الترجمة الأولية: ينطبق زمن استجابة واجهة برمجة التطبيقات
- عمليات البناء اللاحقة: الترجمات مخزنة مؤقتًا، سريعة
خادم الترجمة خفيف الوزن—استخدام ضئيل للذاكرة ووحدة المعالجة المركزية.
الأسئلة الشائعة
هل أحتاج إلى بدء خادم الترجمة يدويًا؟
لا. يبدأ تلقائيًا عند تشغيل npm run dev.
هل يمكنني استخدام المترجم الزائف في الإنتاج؟
لا. المترجم الزائف للتطوير فقط. عمليات بناء الإنتاج تستخدم دائمًا الترجمات الحقيقية من .lingo/metadata.json.
لماذا لا تتوفر أداة التطوير بعد؟ هي قيد التطوير النشط. تابع إصدارات GitHub للحصول على التحديثات.
هل يمكنني تخصيص الترجمات الزائفة؟ ليس حاليًا. يستخدم المترجم الزائف خوارزمية ثابتة محسّنة لتصور النص القابل للترجمة.
هل تعمل الترجمات الزائفة مع جميع مجموعات الأحرف؟ نعم. يتعامل المترجم الزائف مع Unicode بشكل صحيح، بما في ذلك الرموز التعبيرية والأحرف الصينية واليابانية والكورية واللغات من اليمين إلى اليسار.
الخطوات التالية
- بنية المشروع — فهم دليل
.lingo/ - أوضاع البناء — التحسين للتطوير مقابل الإنتاج
- أفضل الممارسات — سير عمل التطوير الموصى به