مستندات
ترجمه قدرتمند را با برنامههای کاربردی خود با API REST ساده ما ادغام کنید.
شروع
TranslateAPI یک رابط REST ساده برای ترجمه متن بین ۱۸۰+ زبان فراهم میکند.
کلید API خود را دریافت کنید
ایجاد یک حساب رایگان و تولید کلید API خود از صفحه نمایش:
- ثبت نام در translateapi.ai/signup
- بروید به داشبورد → کلیدهای API
- روی «ساخت کلید API» کلیک کنید و کلید خود را رونوشت کنید
کلیدهای API با ta_ 56 کاراکتر مثانه اي دنبالش ميشه
https://api.translateapi.ai/api/v1/2. اولین درخواست خود را بفرستید
کلید 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
سرآیند
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 | آره | متن برای ترجمه) حداکثر ۵۰۰۰۰ کاراکتر ( |
target_language |
string | آره | Target language code (e.g., "es", "fr", "de") |
source_language |
string | نه | Source language code. Default: "auto" (auto-detect) |
engine |
string | نه | موتور ترجمه: » خودکار « (پیشفرض)، » چهرهی در آغوش کشیدن « ، یا » 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 (string) برای چند هدف.
پاسخ
{
"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/
گام ۱: ارسال دسته
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/"
}
گام ۲: نظرسنجی برای نتایج
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, failed |
processed_texts |
تعداد ترجمههای تک تک تکمیلشده تا کنون. بهروزرسانی در زمان واقعی هنگام ترجمه هر متن. |
progress_percentage |
درصد تکمیل (۰- ۱۰۰). از processed_ texts / total_ texts محاسبه میشود. |
queue_position |
موقعیت شما در صف هنگامی که وضعیت » منتظر « است) ۱ = بعدی (. صفر هنگام پردازش یا تکمیل. از این برای تخمین زمان انتظار و نمایش وضعیت صف به کاربرانتان استفاده کنید. |
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نه هر دو
بهترین روشها برای بارهای کاری بزرگ
- فرستادن یک زبان هدف در هر درخواست دسته. این هر دسته را سریع نگه میدارد و ردیابی پیشرفت را آسان میکند.
- بستهها را در ۵۰- ۱۰۰ متن نگه دارید. بستههای کوچکتر سریعتر تکمیل میشوند و به روزرسانیهای پیشرفت مکررتری به شما میدهند.
- هر چه تعداد کارهای بسته ای که نیاز دارید را ارسال کنید — خوشه GPU ما برای مدیریت تقاضا به صورت خودکار مقیاس بندی میشود. کارها به صورت موازی در چندین نمونه پردازش میشوند.
- در زمانبندی، به جای ارسال یک بسته جدید، همان job_id را دوباره پرس و جو کنید. ممکن است کار اصلی هنوز در GPU در حال پردازش باشد.
- هر ۳- ۵ ثانیه پرس و جو. پرس و جوهای مکررتر سرعت پردازش را افزایش نمیدهد.
ترجمۀ سند
ترجمۀ تمام سندها با حفظ قالببندی. از قالبهای پروندۀ متعدد پشتیبانی میکند.
POST https://api.translateapi.ai/api/v1/translate/document/
درخواست) چندبخشی/دادههای فرم (
| پارامتر | & نوع | الزامی | & توصیف |
|---|---|---|---|
file |
file | آره | سند برای ترجمه) حداکثر ۱۰ مگابایت ( |
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
تصاویر) OCR (
.jpg/.jpeg- تصاویر JPEG) OCR (.png- تصاویر PNG) OCR (.tiff/.tif- تصاویر TIFF) OCR (.bmp- تصاویر BMP) OCR (.webp- تصاویر WebP) OCR (
مثال (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 |
ترجمه شکست خورد (check error_message) |
زبانهای پشتیبانیشده
فهرست تمام زبانهای پشتیبانیشده را دریافت کنید.
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"},
...
]
}
مدلهای ترجمه
ما از پیشرفتهترین مدلهای ترجمه متن باز استفاده میکنیم که بر روی زیرساخت GPU خودمان اجرا میشوند. تمام مدلها به صورت تجاری مجوز دارند (آپاچی ۲٫۰).
| مدل | زبانها | بهترین برای |
|---|---|---|
| Helsinki-NLP/opus-mt | 50+ جفت زبان | زبانهای مشترک (EN, ES, FR, DE, IT, PT, RU, ZH, JA, etc.) |
| Google MADLAD-400 | 400+ زبان | زبانهای نادر، پوشش جامع |
پیآیپی بهطور خودکار بهترین مدل را برای زوج زبانتان انتخاب میکند. میتوانید گزینهای را مشخص کنید engine پارامتر:
| موتور | & توصیف |
|---|---|
"auto" |
پیشفرض، اول سعی میکند HuggingFace را امتحان کند، به MADLAD-400 برمیگردد |
"huggingface" |
Force HuggingFace/MarianMT (سریعترین، بیش از ۵۰ زبان) |
"madlad" |
Force MADLAD-400 (400+ languages) مشارکتکنندگان ویکیپدیا. |
دستکاری خطا
API از کدهای وضعیت استاندارد 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:
| نقشه | کاراکترها/ماه | API دسته | سندها | قیمت | |
|---|---|---|---|---|---|
| آزاد | 250,000 | — | — | $0 | ثبت نام |
| آغازگر | 2,500,000 | $9/% 1 دقیقه | اشتراک | ||
| حرفهای | 10,000,000 | $29/% 1 دقیقه | اشتراک | ||
| کار | 40,000,000 | $79/% 1 دقیقه | اشتراک | ||
| مقیاسبندی | 125,000,000 | $199/% 1 دقیقه | اشتراک | ||
| Enterprise | Unlimited | $499/% 1 دقیقه | Contact Sales |
وقتي از حدت فراتر رفتي، يه 402 Payment Required تا ماه ديگه جواب نميدم وگرنه ارتقا ميديد
زیرساخت ابری مقیاسپذیری خودکار
TranslateAPI روی نمونههای اختصاصی NVIDIA A100 GPU با مقیاسبندی افقی خودکار اجرا میشود. هنگامی که تقاضا افزایش مییابد، نمونههای اضافی GPU در عرض چند دقیقه برای حفظ زمان پاسخ سریع راه اندازی میشوند. همه درخواستها صفبندی و پردازش میشوند - صدها درخواست همزمان ارسال میشود و همه آنها مدیریت میشوند. ترجمههای زمان واقعی اولویت دارند، کارهای بسته در پس زمینه پردازش میشوند.
اعتبارات بيشتري لازم داريد؟
در اواسط ماه کارتهاي شما تموم ميشه؟ بدون تغيير دادن برنامهي خود، يه باري پول اضافه خريداري کنيد. نمایش بستههای بالا