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

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

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

التثبيت

npm install lingo.dev

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

import { LingoDotDevEngine } from "lingo.dev/sdk";

const lingoDotDev = new LingoDotDevEngine({
  apiKey: "your-api-key-here",
});

ترجمة النص

ترجمة نص بسيط:

const result = await lingoDotDev.localizeText("Hello, world!", {
  sourceLocale: "en",
  targetLocale: "es",
});
// Returns: "¡Hola Mundo!"

الترجمة إلى لغات متعددة:

const results = await lingoDotDev.batchLocalizeText("Hello, world!", {
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de"],
});
// Returns: ['¡Hola Mundo!', 'Bonjour le monde!', 'Hallo Welt!']

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

ترجمة البيانات المهيكلة:

const content = {
  greeting: "Hello",
  farewell: "Goodbye",
  message: "Welcome to our platform",
};

const translated = await lingoDotDev.localizeObject(content, {
  sourceLocale: "en",
  targetLocale: "es",
});
// Returns: { greeting: "Hola", farewell: "Adiós", message: "Bienvenido a nuestra plataforma" }

تتعامل هذه الطريقة مع الكائنات المتداخلة وتحافظ على الهيكل الأصلي أثناء ترجمة قيم النص.

ترجمة المحادثات

ترجمة مصفوفات المحادثة:

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",
});
// Returns translated conversation with same structure

تحافظ طريقة الدردشة على البيانات الوصفية مثل أسماء المستخدمين مع ترجمة محتوى النص فقط.

ترجمة HTML

ترجمة HTML مع الحفاظ على العلامات:

const html = "<div>Hello <strong>world</strong></div>";

const translated = await lingoDotDev.localizeHtml(html, {
  sourceLocale: "en",
  targetLocale: "es",
});
// Returns: "<div>Hola <strong>mundo</strong></div>"

تحافظ ترجمة HTML على جميع العلامات والسمات والهيكل مع ترجمة محتوى النص فقط.

اكتشاف اللغة

اكتشاف لغة المصدر تلقائيًا:

const locale = await lingoDotDev.recognizeLocale("Bonjour le monde");
// Returns: 'fr'

الاستخدام مع الاكتشاف التلقائي:

const result = await lingoDotDev.localizeText("Bonjour le monde", {
  sourceLocale: null, // Auto-detect
  targetLocale: "en",
});
// Returns: "Hello world"

يضيف اكتشاف اللغة وقت معالجة إضافي، لذا استخدمه فقط عندما تكون لغة المصدر غير معروفة.

خيارات التكوين

تكوين سلوك SDK:

const lingoDotDev = new LingoDotDevEngine({
  apiKey: "your-api-key-here",
  batchSize: 100, // Max items per API request (default: 50, max: 250)
  idealBatchItemSize: 1000, // Target word count per batch (default: 500, max: 2500)
});

حجم الدفعة يتحكم في عدد العناصر المرسلة في كل طلب API. القيم الأعلى تقلل من استدعاءات API ولكنها تزيد من حجم الطلب.

حجم عنصر الدفعة المثالي يتحكم في عدد الكلمات المستهدف لكفاءة المعالجة المثلى.

معلمات الترجمة

التحكم في السرعة مقابل الجودة:

const result = await lingoDotDev.localizeText("Hello world", {
  sourceLocale: "en",
  targetLocale: "es",
  fast: true, // Prioritize speed over quality
});

تتيح معلمة fast ترجمات أسرع مع احتمال انخفاض الجودة للتطبيقات الحساسة للوقت.

تتبع التقدم

مراقبة مهام الترجمة الكبيرة:

await lingoDotDev.localizeObject(
  largeObject,
  { sourceLocale: "en", targetLocale: "es" },
  (progress) => {
    console.log(`Translation progress: ${progress}%`);
    // Update UI progress bar
  },
);

توفر استدعاءات التقدم تغذية راجعة في الوقت الفعلي لعمليات الترجمة الكبيرة، وهي مفيدة لتحديثات واجهة المستخدم.

معالجة الأخطاء

قم بتنفيذ معالجة الأخطاء بشكل صحيح:

try {
  const result = await lingoDotDev.localizeText("Hello", {
    sourceLocale: "en",
    targetLocale: "es",
  });
} catch (error) {
  console.error("Translation failed:", error.message);
  // Handle error appropriately
}

تتضمن مجموعة أدوات التطوير (SDK) إعادة المحاولات التلقائية لمشاكل الشبكة، ولكن تظل معالجة الأخطاء على مستوى التطبيق مهمة.