واجهة API لترجمة المستندات

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

البدء السريع

  1. سجّل الدخول وأنشئ مفتاح API. احفظ المفتاح في إعدادات الأسرار على خادمك. تتطلب الترجمات عبر API أرصدة مدفوعة مسبقًا؛ ولا ينطبق الاستخدام المجاني المتاح عبر المتصفح.
  2. استخرج نص المستند في تطبيقك، وامنح كل مقطع معرّفًا ثابتًا، ثم اطلب عرض سعر. احتفظ بالمستند الأصلي محليًا لإعادة إنشائه.
  3. ابدأ باستخدام معرّف عرض السعر ومفتاح ثابت لمنع تكرار الطلب والحمولة نفسها. استطلع الحالة حتى تصبح جاهزة، واسترجع المقاطع المترجمة، ثم أعد إنشاء مستندك.

تقبل واجهة الترجمة API نصًا مستخرجًا وتُرجع مقاطع مترجمة. أنشئ الملف النهائي في تطبيقك، ثم احفظ الملف المترجم اختياريًا لتنزيله لاحقًا. لا ترفع الملف الأصلي.

إنشاء عرض سعر

POST /api/v1/quotes
Authorization: Bearer doctr_...
Content-Type: application/json

{
  "version": "document-ir/1",
  "format": "txt",
  "fingerprint": "<64-character SHA-256 of the source file>",
  "sourceLanguage": "auto",
  "targetLanguage": "Spanish",
  "segments": [
    {
      "id": "s0",
      "text": "Hello, world."
    }
  ]
}

يتضمن الرد معرّف عرض السعر وعدد كلمات المصدر والتكلفة الدقيقة بالأرصدة ووقت انتهاء الصلاحية. يسري عرض السعر لمدة عشر دقائق. لا يحجز طلب عرض السعر أرصدةً ولا يحفظ نص المستند.

ابدأ الترجمة

POST /api/v1/translations
Authorization: Bearer doctr_...
Content-Type: application/json

{
  "quoteId": "<quote id>",
  "idempotencyKey": "<stable key, 16–80 letters, digits, underscores or hyphens>",
  "payload": {
    "version": "document-ir/1",
    "format": "txt",
    "fingerprint": "<the same source fingerprint>",
    "sourceLanguage": "auto",
    "targetLanguage": "Spanish",
    "segments": [
      {
        "id": "s0",
        "text": "Hello, world."
      }
    ]
  }
}

أرسل الحمولة الأصلية المقتبسة مرة أخرى عند البدء. يتحقق الخادم من ملكيتها وبصمتها التجزئية المعيارية قبل تخزين النص أو حجز الأرصدة. لا يؤثر ترتيب مفاتيح كائن JSON؛ أما تغيير النص أو ترتيب المقاطع أو التنسيق أو البصمة أو اللغات فيتطلب عرض سعر جديدًا.

أنشئ سير عمل لترجمة المستندات

استخرج النص وأعِد إنشاء الملفات القابلة للتنزيل في تطبيقك. أرسل البيانات المعروضة أعلاه، ثم استخدم معرّفات المقاطع المُعادة لإدراج كل ترجمة في مستندها.

