JavaScript SDK
الترجمة بالذكاء الاصطناعي باستخدام JavaScript وLingo.dev
مقدمة
تضيف Lingo.dev JavaScript SDK ترجمة فورية مدعومة بالذكاء الاصطناعي إلى تطبيقات الويب وخوادم Node.js وأطر عمل الواجهة الأمامية. تتعامل SDK مع المحتوى الديناميكي مثل رسائل الدردشة وتعليقات المستخدمين والبيانات المباشرة التي تحتاج إلى ترجمة فورية.
على عكس ترجمة الملفات الثابتة باستخدام Lingo.dev CLI، تعالج SDK المحتوى عند الطلب، مما يجعلها مثالية لتطبيقات الدردشة وعملاء البريد الإلكتروني وأدوات وسائل التواصل الاجتماعي حيث يتغير المحتوى باستمرار.
التثبيت
npm install lingo.dev
الإعداد الأساسي
تتطلب SDK مفتاح API من Lingo.dev.
import { LingoDotDevEngine } from "lingo.dev/sdk";
const lingoDotDev = new LingoDotDevEngine({
apiKey: process.env.LINGODOTDEV_API_KEY,
});
ترجمة النص
ترجمة سلاسل نصية بسيطة إلى لغة مستهدفة.
import { LingoDotDevEngine } from "lingo.dev/sdk";
const lingoDotDev = new LingoDotDevEngine({
apiKey: process.env.LINGODOTDEV_API_KEY,
});
const result = await lingoDotDev.localizeText("Hello, world!", {
sourceLocale: "en",
targetLocale: "es",
});
console.log(result);
// Output: "¡Hola Mundo!"
ترجمة الكائنات
ترجمة الكائنات المتداخلة مع الحفاظ على البنية. تعالج SDK بشكل تكراري جميع قيم السلاسل النصية.
import { LingoDotDevEngine } from "lingo.dev/sdk";
const lingoDotDev = new LingoDotDevEngine({
apiKey: process.env.LINGODOTDEV_API_KEY,
});
const content = {
greeting: "Hello",
farewell: "Goodbye",
message: "Welcome to our platform",
};
const translated = await lingoDotDev.localizeObject(content, {
sourceLocale: "en",
targetLocale: "es",
});
console.log(translated);
// Output: { greeting: "Hola", farewell: "Adiós", message: "Bienvenido a nuestra plataforma" }
الترجمة الدفعية إلى لغات متعددة
ترجمة المحتوى إلى لغات مستهدفة متعددة في استدعاء واحد. تُرجع مصفوفة تحتوي على نتيجة واحدة لكل لغة مستهدفة.
import { LingoDotDevEngine } from "lingo.dev/sdk";
const lingoDotDev = new LingoDotDevEngine({
apiKey: process.env.LINGODOTDEV_API_KEY,
});
const results = await lingoDotDev.batchLocalizeText("Hello, world!", {
sourceLocale: "en",
targetLocales: ["es", "fr", "de"],
});
console.log(results);
// Output: ['¡Hola Mundo!', 'Bonjour le monde!', 'Hallo Welt!']
ترجمة الدردشة
ترجمة رسائل الدردشة مع الحفاظ على أسماء المتحدثين. يجب أن تحتوي كل رسالة على حقلي "name" و"text".
import { LingoDotDevEngine } from "lingo.dev/sdk";
const lingoDotDev = new LingoDotDevEngine({
apiKey: process.env.LINGODOTDEV_API_KEY,
});
const conversation = [
{ name: "Alice", text: "Hello!" },
{ name: "Bob", text: "How are you?" },
{ name: "Alice", text: "I'm doing well, thanks!" },
];
const translated = await lingoDotDev.localizeChat(conversation, {
sourceLocale: "en",
targetLocale: "es",
});
for (const message of translated) {
console.log(`${message.name}: ${message.text}`);
}
// Output:
// Alice: ¡Hola!
// Bob: ¿Cómo estás?
// Alice: ¡Me va bien, gracias!
ترجمة HTML
ترجمة HTML مع الحفاظ على الترميز. يحافظ على جميع العلامات والسمات والبنية مع ترجمة محتوى النص فقط.
import { LingoDotDevEngine } from "lingo.dev/sdk";
const lingoDotDev = new LingoDotDevEngine({
apiKey: process.env.LINGODOTDEV_API_KEY,
});
const html = "<div>Hello <strong>world</strong></div>";
const translated = await lingoDotDev.localizeHtml(html, {
sourceLocale: "en",
targetLocale: "es",
});
console.log(translated);
// Output: "<div>Hola <strong>mundo</strong></div>"
تتبع التقدم
راقب تقدم الترجمة باستخدام دالة رد الاتصال. مفيد لتحديث واجهة المستخدم أثناء عمليات الترجمة الكبيرة.
import { LingoDotDevEngine } from "lingo.dev/sdk";
const lingoDotDev = new LingoDotDevEngine({
apiKey: process.env.LINGODOTDEV_API_KEY,
});
const largeObject = {
page1: "Welcome to our application",
page2: "This is the second page",
page3: "Here is more content",
page4: "Final page of content",
};
await lingoDotDev.localizeObject(
largeObject,
{ sourceLocale: "en", targetLocale: "es" },
(progress) => {
console.log(`Translation progress: ${progress}%`);
},
);
// Output:
// Translation progress: 25%
// Translation progress: 50%
// Translation progress: 75%
// Translation progress: 100%
معاملات الترجمة
التحكم في السرعة مقابل الجودة للتطبيقات الحساسة للوقت.
import { LingoDotDevEngine } from "lingo.dev/sdk";
const lingoDotDev = new LingoDotDevEngine({
apiKey: process.env.LINGODOTDEV_API_KEY,
});
const result = await lingoDotDev.localizeText("Hello world", {
sourceLocale: "en",
targetLocale: "es",
fast: true, // Prioritize speed over quality
});
console.log(result);
// Output: "Hola mundo"
الإعدادات
التحكم في سلوك المعالجة الدفعية. يقوم SDK بتقسيم الحمولات الكبيرة بناءً على قيود عدد العناصر وعدد الكلمات.
import { LingoDotDevEngine } from "lingo.dev/sdk";
const lingoDotDev = new LingoDotDevEngine({
apiKey: process.env.LINGODOTDEV_API_KEY,
batchSize: 100, // Max items per API request (default: 50, max: 250)
idealBatchItemSize: 1000, // Target word count per batch (default: 500, max: 2500)
});
const result = await lingoDotDev.localizeText("Configuration test", {
sourceLocale: "en",
targetLocale: "es",
});
console.log(result);
// Output: "Prueba de configuración"
اكتشاف اللغة
اكتشف لغة سلسلة نصية. استخدم هذه الميزة فقط عندما تكون اللغة المصدر غير معروفة، حيث يضيف الاكتشاف وقت معالجة إضافي.
import { LingoDotDevEngine } from "lingo.dev/sdk";
const lingoDotDev = new LingoDotDevEngine({
apiKey: process.env.LINGODOTDEV_API_KEY,
});
const locale = await lingoDotDev.recognizeLocale("Bonjour le monde");
console.log(locale);
// Output: 'fr'
الاستخدام مع الاكتشاف التلقائي:
import { LingoDotDevEngine } from "lingo.dev/sdk";
const lingoDotDev = new LingoDotDevEngine({
apiKey: process.env.LINGODOTDEV_API_KEY,
});
const result = await lingoDotDev.localizeText("Bonjour le monde", {
sourceLocale: null, // Auto-detect
targetLocale: "en",
});
console.log(result);
// Output: "Hello world"
معالجة الأخطاء
يتضمن SDK إعادة محاولة تلقائية لمشاكل الشبكة. قم بتنفيذ معالجة الأخطاء على مستوى التطبيق للإخفاقات الأخرى.
import { LingoDotDevEngine } from "lingo.dev/sdk";
const lingoDotDev = new LingoDotDevEngine({
apiKey: process.env.LINGODOTDEV_API_KEY,
});
try {
const result = await lingoDotDev.localizeText("Hello", {
sourceLocale: "en",
targetLocale: "es",
});
console.log(result);
} catch (error) {
console.error("Translation failed:", error.message);
// Handle error appropriately
}