# الترجمة

> ترجم النص المفرغ إلى لغة أخرى أثناء التفريغ أو بعده، واقرأ النص وSRT وVTT بلغتين أو بالترجمة فقط.

Canonical: https://transcript1.com/ar/docs/translation
Language: ar
Last updated: 2026-10-31

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

الترجمة مجانية. تستخدم 0 دقيقة وتظهر في سجل الاستخدام كبند مجاني باسم "Translation". تُحتسب دقائق التفريغ كالمعتاد، ولا يتسبب فشل الترجمة أبدًا في فشل النص المفرغ ولا في استرداده.

## الترجمة أثناء التفريغ

أضف `translate_to` إلى الطلب الذي ينشئ التفريغ. وهو رمز ISO 639-1 من حرفين صغيرين، مثل `es` أو `en`. يعمل مع رابط فيديو في جسم JSON لطلب `POST /v1/transcriptions`، ومع حجز رفع على أجزاء، ومع رفع multipart من خطوة واحدة.

```bash
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "translate_to": "es"}'
```

عند رفع ملف، أرسل `translate_to` حقلًا في النموذج:

```bash
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
  -F file=@interview.m4a \
  -F translate_to=en
```

تقبل أداة MCP `transcribe` المعامل `translate_to` أيضًا. لغة هدف واحدة لكل طلب.

## ترجمة نص مفرغ موجود

اطلب ترجمة تفريغ مكتمل:

```bash
curl -X POST "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD/translations" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"language": "en"}'
```

يرد API بالرمز `202`:

```json
{
  "transcription_id": "tr_8fK2Lm0PqRsTuVwXyZaBcD",
  "language": "en",
  "status": "processing"
}
```

| الحالة | المعنى |
|---|---|
| `404` | لم يُعثر على التفريغ. |
| `409 transcript_not_ready` | لم يصل التفريغ بعد إلى الحالة `completed`. |
| `422` | اللغة ليست رمزًا صالحًا من حرفين. |

الاستدعاء idempotent. تُعاد الترجمة ذات الحالة `processing` أو `completed` كما هي، وتُعاد محاولة الترجمة `failed`. تقبل أداة MCP `translate_transcription` المعاملين `id` و`language`.

## قراءة الترجمة

يقبل `GET /v1/transcriptions/:id` وتنزيلات النص وSRT وVTT المعامل `translation`:

| `translation` | النتيجة |
|---|---|
| `both` (الافتراضي) | تحمل مقاطع JSON حقل `translation`. يضع النص السطر المترجم تحت الأصل. تتكون كتل SRT وVTT من سطرين: الأصل ثم الترجمة. |
| `only` | تحل الترجمة محل `text`. تبقى الأوقات والمتحدثون كما هم. |
| `none` | النص المفرغ الأصلي فقط. |

يتضمن الرد كائن `translation`، أو `null` إذا لم تُطلب ترجمة:

```json
{
  "translation": { "language": "es", "status": "completed" }
}
```

قيمة `status` هي `processing` أو `completed` أو `failed`. وتتضمن الترجمة الفاشلة رسالة `error` أيضًا. ينتظر `wait` الترجمة المطلوبة كذلك؛ وعند انتهاء المهلة تكون الحالة `processing`. لأداة MCP `get_transcription` معامل `translation` بالقيم نفسها.

## Webhooks

يبلغ حدثان بنتيجة الترجمة، إضافة إلى `transcription.completed` و`transcription.failed` اللذين لم يتغيرا:

| `type` | يُرسل عندما |
|---|---|
| `transcription.translation.completed` | تصل ترجمة مطلوبة إلى الحالة `completed`. |
| `transcription.translation.failed` | تصل ترجمة مطلوبة إلى الحالة `failed`. |

`data` هو كائن التفريغ مضافًا إليه `translation: { language, status, error }`. تجد التواقيع وقواعد التسليم في [Webhooks](https://transcript1.com/ar/docs/webhooks).