// Run this on your server. Keep your API key private.
const response = await fetch(
  'https://document-translator.com/api/v1/quotes',
  {
    method: 'POST',
    headers: {
      Authorization: 'Bearer ' + apiKey,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(payload)
  }
);
if (!response.ok) throw new Error('Quote request failed');
const quote = await response.json();
// Show the price before starting with the same payload.

يحافظ DOCX على البُنى الأصلية المدعومة. يعيد تصدير PDF تدفّق النص ولا يعيد إنتاج تخطيطات الصفحات بدقة. لا ندعم ملفات PDF الممسوحة ضوئيًا أو المحمية بكلمة مرور. راجع الترجمات والتنسيق المهمين قبل الاستخدام.

أرصدة الترجمة ومفاتيح API

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

أنشئ ما يصل إلى خمسة مفاتيح API نشطة لكل حساب. لا تظهر المفاتيح إلا مرة واحدة، وتُخزّن بصيغة تجزئة، ويمكن إلغاؤها من الحساب. يمكن للمفتاح النشط الوصول إلى الترجمات المدفوعة لذلك الحساب، بما فيها المهام التي أُنشئت بمفتاح آخر في الحساب نفسه. لا تتيح المفاتيح تسجيل الدخول أو إجراء المدفوعات.

إعادة المحاولة والطلبات المنقطعة

أعِد استخدام معرّف عرض السعر والبيانات ومفتاح منع التكرار نفسها بعد بدء غير مؤكد. تُعيد المحاولات المتطابقة المهمة الحالية دون رسوم إضافية. وتُعيد البيانات المعدّلة أو إعادة استخدام المفتاح لعرض سعر آخر الخطأ 409. ويُحتفظ ببيانات المهمة ومنع التكرار لمدة سبعة أيام بعد إنهائها.

يمكن إعادة محاولة المهمة الفاشلة القابلة للاستئناف ما دام نصها المصدر متاحًا. تحتفظ إعادة المحاولة بمعرّف المهمة وتعيد استخدام الأجزاء المكتملة. يُسمح بثلاث محاولات معالجة كحد أقصى لكل مهمة. ويمكن إعادة محاولة تنزيل النتيجة عبر نقطة النهاية الخاصة بها من دون بدء ترجمة أخرى.

الاستعلام والتنزيلات

GET /api/v1/translations/JOB_ID
GET /api/v1/translations?ids=JOB_ID_1,JOB_ID_2
GET /api/v1/translations/JOB_ID/result
PUT /api/v1/translations/JOB_ID/files/txt
GET /api/v1/translations/JOB_ID/files/txt
POST /api/v1/translations/JOB_ID/retry
DELETE /api/v1/translations/JOB_ID

تقبل حالة الدفعة عشرة معرّفات كحد أقصى، وتُرجع { jobs: [...] } التي تحتوي فقط على المهام المصرّح بها وغير المحذوفة. تحقّق من الحالة كل خمس ثوانٍ تقريبًا أثناء المعالجة، وكل خمس عشرة ثانية أثناء الانتظار في قائمة الانتظار. بدّل الدفعات بالتناوب عند استعادة أكثر من عشر مهام. أوقف الاستعلام في علامات التبويب المخفية، وتوقف عند الحالات النهائية أو أخطاء التفويض الدائمة.

عندما تصبح الحالة جاهزة، استرجع النتيجة باستخدام تفويض الحساب نفسه. تتضمن النتيجة تعيين المقاطع المترجمة لإعادة إنشاء الملف محليًا. تظل النتائج متاحة لمدة 24 ساعة بعد اكتمالها؛ وتنتهي صلاحية المدخلات غير الناجحة بعد ساعة من إنشائها. تُرجع النتائج منتهية الصلاحية الرمز 410. وتُرجع المهام المحذوفة أو التي يتعذر الوصول إليها الرمز 404.

احفظ ملفًا مكتملًا باستخدام PUT، مع محتواه الثنائي وContent-Length وContent-Type المطابق. الامتدادات المدعومة هي docx وpdf وtxt وmd، ويمكن حفظ ملف واحد لكل تنسيق، بحد أقصى لحجم الملف الناتج يبلغ 50 MB. يؤدي تكرار عملية حفظ ناجحة إلى الإبقاء على الملف الحالي. ينزّل GET الملف المحفوظ؛ وتعرض savedFormats في حالة المهمة التنسيقات المتاحة. يخضع الحفظ والتنزيل لفحوصات ملكية المهمة نفسها، ولا يستهلكان أرصدة إضافية ولا يمدّدان مهلة 24 ساعة.

يلغي DELETE العمل غير المكتمل أو يزيل النصوص والملفات المحفوظة المتاحة. لا يؤدي حذف نتيجة مكتملة إلى استرداد الرصيد أو تمديد فترة تنزيلها. لا تتوفر إشعارات إكمال عبر webhooks في هذا الإصدار.

رصيد الحساب وسجله

GET /api/v1/translations?before=NEXT_CURSOR&limit=5
GET /api/v1/translations?active=1&before=NEXT_CURSOR
GET /api/account/balance

يقتصر سجل العمليات على المالك الحالي ويستخدم مؤشر ترقيم الصفحات المُعاد. تستخدم نقطة نهاية الرصيد جلسة الحساب في المتصفح، وتُعيد الحد الأدنى من معلومات تسجيل الدخول والرصيد. أثناء انتظار Checkout، استعلم عنها كل خمس ثوانٍ لعشر محاولات كحد أقصى، وأوقف الاستعلام عند إخفاء الصفحة، وتوقف عند وصول الرصيد أو تسجيل الخروج من الحساب.

الحدود والأخطاء

تتضمن الأخطاء رسالة ورمزًا للخطأ. يشير 400 إلى إدخال غير صالح، و401 إلى تفويض غير صالح، و402 إلى عدم كفاية الأرصدة، و404 إلى مهمة غير متاحة، و409 إلى تعارض في عرض السعر أو الحالة، و410 إلى انتهاء الصلاحية، و429 إلى تجاوز حد المعدل أو السعة، و503 إلى عدم توفر الخدمة.

تبقى المستندات الأصلية في جهازك. يعالج مزوّد الترجمة النص المستخرج، وتُخزّن الملفات المترجمة المحفوظة بشكل خاص لتنزيلها. تُنظّف وحدة التخزين المؤقتة وفق جدول زمني؛ وتسري أيضًا سياسات الاحتفاظ لدى المزوّد. تفاصيل الخصوصية