واجهة برمجة تطبيقات جافاسكريبت

الترجمة بالذكاء الاصطناعي باستخدام جافا سكريبت و Lingo.dev

مقدمة

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

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

التثبيت

npm install lingo.dev

الإعداد الأساسي

تتطلب المكتبة مفتاح 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);
// النتيجة: "¡Hola Mundo!"

ترجمة الكائنات

ترجمة الكائنات المتداخلة مع الحفاظ على بنيتها. تعالج المكتبة بشكل متكرر جميع القيم النصية.

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);
// النتيجة: { 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);
// النتيجة: ['¡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
}