النص العادي
الترجمة الآلية لملفات النص العادي باستخدام واجهة سطر أوامر Lingo.dev
ما هو النص العادي؟
ملفات النص العادي (.txt) هي ملفات نصية بسيطة غير منسقة تحتوي فقط على أحرف قابلة للقراءة. يتم استخدامها بشكل شائع للتوثيق والملاحظات والمحتوى البسيط الذي لا يتطلب تنسيقًا منظمًا.
على سبيل المثال:
هذا هو السطر الأول من محتوى النص
هذا هو السطر الثاني بمحتوى مختلف
يحتوي هذا السطر على أحرف خاصة: !@#$%^&*()
شكرًا لاختيارك خدمتنا
ما هي واجهة سطر أوامر Lingo.dev؟
واجهة سطر أوامر Lingo.dev هي واجهة سطر أوامر مجانية ومفتوحة المصدر لترجمة التطبيقات والمحتوى باستخدام الذكاء الاصطناعي. تم تصميمها لتحل محل برامج إدارة الترجمة التقليدية مع التكامل مع خطوط الإنتاج الحالية.
لمعرفة المزيد، راجع نظرة عامة.
حول هذا الدليل
يشرح هذا الدليل كيفية ترجمة ملفات النص العادي باستخدام واجهة سطر أوامر Lingo.dev.
ستتعلم كيفية:
- إنشاء مشروع من الصفر
- تكوين خط إنتاج الترجمة
- إنشاء ترجمات باستخدام الذكاء الاصطناعي
المتطلبات الأساسية
لاستخدام واجهة سطر أوامر Lingo.dev، تأكد من تثبيت Node.js الإصدار 18 أو أحدث:
❯ node -v
v22.17.0
الخطوة 1. إعداد مشروع
في دليل مشروعك، قم بإنشاء ملف i18n.json:
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.10",
"locale": {
"source": "en",
"targets": ["es"]
},
"buckets": {}
}
يحدد هذا الملف سلوك خط إنتاج الترجمة، بما في ذلك اللغات التي سيتم الترجمة بينها وأين يوجد المحتوى القابل للترجمة في نظام الملفات.
لمعرفة المزيد حول الخصائص المتاحة، راجع i18n.json.
الخطوة 2. تكوين اللغة المصدر
اللغة المصدر هي اللغة والمنطقة الأصلية التي تمت كتابة المحتوى الخاص بك بها. لتكوين اللغة المصدر، قم بتعيين خاصية locale.source في ملف i18n.json:
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.10",
"locale": {
"source": "en",
"targets": ["es"]
},
"buckets": {}
}
يجب توفير اللغة المصدر كـ علامة لغة BCP 47.
للحصول على القائمة الكاملة لرموز اللغات التي تدعمها واجهة سطر أوامر Lingo.dev، راجع رموز اللغات المدعومة.
الخطوة 3. تكوين اللغات المستهدفة
تعتبر اللغات المستهدفة هي اللغات والمناطق التي ترغب في ترجمة المحتوى الخاص بك إليها. لتكوين اللغات المستهدفة، قم بتعيين خاصية locale.targets في ملف i18n.json:
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.10",
"locale": {
"source": "en",
"targets": ["es"]
},
"buckets": {}
}
الخطوة 4. إنشاء المحتوى المصدر
إذا لم تقم بذلك بالفعل، قم بإنشاء ملف نصي بسيط واحد أو أكثر يحتوي على المحتوى المراد ترجمته. يجب أن تكون هذه الملفات موجودة في مسار يتضمن اللغة المصدر في مكان ما في المسار (مثل اسم دليل مثل en/ أو كجزء من اسم الملف مثل messages.en.txt).
الخطوة 5. إنشاء حاوية
-
في ملف
i18n.json، أضف كائن"txt"إلى كائنbuckets:{ "$schema": "https://lingo.dev/schema/i18n.json", "version": "1.10", "locale": { "source": "en", "targets": ["es"] }, "buckets": { "txt": {} } } -
في كائن
"txt"، قم بتعريف مصفوفة تحتوي على نمطincludeواحد أو أكثر:{ "$schema": "https://lingo.dev/schema/i18n.json", "version": "1.10", "locale": { "source": "en", "targets": ["es"] }, "buckets": { "txt": { "include": ["./[locale]/example.txt"] } } }تحدد هذه الأنماط الملفات التي سيتم ترجمتها.
الأنماط نفسها:
- يجب أن تحتوي على
[locale]كعنصر نائب للغة المكونة - يمكن أن تشير إلى مسارات الملفات (مثل
"[locale]/readme.txt") - يمكن استخدام علامات النجمة كعناصر نائبة شاملة (مثل
"[locale]/*.txt")
أنماط glob المتكررة (مثل
**/*.txt) غير مدعومة. - يجب أن تحتوي على
الخطوة 6. تكوين نموذج لغوي كبير (LLM)
تستخدم واجهة سطر أوامر Lingo.dev نماذج لغوية كبيرة (LLMs) لترجمة المحتوى باستخدام الذكاء الاصطناعي. لاستخدام أحد هذه النماذج، تحتاج إلى مفتاح API من مزود مدعوم.
للبدء بأسرع وقت ممكن، نوصي باستخدام Lingo.dev Engine — منصتنا المستضافة التي توفر 10,000 رمز من الاستخدام المجاني الشهري:
-
قم بتشغيل الأمر التالي:
npx lingo.dev@latest loginسيؤدي هذا إلى فتح متصفح الويب الافتراضي الخاص بك ويطلب منك المصادقة.
-
اتبع التعليمات.
الخطوة 7. إنشاء الترجمات
في الدليل الذي يحتوي على ملف i18n.json، قم بتشغيل الأمر التالي:
npx lingo.dev@latest run
هذا الأمر:
- يقرأ ملف
i18n.json. - يجد الملفات التي تحتاج إلى ترجمة.
- يستخرج المحتوى القابل للترجمة من الملفات.
- يستخدم نموذج اللغة الكبير (LLM) المُكوّن لترجمة المحتوى المستخرج.
- يكتب المحتوى المترجم مرة أخرى إلى نظام الملفات.
عند إنشاء الترجمات لأول مرة، يتم إنشاء ملف i18n.lock. يحتفظ هذا الملف بسجل للمحتوى الذي تمت ترجمته، مما يمنع إعادة الترجمة غير الضرورية في عمليات التشغيل اللاحقة.
مثال
en/example.txt
This is the first line of text content
This is the second line with different content
This line contains special characters: !@#$%^&*()
This is line five after an empty line above
Thank you for choosing our service
es/example.txt
Esta es la primera línea de contenido de texto
Esta es la segunda línea con contenido diferente
Esta línea contiene caracteres especiales: !@#$%^&*()
Esta es la línea cinco después de una línea vacía arriba
Gracias por elegir nuestro servicio
i18n.json
{
"version": "1.10",
"locale": {
"source": "en",
"targets": ["es"]
},
"buckets": {
"txt": {
"include": ["./[locale]/example.txt"]
}
},
"$schema": "https://lingo.dev/schema/i18n.json"
}
i18n.lock
version: 1
checksums:
93e6c54f553af59fa33d7469c80a30e9:
"1": 5c0212aca9c84332df0190d13e929623
"2": d39d54116929959bf76f43655e7bebc9
"3": 960c83d6eeed679ee9fb1b2be2f9934b
"5": 78569dd2f0e7cd872659850ef2f9c19a
"6": 5c5a850ec695512b6182630c563eeed9