وثائق تطبيق برمجة التطبيقات
دمج الترجمة القوية في تطبيقاتك مع REST API البسيطة.
البدء
يوفر TranslateAPI واجهة REST بسيطة لترجمة النصوص بين أكثر من 180 لغة وجميع نقاط نهاية API تعيد استجابات JSON.
1- الحصول على مفتاحك لبرنامج التطبيقات البرمجية
إنشاء حساب مجاني و توليد مفتاح API الخاص بك من لوحة التحكم:
- التسجيل في translateapi.ai/signup
- اذهب إلى لوحة متابعة → مفاتيح API
- انقر على "إنشاء مفتاح API" ونسخ مفتاحك
مفاتيح API تبدأ ب ta_ يليها 56 حرفاً سداسي الشكل.
https://api.translateapi.ai/api/v1/2 - تقديم طلبك الأول
استبدل YOUR_API_KEY بالمفتاح من لوحة التحكم الخاصة بك:
curl -X POST https://api.translateapi.ai/api/v1/translate/ \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"text": "Hello, world!",
"target_language": "es"
}'
import requests
response = requests.post(
"https://api.translateapi.ai/api/v1/translate/",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"text": "Hello, world!",
"target_language": "es"
}
)
result = response.json()
print(result["translated_text"]) # "Hola, mundo!"
const response = await fetch("https://api.translateapi.ai/api/v1/translate/", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
text: "Hello, world!",
target_language: "es"
})
});
const result = await response.json();
console.log(result.translated_text); // "Hola, mundo!"
$ch = curl_init("https://api.translateapi.ai/api/v1/translate/");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOUR_API_KEY",
"Content-Type: application/json"
],
CURLOPT_POSTFIELDS => json_encode([
"text" => "Hello, world!",
"target_language" => "es"
])
]);
$result = json_decode(curl_exec($ch), true);
echo $result["translated_text"]; // "Hola, mundo!"
payload := strings.NewReader(`{
"text": "Hello, world!",
"target_language": "es"
}`)
req, _ := http.NewRequest("POST", "https://api.translateapi.ai/api/v1/translate/", payload)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result["translated_text"]) // "Hola, mundo!"
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");
var content = new StringContent(
JsonSerializer.Serialize(new {
text = "Hello, world!",
target_language = "es"
}),
Encoding.UTF8,
"application/json"
);
var response = await client.PostAsync("https://api.translateapi.ai/api/v1/translate/", content);
var result = JsonSerializer.Deserialize<JsonElement>(
await response.Content.ReadAsStringAsync()
);
Console.WriteLine(result.GetProperty("translated_text")); // "Hola, mundo!"
الاستجابة
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
التوثيق
توثيق طلباتك باستخدام مفتاح API. يمكنك إنشاء مفاتيح API من لوحة متابعة.
التحقق من صحة العنوان (موصى به)
Authorization: Bearer ta_your_api_key_here
رأس ApiKey
Authorization: ApiKey ta_your_api_key_here
بارامترات الاستفسار
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
ترجمة النص
ترجمة النص إلى لغة واحدة مستهدفة.
POST https://api.translateapi.ai/api/v1/translate/
الهيئة الطالبة
| البارامترات | النوع | المطلوبة | ألف - الوصف |
|---|---|---|---|
text |
string | نعم | النص المراد ترجمته (000 50 حرف كحد أقصى) |
target_language |
string | نعم* | Target language code (e.g., "es", "fr", "de") |
source_language |
string | لا | Source language code. Default: "auto" (auto-detect) |
engine |
string | لا | محرك الترجمة: "auto" (افتراضي)، "huggingface" أو "madlad". انظر نماذج الترجمة. نماذج الترجمة. |
* الاستخدام target_language (سلسلة) للغة واحدة أو target_languages (مصفوفة) بالنسبة للمتعددات. انظر الترجمة المتعددة الأهداف.
الاستجابة
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
source_language أو حدد على "auto" لغة المصدر. وترد اللغة المكتشفة في القائمة المنسدلة. source_language حقل الاستجابة.
الترجمة المتعددة الأهداف
ترجمة النص إلى لغات متعددة في طلب واحد. يستخدم نفس نقطة النهاية كترجمة واحدة.
POST https://api.translateapi.ai/api/v1/translate/
الهيئة الطالبة
{
"text": "Hello, world!",
"target_languages": ["es", "fr", "de", "ja"],
"source_language": "en"
}
الاستخدام target_languages )صفيفة( بدﻻ من target_language (سلسلة) لأهداف متعددة.
الاستجابة
{
"source_language": "en",
"translations": {
"es": "Hola, mundo!",
"fr": "Bonjour, monde!",
"de": "Hallo, Welt!",
"ja": "こんにちは、世界!"
},
"character_count": 52,
"translation_time": 2.31
}
الترجمة التحريرية بالجملة
ترجمة النصوص المتعددة في وقت واحد مع المعالجة غير المتزامنة. تقديم دفعة واستطلاع للنتائج.
POST https://api.translateapi.ai/api/v1/translate/batch/
الخطوة 1: تقديم الدفعة
curl -X POST https://api.translateapi.ai/api/v1/translate/batch/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"texts": ["Hello", "Goodbye", "Thank you"],
"target_language": "es",
"source_language": "en"
}'
الاستجابة (HTTP 202 مقبول)
{
"job_id": "67535b2b-c9e3-4f82-9499-e237edbc1dd8",
"status": "pending",
"total_texts": 3,
"queue_position": 1,
"source_language": "en",
"target_languages": ["es"],
"character_count": 22,
"credits_remaining": -1,
"poll_url": "https://api.translateapi.ai/api/v1/jobs/67535b2b-c9e3-4f82-9499-e237edbc1dd8/"
}
الخطوة 2: استطلاع النتائج
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
مثال على الاستفتاء (بيتون)
import time, requests
job_id = response.json()["job_id"]
total = response.json()["total_texts"]
headers = {"Authorization": "Bearer YOUR_API_KEY"}
print(f"Batch submitted: {total} texts (job {job_id})")
while True:
result = requests.get(f"https://api.translateapi.ai/api/v1/jobs/{job_id}/", headers=headers).json()
status = result["status"]
processed = result.get("processed_texts", 0)
progress = result.get("progress_percentage", 0)
if status == "completed":
print(f"Done: {processed}/{total} in {result.get('processing_time', 0):.1f}s")
translations = result["result_data"]["translations"]
break
elif status == "failed":
raise Exception(result.get("error_message", "Translation failed"))
elif status == "pending":
print(f"Queued (position {result.get('queue_position', '?')})")
else:
print(f"[{status}] {processed}/{total} ({progress:.0f}%)")
time.sleep(3)
الرد (اكتمل)
{
"job_id": "67535b2b-...",
"status": "completed",
"processed_texts": 3,
"total_texts": 3,
"progress_percentage": 100.0,
"processing_time": 10.65,
"result_data": {
"translations": ["Hola", "Adiós", "Gracias"],
"source_language": "en",
"target_language": "es",
"character_count": 22,
"processing_time": 10.65
}
}
تتبع التقدم المحرز في الوقت الحقيقي
| الميدان | ألف - الوصف |
|---|---|
status |
pending (في الطابور، ينتظر العامل GPU)، processing (تترجم بنشاط) completed)١( الوثائق الرسمية للمجلس اﻻقتصادي واﻻجتماعي، ١٩٩٤، الملحق رقم ٢ )A/52/22(. failed |
processed_texts |
عدد الترجمات الفردية المنجزة حتى الآن، وتحديثات في الوقت الحقيقي مع ترجمة كل نص. |
progress_percentage |
النسبة المئوية للإنجاز (0-100) محسوبة من النصوص المجهزة/مجموع النصوص. |
queue_position |
موقعك في الطابور عندما تكون الحالة "معلقة" (1 = التالية). صفر عند المعالجة أو الانتهاء. استخدم هذا لتقدير وقت الانتظار وعرض حالة الطابور لمستخدميك. |
processing_time |
مدة التجهيز الإجمالية بالثواني (متوفرة عند الانتهاء). |
المجموعة المتعددة اللغات
ترجمة نصوص متعددة إلى لغات متعددة في وقت واحد:
{
"texts": ["Hello", "Goodbye"],
"target_languages": ["es", "fr"],
"source_language": "en"
}
بيانات النتائج المنجزة
{
"translations": [
{"es": "Hola", "fr": "Bonjour"},
{"es": "Adiós", "fr": "Au revoir"}
],
"source_language": "en",
"target_languages": ["es", "fr"],
"character_count": 24,
"processing_time": 2.45
}
بارامترات الطلب
| البارامترات | النوع | المطلوبة | ألف - الوصف |
|---|---|---|---|
texts |
array | نعم | صفيفة السلاسل المراد ترجمتها |
target_language |
string | نعم* | رمز اللغة المستهدفة للغة وحيدة |
target_languages |
array | نعم* | صفيفة من رموز اللغات المستهدفة بلغات متعددة |
source_language |
string | لا | Source language code. Default: "auto" |
* يقدم إما target_language أو target_languagesوليس كلاهما.
أفضل الممارسات فيما يتعلق بأعباء العمل الكبيرة
- إرسال لغة مستهدفة واحدة لكل طلب دفعة. وهذا يحافظ على سرعة كل دفعة ويجعل من السهل تتبع التقدم.
- إبقي الدفعات عند 50-100 نصوص. الدفعات الأصغر تستكمل أسرع وتعطيك تحديثات أكثر تواترا للتقدم.
- تقدم عدداً من المهام حسب الحاجة - تقوم مجموعات وحدات المعالجة الرسومية بإجراء القياس الآلي لمعالجة الطلب.
- عند انتهاء الوقت المحدد، أعد استفتاء نفس job_id بدلاً من تقديم دفعة جديدة. قد لا تزال المهمة الأصلية قيد المعالجة على وحدة المعالجة المركزية.
- اﻻستطﻻع كل ٣-٥ ثوان، اﻻستطﻻع المتكرر ﻻ يعجل بالتجهيز.
ترجمة الوثائق
ترجمة وثائق كاملة مع الحفاظ على التشكيل. يدعم أشكال الملفات المتعددة.
POST https://api.translateapi.ai/api/v1/translate/document/
الطلب (بيانات متعددة الأجزاء/استمارة)
| البارامترات | النوع | المطلوبة | ألف - الوصف |
|---|---|---|---|
file |
file | نعم | الوثيقة المراد ترجمتها (10 ميغابايت كحد أقصى) |
target_language |
string | نعم | Target language code (e.g., "es", "fr", "de") |
source_language |
string | لا | Source language code. Default: "auto" (auto-detect) |
أنواع الملفات المدعومة
وثائق
.txt- ملفات النص العادي.docx- وثائق Word.pdf- وثائق PDF (بما في ذلك الوثائق الممسوحة إلكترونيا)
البيانات والتحديد المحلي
.json- ملفات JSON (تترجم قيم السلسلة).xml- ملفات XML.srt- ملفات النصوص الفرعية.po/.pot- ملفات ترجمة Gettext
الصور (التعرف البصري على الحروف)
.jpg/.jpeg- صور JPEG (التعرف الضوئي على الحروف).png- صور PNG (OCR).tiff/.tif- صور TIFF (OCR).bmp- صور BMP (OCR).webp- صور WebP (التعرف الضوئي على الحروف)
مثال (cURL)
# Translate a Word document
curl -X POST https://api.translateapi.ai/api/v1/translate/document/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@document.docx" \
-F "target_language=es" \
-F "source_language=en"
# Translate text from an image (OCR)
curl -X POST https://api.translateapi.ai/api/v1/translate/document/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@scanned_page.jpg" \
-F "target_language=es" \
-F "source_language=en"
الاستجابة
{
"id": 123,
"original_filename": "document.docx",
"file_type": "docx",
"source_language": "en",
"target_language": "es",
"status": "completed",
"character_count": 5420,
"translated_file_url": "/media/translated/document_es.docx",
"created_at": "2024-01-15T10:30:00Z",
"completed_at": "2024-01-15T10:30:05Z"
}
GET https://api.translateapi.ai/api/v1/translate/document/{id}/
تحقق من حالة ترجمة وثيقة ما أو استرجع العنوان الشبكي للتنزيل.
قيم الوضع
pending |
تم تحميل الملف، في انتظار التجهيز |
processing |
الترجمة قيد التنفيذ |
completed |
أنجزت الترجمة، متاحة للتنزيل |
failed |
فشلت الترجمة (تحقق من رسالة الخطأ) |
اللغات المدعومة
احصل على قائمة بجميع اللغات المدعومة.
GET https://api.translateapi.ai/api/v1/translate/languages/
الاستجابة
{
"count": 186,
"results": [
{"iso": "en", "name": "English", "en_label": "English"},
{"iso": "es", "name": "Español", "en_label": "Spanish"},
{"iso": "fr", "name": "Français", "en_label": "French"},
...
]
}
نماذج الترجمة
ونحن نستخدم أحدث نماذج الترجمة المفتوحة المصدر التي تعمل على البنية التحتية الخاصة بنا للمعالجات الرسومية، وجميع النماذج مرخصة تجاريا (أباتشي 2.0).
| النموذج | ألف - اللغات | أفضل لل |
|---|---|---|
| Helsinki-NLP/opus-mt | أكثر من 50 زوجاً لغوياً | اللغات الشائعة (الإنكليزية، الإسبانية، الفرنسية، الألمانية، الإيطالية، البرتغالية، الروسية، الصينية، اليابانية، إلخ) |
| Google MADLAD-400 | أكثر من 400 لغة | اللغات النادرة، تغطية شاملة |
تختار واجهة برمجة التطبيقات تلقائياً أفضل نموذج لزوج لغاتك. engine البارامتر:
| المحرك | ألف - الوصف |
|---|---|
"auto" |
الافتراضي، يحاول HuggingFace أولاً، يعود إلى MADLAD-400 |
"huggingface" |
Force HuggingFace/MarianMT (أسرع، أكثر من 50 لغة) |
"madlad" |
قوة MADLAD-400 (أكثر من 400 لغة) |
معالجة الأخطاء
وتستخدم واجهة برمجة التطبيقات رموز حالة HTTP القياسية للإشارة إلى النجاح أو الفشل.
| الرمز | ألف - الوصف |
|---|---|
| 200 | النجاح |
| 202 | مقبول - وضعت العمليات في صفوف بنجاح |
| 400 | طلب سيء - بارامترات غير صحيحة (نص مفقود، لغة غير مدعومة، إلخ.) |
| 401 | غير مأذون به - مفتاح API غير صحيح أو مفقود |
| 402 | الدفع مطلوب — استنفد رصيد الشخصيات. يرجى ترقية خطتك أو شراء رصيد إضافي. |
| 403 | محظور - مفتاح API يفتقر إلى النطاق المطلوب أو IP غير في القائمة البيضاء |
| 503 | الخدمة غير متاحة - محرك الترجمة معطل مؤقتا |
صيغة رد الخطأ
{
"error": "insufficient_credits",
"credits_remaining": 0
}
حدود الاستخدام
TranslateAPI has no request rate limits. All requests are queued and processed by our auto-scaling GPU cluster. Your plan determines your monthly character allowance:
| الخطة | الحروف/الشهر | رابطة البرمجيات الحرة | وثائق | السعر | |
|---|---|---|---|---|---|
| مجاني | 250,000 | — | — | $0 | انضم مجاناً |
| البدء | 2,500,000 | $9/شهر | الاشتراك | ||
| المؤيدون | 10,000,000 | $29/شهر | الاشتراك | ||
| الأعمال التجارية | 40,000,000 | $79/شهر | الاشتراك | ||
| الجدول | 125,000,000 | $199/شهر | الاشتراك | ||
| Enterprise | Unlimited | $499/شهر | Contact Sales |
عندما تتجاوز حدودك، ستحصل على 402 Payment Required لا استجابة حتى الشهر القادم أو تقوم بالترقية
البنية التحتية السحابية ذات التوسع التلقائي
يجري TranslateAPI على مخصصة إنفيديا A100 GPU حالات مع القياس الأفقي التلقائي. عندما يزداد الطلب، ومثل GPU الإضافية تطلق في غضون دقائق للحفاظ على سرعة الاستجابة. جميع الطلبات يتم وضعها في صف ومعالجة - إرسال مئات من الطلبات المتزامنة وسيتم التعامل معها جميعا. الترجمات في الوقت الحقيقي الحصول على الأولوية، ومعالجة الأعمال في الخلفية.
هل تحتاجون إلى المزيد من الائتمانات؟
هل تنفد لك الشخصيات في منتصف الشهر؟ اشتري رصيد إضافي لمرة واحدة دون تغيير خطتك. عرض مجموعات التغذية