บทนำ

ยินดีต้อนรับสู่ API การแปลของ i18n-agent! บริการแปลภาษาด้วย AI พร้อมการปรับให้เข้ากับวัฒนธรรม

เอกสารประกอบ API นี้ให้ข้อมูลที่ครอบคลุมเกี่ยวกับจุดสิ้นสุดที่มีทั้งหมด วิธีการตรวจสอบสิทธิ์ รูปแบบคำขอ/การตอบสนอง และรหัสข้อผิดพลาด

ฐาน URLs

สภาพแวดล้อม URL
การพัฒนา http://localhost:8000
การผลิต https://api.i18nagent.ai

คุณสมบัติหลัก

  • 🌐 รองรับหลายภาษา - แปลเนื้อหาเป็น 10+ ภาษาพร้อมการปรับให้เข้ากับวัฒนธรรม
  • 🚀 การสตรีมแบบเรียลไทม์ - ServerSent Events สำหรับการอัปเดตความคืบหน้า
  • 📁 การแปลไฟล์ - รองรับ JSON, YAML, XML, CSV และอื่นๆ
  • 🔐 การรับรองความปลอดภัย - การรับรองตัวตนด้วยคีย์ API
  • 💳 ระบบเครดิต - รูปแบบการคิดราคาแบบจ่ายตามการใช้งาน
  • 🤖 ขับเคลื่อนด้วย AI - ใช้ LLMs ขั้นสูงสำหรับการแปลที่แม่นยำ

การรับรองตัวตน

ในการรับรองตัวตน ใช้โค้ดนี้:

# With shell, you can just pass the correct header with each request
curl "api_endpoint_here" \
  -H "Authorization: Bearer i18n_your_api_key_here"
const headers = {
  'Authorization': 'Bearer i18n_your_api_key_here',
  'Content-Type': 'application/json'
};

fetch('api_endpoint_here', { headers })
  .then(response => response.json())
  .then(data => console.log(data));
import requests

headers = {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
}

response = requests.get('api_endpoint_here', headers=headers)
print(response.json())
package main

import (
    "net/http"
)

func main() {
    client := &http.Client{}
    req, _ := http.NewRequest("GET", "api_endpoint_here", nil)
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

ตรวจสอบให้แน่ใจว่าได้แทนที่ i18n_your_api_key_here ด้วยคีย์ API ของคุณ

API i18n-agent ใช้คีย์ API เพื่ออนุญาตการเข้าถึง API คุณสามารถรับคีย์ API ของคุณได้จาก แดชบอร์ดบัญชี.

คีย์ API ต้องรวมอยู่ในคำขอ API ทั้งหมดไปยังเซิร์ฟเวอร์ในส่วนหัวที่มีลักษณะดังต่อไปนี้:

Authorization: Bearer i18n_your_api_key_here

จุดปลายทาง

เครดิต

รับเครดิตทีม

GET /credits

รับยอดคงเหลือเครดิตปัจจุบันสำหรับทีมที่ได้รับการรับรอง

curl -X GET "https://api.i18nagent.ai/credits" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/credits', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/credits',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/credits", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

คำสั่งข้างต้นส่งคืน JSON ที่มีโครงสร้างเช่นนี้:

{
  "success": true,
  "data": {
    "teamId": "team_123",
    "teamName": "My Team",
    "credits": 125.5,
    "userId": "user_456"
  },
  "metadata": {
    "timestamp": "2024-01-15T12:00:00.000Z"
  }
}

Response Fields

Field Type Description
success boolean Whether the request was successful
data object
data.teamId string Team identifier
data.teamName string Team name
data.credits number Current credit balance
data.userId string User identifier
metadata object
metadata.timestamp string Response timestamp

ภาษา

รายการภาษาที่รองรับ

GET /languages

รับรายการภาษาที่รองรับทั้งหมดพร้อมคะแนนคุณภาพ

curl -X GET "https://api.i18nagent.ai/languages" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/languages', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/languages',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/languages", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

คำสั่งข้างต้นส่งคืน JSON โครงสร้างดังนี้:

{
  "languages": [
    {
      "code": "es",
      "name": "Spanish",
      "quality": "high"
    }
  ]
}

Response Fields

Field Type Description
languages array

งานแปล

รับประวัติการแปล

GET /translations

รับรายการงานแปลแบบแบ่งหน้าพร้อมตัวกรองตามสถานะ ประเภท ภาษาเป้าหมาย และช่วงวันที่

curl -X GET "https://api.i18nagent.ai/translations" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/translations', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/translations',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/translations", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

คำสั่งข้างต้นส่งคืน JSON โครงสร้างดังนี้:

{
  "translations": [
    {
      "id": "translation_job_id",
      "type": "TEXT",
      "fileName": "file_name_(for_file_translations)",
      "fileType": "file_type_(for_file_translations)",
      "targetLanguages": [
        "string"
      ],
      "status": "PENDING",
      "progress": 0,
      "wordCount": 0,
      "creditsRequired": 0,
      "createdAt": "2024-01-15T12:00:00.000Z",
      "startedAt": "2024-01-15T12:00:00.000Z",
      "completedAt": "2024-01-15T12:00:00.000Z",
      "user": {}
    }
  ],
  "pagination": {
    "page": 0,
    "limit": 0,
    "total": 0,
    "totalPages": 0
  }
}

พารามิเตอร์การสอบถาม

พารามิเตอร์ จำเป็น คำอธิบาย
page No Page number for pagination
limit No Number of items per page
status No Filter by translation status
type No Filter by translation type
targetLanguages No Comma-separated list of target language codes to filter by
fromDate No Filter translations created after this date
toDate No Filter translations created before this date

Response Fields

Field Type Description
translations array
pagination object
pagination.page integer
pagination.limit integer
pagination.total integer
pagination.totalPages integer

รับรายละเอียดการแปล

GET /translations/{id}

รับรายละเอียดการแปลเฉพาะโดย ID

curl -X GET "https://api.i18nagent.ai/translations/{id}" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/translations/{id}', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/translations/{id}',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/translations/{id}", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

คำสั่งข้างต้นส่งคืน JSON โครงสร้างเช่นนี้:

{
  "id": "translation_job_id",
  "type": "TEXT",
  "fileName": "original_file_name_(for_file_translations)",
  "fileType": "file_type_(json,_yaml,_etc",
  "fileSize": 0,
  "targetLanguages": [
    "string"
  ],
  "context": "translation_context_or_instructions",
  "wordCount": 0,
  "creditsRequired": 0,
  "status": "PENDING",
  "progress": 0,
  "errorMessage": "error_message_if_translation_failed",
  "translatedFiles": {},
  "createdAt": "2024-01-15T12:00:00.000Z",
  "startedAt": "2024-01-15T12:00:00.000Z",
  "completedAt": "2024-01-15T12:00:00.000Z",
  "user": {}
}

พารามิเตอร์การสอบถาม

พารามิเตอร์ จำเป็น คำอธิบาย
id Yes Translation ID

Response Fields

Field Type Description
id string Translation job ID
type string Type of translation job
fileName string Original file name (for file translations)
fileType string File type (json, yaml, etc.)
fileSize integer File size in bytes
targetLanguages array Target languages for translation
context string Translation context or instructions
wordCount integer Number of words in source content
creditsRequired number Credits required for this translation
status string Current status of the translation
progress integer Progress percentage (0-100)
errorMessage string Error message if translation failed
translatedFiles object Translated file data (when completed)
createdAt string When the job was created
startedAt string When processing started
completedAt string When the job was completed
user object User who created the translation

รับสถานะการแปล

GET /translations/{id}/status

รับสถานะแบบเรียลไทม์ของงานแปลพร้อมการติดตามความคืบหน้าโดยละเอียด ซึ่งประกอบด้วย: เปอร์เซ็นต์ความคืบหน้า เวลาที่ผ่านมา เวลาที่คาดว่าจะเหลือ ข้อมูลจุดตรวจสอบ การแปลบางส่วนสำหรับการแปลหลายภาษา และการดาวน์โหลดแบบลงทะเบียนล่วงหน้า URLs สำหรับผลลัพธ์ที่เสร็จสมบูรณ์

curl -X GET "https://api.i18nagent.ai/translations/{id}/status" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/translations/{id}/status', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/translations/{id}/status',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/translations/{id}/status", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

คำสั่งข้างต้นส่งคืน JSON โครงสร้างเช่นนี้:

{
  "id": "translation_job_id",
  "status": "PENDING",
  "statusText": "localized_human-readable_status_message",
  "progress": 0,
  "elapsedTime": "120 seconds",
  "estimatedTimeRemaining": "45 seconds",
  "message": "Translation in progress... 65% complete",
  "chunks": {
    "completed": 0,
    "total": 0
  },
  "lastCheckpointId": "opaque_checkpoint_id_for_the_last_saved_checkpoint_(can_be_used_to_resume)",
  "checkpointDescription": "Localization (65% complete, chunk 60%)",
  "completedLanguages": [
    "es",
    "fr",
    "de"
  ],
  "partialCompletionMessage": "3 language(s) completed: es, fr, de",
  "downloadUrls": {},
  "createdAt": "2024-01-15T12:00:00.000Z",
  "startedAt": "2024-01-15T12:00:00.000Z",
  "completedAt": "2024-01-15T12:00:00.000Z",
  "metadata": {},
  "result": {},
  "error": "error_message_(only_when_failed)"
}

พารามิเตอร์การค้นหา

พารามิเตอร์ จำเป็น คำอธิบาย
id Yes Translation ID

Response Fields

Field Type Description
id string Translation job ID
status string Current status
statusText string Localized human-readable status message
progress integer Progress percentage (0-100)
elapsedTime string Time elapsed since job started processing
estimatedTimeRemaining string Estimated time remaining for completion
message string Status message or error details
chunks object Batch/chunk processing progress (for large translations)
chunks.completed integer Number of chunks completed
chunks.total integer Total number of chunks
lastCheckpointId string Opaque checkpoint ID for the last saved checkpoint (can be used to resume)
checkpointDescription string Human-readable description of current checkpoint progress
completedLanguages array Array of language codes that have been completed (for multi-language translations with partial completion)
partialCompletionMessage string Message describing partial completion status
downloadUrls object Presigned download URLs for completed translations, organized by language code. Example: {"es": "https://...", "fr": "https://..."}. URLs expire after 1 hour. This is the primary method for accessing completed translation files.
createdAt string When the job was created
startedAt string When the job started processing
completedAt string When the job was completed
metadata object Additional metadata about the translation
result object Translation result (only when completed)
error string Error message (only when failed)

ดาวน์โหลดผลลัพธ์การแปล

GET /translations/{id}/result

ดาวน์โหลดเนื้อหาที่แปลแล้ว

curl -X GET "https://api.i18nagent.ai/translations/{id}/result" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/translations/{id}/result', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/translations/{id}/result',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/translations/{id}/result", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

คำสั่งข้างต้นส่งคืน JSON โครงสร้างเช่นนี้:

{
  "translations": [
    {
      "original": "Hello, world!",
      "translated": "¡Hola, mundo!",
      "confidence": 0.98
    }
  ],
  "metadata": {
    "sourceLanguage": "en",
    "targetLanguage": "es",
    "wordCount": 2,
    "creditsUsed": 0.002,
    "timestamp": "2024-01-15T12:00:00.000Z"
  }
}

พารามิเตอร์การค้นหา

พารามิเตอร์ จำเป็น คำอธิบาย
id Yes Translation ID
language No Language code for specific language result

ดาวน์โหลดไฟล์ต้นฉบับ

GET /translations/{id}/original

ดาวน์โหลดไฟล์ที่อัปโหลดดั้งเดิม

curl -X GET "https://api.i18nagent.ai/translations/{id}/original" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/translations/{id}/original', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/translations/{id}/original',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/translations/{id}/original", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

คำสั่งข้างต้นส่งคืน JSON โครงสร้างเช่นนี้:

{
  "translations": [
    {
      "original": "Hello, world!",
      "translated": "¡Hola, mundo!",
      "confidence": 0.98
    }
  ],
  "metadata": {
    "sourceLanguage": "en",
    "targetLanguage": "es",
    "wordCount": 2,
    "creditsUsed": 0.002,
    "timestamp": "2024-01-15T12:00:00.000Z"
  }
}

พารามิเตอร์การค้นหา

พารามิเตอร์ จำเป็น คำอธิบาย
id Yes Translation ID

กู้คืนการแปลจากจุดตรวจสอบ

POST /translations/{id}/resume

กู้คืนการแปลที่ล้มเหลวหรือถูกขัดจังหวะจากจุดตรวจสอบเฉพาะหรือกู้คืนอัตโนมัติจากจุดตรวจสอบที่สำเร็จล่าสุด

curl -X POST "https://api.i18nagent.ai/translations/{id}/resume" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
  "texts": [
    "Hello, world!",
    "Welcome to our service"
  ],
  "targetLanguage": "es",
  "targetAudience": "general",
  "industry": "technology",
  "sourceLanguage": "en",
  "region": "Mexico",
  "notes": "Keep technical terms in English, use formal tone"
}'
const response = await fetch('https://api.i18nagent.ai/translations/{id}/resume', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    })
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.post(
    'https://api.i18nagent.ai/translations/{id}/resume',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    },
    json={
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    data := map[string]interface{}{
        "texts": []string{"Hello, world!", "Welcome to our service"},
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
    }
    jsonData, _ := json.Marshal(data)
    
    req, _ := http.NewRequest("POST", "https://api.i18nagent.ai/translations/{id}/resume", bytes.NewBuffer(jsonData))
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

คำสั่งข้างต้นส่งคืน JSON ที่มีโครงสร้างดังนี้:

{
  "success": true,
  "message": "Translation resume initiated",
  "id": "translation_job_id",
  "checkpointId": "the_checkpoint_id_from_which_the_translation_is_resuming",
  "description": "Resuming from last checkpoint",
  "status": "PROCESSING"
}

พารามิเตอร์การสอบถาม

พารามิเตอร์ จำเป็น คำอธิบาย
id Yes Translation ID

พารามิเตอร์ของเนื้อหาคำขอ

พารามิเตอร์ ประเภท จำเป็น คำอธิบาย
checkpointId string No Opaque checkpoint ID to resume from (obtained from status endpoint). If not provided and autoDetect is true, will resume from last successful checkpoint.
continueToEnd boolean No Whether to continue processing all remaining content after resuming (default: true)
autoDetect boolean No Automatically detect and resume from the last successful checkpoint if checkpointId is not provided (default: true)

Response Fields

Field Type Description
success boolean Whether the resume was successfully initiated
message string Status message
id string Translation job ID
checkpointId string The checkpoint ID from which the translation is resuming
description string Human-readable description of the resume action
status string Current status of the translation after resuming

รับงานแปลที่ใช้งานอยู่

GET /translations/jobs/active

รับรายการงานแปลที่ใช้งานอยู่ในปัจจุบัน

curl -X GET "https://api.i18nagent.ai/translations/jobs/active" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/translations/jobs/active', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/translations/jobs/active',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/translations/jobs/active", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

คำสั่งข้างต้นส่งคืน JSON ที่มีโครงสร้างดังนี้:

{
  "activeJobs": [
    {
      "id": "string",
      "type": "FILE",
      "fileName": "string",
      "fileType": "string",
      "text": "string",
      "targetLanguages": [
        "string"
      ],
      "status": "PENDING",
      "progress": 0,
      "wordCount": 0,
      "creditsRequired": 0,
      "createdAt": "string",
      "startedAt": "string",
      "originalPreview": "string",
      "user": {
        "id": "string",
        "name": "string",
        "email": "string"
      }
    }
  ]
}

Response Fields

Field Type Description
activeJobs array

ดาวน์โหลดผลการแปล

POST /translations/{jobId}/download

ดาวน์โหลดผลการแปลที่เสร็จสมบูรณ์ ส่งคืน URLs ที่ดาวน์โหลดได้ จัดเรียงตามภาษา URLs จะหมดอายุหลังจาก 24 ชั่วโมง

curl -X POST "https://api.i18nagent.ai/translations/{jobId}/download" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/translations/{jobId}/download', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.post(
    'https://api.i18nagent.ai/translations/{jobId}/download',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("POST", "https://api.i18nagent.ai/translations/{jobId}/download", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

คำสั่งข้างต้นส่งคืน JSON ที่มีโครงสร้างดังนี้:

{
  "jobId": "translation_job_id",
  "fileName": "original_file_name",
  "targetLanguages": [
    "string"
  ],
  "requestedLanguages": [
    "string"
  ],
  "downloadUrls": {},
  "message": "Translation files ready for download. Use downloadUrls to access each language file.",
  "expiresIn": "24 hours",
  "partialFailure": true,
  "failedLanguages": [
    "string"
  ],
  "errorMessage": "error_message_for_failed_languages",
  "warning": "Translation completed partially. 2 of 5 language(s) failed: ja, zh-CN"
}

พารามิเตอร์การสอบถาม

พารามิเตอร์ จำเป็น คำอธิบาย
jobId Yes Translation job ID

Response Fields

Field Type Description
jobId string Translation job ID
fileName string Original file name
targetLanguages array Completed target languages available for download
requestedLanguages array Originally requested target languages
downloadUrls object Presigned download URLs organized by language code. Example: {"es": {"url": "https://...", "key": "..."}, "fr": {"url": "https://...", "key": "..."}}
message string Status or information message
expiresIn string Expiration time for download URLs
partialFailure boolean Indicates if some languages failed to translate
failedLanguages array Language codes that failed to translate
errorMessage string Error message for failed languages
warning string Warning message about partial completion

ดาวน์โหลดไฟล์แปลภาษาสำหรับภาษาเฉพาะ

GET /translations/{jobId}/files/{language}

ดาวน์โหลดไฟล์แปลภาษาเดียวสำหรับภาษาเป้าหมายเฉพาะ ส่งคืนเนื้อหาไฟล์โดยตรงพร้อมส่วนหัว Content-Type ที่เหมาะสม

curl -X GET "https://api.i18nagent.ai/translations/{jobId}/files/{language}" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/translations/{jobId}/files/{language}', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/translations/{jobId}/files/{language}',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/translations/{jobId}/files/{language}", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

คำสั่งด้านบนส่งคืน JSON ที่มีโครงสร้างดังนี้:

"string"

พารามิเตอร์การสืบค้น

พารามิเตอร์ จำเป็น คำอธิบาย
jobId Yes Translation job ID
language Yes Target language code (e.g., 'es', 'fr', 'ja')

สร้างการแปลพร้อมความคืบหน้าการสตรีม

POST /translations/stream

สร้างการแปลด้วยเหตุการณ์ Server-Sent (SSE) สำหรับการอัปเดตความคืบหน้าแบบเรียลไทม์ รองรับการแปลข้อความเท่านั้น (ไม่ใช่ไฟล์) ส่งคืนการอัปเดตความคืบหน้าแบบเรียลไทม์เป็นเหตุการณ์ SSE

curl -X POST "https://api.i18nagent.ai/translations/stream" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
  "texts": [
    "Hello, world!",
    "Welcome to our service"
  ],
  "targetLanguage": "es",
  "targetAudience": "general",
  "industry": "technology",
  "sourceLanguage": "en",
  "region": "Mexico",
  "notes": "Keep technical terms in English, use formal tone"
}'
const response = await fetch('https://api.i18nagent.ai/translations/stream', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    })
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.post(
    'https://api.i18nagent.ai/translations/stream',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    },
    json={
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    data := map[string]interface{}{
        "texts": []string{"Hello, world!", "Welcome to our service"},
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
    }
    jsonData, _ := json.Marshal(data)
    
    req, _ := http.NewRequest("POST", "https://api.i18nagent.ai/translations/stream", bytes.NewBuffer(jsonData))
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

คำสั่งข้างต้นส่งคืน JSON ที่มีโครงสร้างเช่นนี้:

{
  "translations": [
    {
      "original": "Hello, world!",
      "translated": "¡Hola, mundo!",
      "confidence": 0.98
    }
  ],
  "metadata": {
    "sourceLanguage": "en",
    "targetLanguage": "es",
    "wordCount": 2,
    "creditsUsed": 0.002,
    "timestamp": "2024-01-15T12:00:00.000Z"
  }
}

พารามิเตอร์ของเนื้อหาคำขอ

พารามิเตอร์ ประเภท จำเป็น คำอธิบาย
texts array Yes Array of texts to translate
targetLanguage string No Target language code (e.g., 'es', 'fr', 'ja') - for single language translation
targetAudience string No Target audience (e.g., 'general', 'technical', 'casual', 'formal') (default: general)
industry string No Industry context (e.g., 'technology', 'healthcare', 'finance') (default: technology)
sourceLanguage string No Source language code (auto-detected if not provided)
region string No Specific region for localization (e.g., 'Spain', 'Mexico', 'Brazil')
targetLanguages array No Array of target language codes (e.g., ['es', 'fr', 'zh-CN']) - for multi-language translation. Cannot be used together with targetLanguage.
context string No Optional additional context or instructions for the translation (e.g., 'Keep technical terms in English', 'Use formal tone', 'Preserve brand names')
pseudoTranslation boolean No Enable pseudo-translation mode for testing i18n implementations without AI translation and NO credit cost. Transforms text with accents, brackets, and optional CJK characters to identify untranslated strings and test UI layout. (default: false)
pseudoOptions object No Configuration options for pseudo-translation (only used when pseudoTranslation is true)
skipWarnings boolean No Skip source text quality warnings and proceed with translation (default: false). When false, warnings about problematic source text (e.g., hard-to-translate phrases, pluralization issues, text expansion concerns) will be returned in the response under 'validationSuggestions' field. When true, these warnings are suppressed for cleaner output. (default: false)

รับประมาณการค่าใช้จ่ายการแปล

POST /translations/estimate

คำนวณจำนวนคำและเครดิตที่ต้องใช้สำหรับการแปล

curl -X POST "https://api.i18nagent.ai/translations/estimate" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
  "texts": [
    "Hello, world!",
    "Welcome to our service"
  ],
  "targetLanguage": "es",
  "targetAudience": "general",
  "industry": "technology",
  "sourceLanguage": "en",
  "region": "Mexico",
  "notes": "Keep technical terms in English, use formal tone"
}'
const response = await fetch('https://api.i18nagent.ai/translations/estimate', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    })
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.post(
    'https://api.i18nagent.ai/translations/estimate',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    },
    json={
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    data := map[string]interface{}{
        "texts": []string{"Hello, world!", "Welcome to our service"},
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
    }
    jsonData, _ := json.Marshal(data)
    
    req, _ := http.NewRequest("POST", "https://api.i18nagent.ai/translations/estimate", bytes.NewBuffer(jsonData))
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

คำสั่งข้างต้นส่งคืน JSON ที่มีโครงสร้างเช่นนี้:

{
  "wordCount": 0,
  "creditsRequired": 0,
  "fileType": "txt",
  "estimatedCostUSD": 0
}

พารามิเตอร์ของเนื้อหาคำขอ

พารามิเตอร์ ประเภท จำเป็น คำอธิบาย
content string Yes Content to analyze
fileType string No File type for content analysis (default: txt)

Response Fields

Field Type Description
wordCount integer Number of words in the content
creditsRequired number Credits required for translation
fileType string File type used for analysis
estimatedCostUSD number Estimated cost in USD

การวิเคราะห์

Validate source text for translation readiness

POST /analyze

Lightweight validation of source text to identify potential issues before translation. Returns validation results with error codes for programmatic access. This endpoint does NOT consume credits - it runs fast, deterministic validation without AI/LLM calls.

curl -X POST "https://api.i18nagent.ai/analyze" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
  "texts": [
    "Hello, world!",
    "Welcome to our service"
  ],
  "targetLanguage": "es",
  "targetAudience": "general",
  "industry": "technology",
  "sourceLanguage": "en",
  "region": "Mexico",
  "notes": "Keep technical terms in English, use formal tone"
}'
const response = await fetch('https://api.i18nagent.ai/analyze', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    })
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.post(
    'https://api.i18nagent.ai/analyze',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    },
    json={
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    data := map[string]interface{}{
        "texts": []string{"Hello, world!", "Welcome to our service"},
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
    }
    jsonData, _ := json.Marshal(data)
    
    req, _ := http.NewRequest("POST", "https://api.i18nagent.ai/analyze", bytes.NewBuffer(jsonData))
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

The above command returns JSON structured like this:

{
  "success": true,
  "isValid": true,
  "hasWarnings": true,
  "wordCount": 0,
  "issues": [
    {
      "code": "EMPTY_CONTENT",
      "severity": "info",
      "message": "human-readable_description_of_the_issue",
      "suggestion": "suggested_fix_for_the_issue",
      "affectedCount": 0,
      "examples": [
        "string"
      ]
    }
  ],
  "totalIssues": 0,
  "summary": {
    "errors": 0,
    "warnings": 0,
    "info": 0
  },
  "errorCodes": {
    "EMPTY_CONTENT": "string",
    "ENCODING_ISSUES": "string",
    "UNCLOSED_PLACEHOLDER": "string",
    "NESTED_PLACEHOLDERS": "string",
    "INCONSISTENT_PLACEHOLDER_FORMAT": "string",
    "HARDCODED_PLURALS": "string",
    "VERY_LONG_STRINGS": "string",
    "INVISIBLE_CHARACTERS": "string",
    "EMPTY_JSON_VALUES": "string",
    "INVALID_JSON": "string",
    "HARDCODED_VALUES": "string"
  }
}

Request Body Parameters

Parameter Type Required Description
content string Yes Content to validate (text or JSON string)
fileType string No File type hint for validation (auto-detected if not provided) (default: auto)

Response Fields

Field Type Description
success boolean Whether validation completed (same as isValid)
isValid boolean Whether content passed validation (no errors)
hasWarnings boolean Whether content has warnings (but no blocking errors)
wordCount integer Number of words in the content
issues array List of validation issues found
totalIssues integer Total number of issues found
summary object Summary counts by severity
summary.errors integer Number of error-level issues
summary.warnings integer Number of warning-level issues
summary.info integer Number of info-level issues
errorCodes object Reference enum of all possible error codes for programmatic access
errorCodes.EMPTY_CONTENT string
errorCodes.ENCODING_ISSUES string
errorCodes.UNCLOSED_PLACEHOLDER string
errorCodes.NESTED_PLACEHOLDERS string
errorCodes.INCONSISTENT_PLACEHOLDER_FORMAT string
errorCodes.HARDCODED_PLURALS string
errorCodes.VERY_LONG_STRINGS string
errorCodes.INVISIBLE_CHARACTERS string
errorCodes.EMPTY_JSON_VALUES string
errorCodes.INVALID_JSON string
errorCodes.HARDCODED_VALUES string

Namespace Translations

อัปโหลดไฟล์การแปลสำหรับการนำเนมสเปซกลับมาใช้ใหม่

POST /namespaces/{namespace}/translations/upload

อัปโหลดไฟล์แปลที่มีอยู่ไปยังเนมสเปซเพื่อนำกลับมาใช้ในอนาคต สิ่งนี้ช่วยให้สามารถลดต้นทุนได้โดยการนำสตริงที่แปลไว้แล้วกลับมาใช้ใหม่ ไฟล์จะถูกประมวลผลและคู่การแปลจะถูกดึงออกมาเพื่อเก็บในแคช

curl -X POST "https://api.i18nagent.ai/namespaces/{namespace}/translations/upload" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
  "texts": [
    "Hello, world!",
    "Welcome to our service"
  ],
  "targetLanguage": "es",
  "targetAudience": "general",
  "industry": "technology",
  "sourceLanguage": "en",
  "region": "Mexico",
  "notes": "Keep technical terms in English, use formal tone"
}'
const response = await fetch('https://api.i18nagent.ai/namespaces/{namespace}/translations/upload', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    })
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.post(
    'https://api.i18nagent.ai/namespaces/{namespace}/translations/upload',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    },
    json={
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    data := map[string]interface{}{
        "texts": []string{"Hello, world!", "Welcome to our service"},
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
    }
    jsonData, _ := json.Marshal(data)
    
    req, _ := http.NewRequest("POST", "https://api.i18nagent.ai/namespaces/{namespace}/translations/upload", bytes.NewBuffer(jsonData))
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

คำสั่งข้างต้นจะส่งคืน JSON ที่มีโครงสร้างดังนี้:

{
  "success": true,
  "fileId": "string",
  "pairsStored": 0,
  "pairsUpdated": 0,
  "message": "string"
}

พารามิเตอร์การสืบค้น

พารามิเตอร์ จำเป็น คำอธิบาย
namespace Yes Namespace identifier (3-50 chars, alphanumeric + hyphens/underscores only)

Response Fields

Field Type Description
success boolean
fileId string
pairsStored integer Number of new translation pairs stored
pairsUpdated integer Number of existing translation pairs updated
message string

รับสถิติการแปลของเนมสเปซ

GET /namespaces/{namespace}/translations/stats

รับสถิติเกี่ยวกับไฟล์แปลที่อัปโหลดและการนำแคชกลับมาใช้สำหรับเนมสเปซ

curl -X GET "https://api.i18nagent.ai/namespaces/{namespace}/translations/stats" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/namespaces/{namespace}/translations/stats', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/namespaces/{namespace}/translations/stats',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/namespaces/{namespace}/translations/stats", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

คำสั่งข้างต้นส่งคืน JSON ที่มีโครงสร้างดังนี้:

{
  "namespaceId": "string",
  "namespaceName": "string",
  "totalFiles": 0,
  "files": [
    {
      "id": "string",
      "baseFileName": "string",
      "sourceLocale": "string",
      "targetLocale": "string",
      "pairsExtracted": 0,
      "createdAt": "2024-01-15T12:00:00.000Z"
    }
  ],
  "cacheStatistics": [
    {
      "sourceLocale": "string",
      "targetLocale": "string",
      "pairCount": 0,
      "totalReuses": 0
    }
  ]
}

พารามิเตอร์การค้นหา

พารามิเตอร์ จำเป็น คำอธิบาย
namespace Yes Namespace identifier

Response Fields

Field Type Description
namespaceId string
namespaceName string
totalFiles integer
files array
cacheStatistics array

แสดงรายการไฟล์แปลที่อัปโหลดในเนมสเปซ

GET /namespaces/{namespace}/translations/files

รับรายการแบบแบ่งหน้าของไฟล์แปลที่อัปโหลดสำหรับเนมสเปซ

curl -X GET "https://api.i18nagent.ai/namespaces/{namespace}/translations/files" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/namespaces/{namespace}/translations/files', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/namespaces/{namespace}/translations/files',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/namespaces/{namespace}/translations/files", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

คำสั่งข้างต้นส่งคืน JSON ที่มีโครงสร้างดังนี้:

{
  "namespaceId": "string",
  "namespaceName": "string",
  "totalFiles": 0,
  "limit": 0,
  "offset": 0,
  "files": [
    {
      "id": "string",
      "baseFileName": "string",
      "originalFileName": "string",
      "fileType": "string",
      "fileSize": 0,
      "sourceLocale": "string",
      "targetLocale": "string",
      "pairsExtracted": 0,
      "status": "string",
      "uploadedBy": "string",
      "createdAt": "2024-01-15T12:00:00.000Z",
      "updatedAt": "2024-01-15T12:00:00.000Z"
    }
  ]
}

พารามิเตอร์การค้นหา

พารามิเตอร์ จำเป็น คำอธิบาย
namespace Yes Namespace identifier
limit No Maximum number of files to return
offset No Number of files to skip for pagination

Response Fields

Field Type Description
namespaceId string
namespaceName string
totalFiles integer
limit integer
offset integer
files array

ลบไฟล์การแปลที่อัปโหลด

DELETE /namespaces/{namespace}/translations/files/{fileId}

ลบไฟล์การแปลที่อัปโหลดและคู่การแปลทั้งหมดออกจากแคช

curl -X DELETE "https://api.i18nagent.ai/namespaces/{namespace}/translations/files/{fileId}" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/namespaces/{namespace}/translations/files/{fileId}', {
  method: 'DELETE',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.delete(
    'https://api.i18nagent.ai/namespaces/{namespace}/translations/files/{fileId}',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("DELETE", "https://api.i18nagent.ai/namespaces/{namespace}/translations/files/{fileId}", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

คำสั่งข้างต้นส่งคืน JSON ที่มีโครงสร้างดังนี้

{
  "success": true,
  "fileName": "string",
  "pairsDeleted": 0,
  "message": "string"
}

พารามิเตอร์การค้นหา

พารามิเตอร์ จำเป็น คำอธิบาย
namespace Yes Namespace identifier
fileId Yes File ID to delete

Response Fields

Field Type Description
success boolean
fileName string
pairsDeleted integer
message string

อัปโหลดไฟล์แปลแบบขนาน

POST /translations/upload-parallel

อัปโหลดไฟล์ต้นทางและปลายทางแบบขนานสำหรับการแยกคู่แปลและแคช โดยไฟล์ทั้งสองควรมีโครงสร้างและประเภทไฟล์เดียวกัน

curl -X POST "https://api.i18nagent.ai/translations/upload-parallel" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
  "texts": [
    "Hello, world!",
    "Welcome to our service"
  ],
  "targetLanguage": "es",
  "targetAudience": "general",
  "industry": "technology",
  "sourceLanguage": "en",
  "region": "Mexico",
  "notes": "Keep technical terms in English, use formal tone"
}'
const response = await fetch('https://api.i18nagent.ai/translations/upload-parallel', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    })
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.post(
    'https://api.i18nagent.ai/translations/upload-parallel',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    },
    json={
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    data := map[string]interface{}{
        "texts": []string{"Hello, world!", "Welcome to our service"},
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
    }
    jsonData, _ := json.Marshal(data)
    
    req, _ := http.NewRequest("POST", "https://api.i18nagent.ai/translations/upload-parallel", bytes.NewBuffer(jsonData))
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

คำสั่งข้างต้นส่งคืน JSON โครงสร้างดังนี้:

{
  "success": true,
  "fileId": "string",
  "pairsStored": 0,
  "pairsUpdated": 0,
  "message": "string"
}

Response Fields

Field Type Description
success boolean
fileId string
pairsStored integer Number of new translation pairs stored
pairsUpdated integer Number of existing translation pairs updated
message string

ไฟล์

ดาวน์โหลดไฟล์จากที่เก็บข้อมูล

GET /files/{filePath}

ให้บริการไฟล์จากที่เก็บข้อมูลในเครื่อง (การพัฒนา) หรือ S3 (การผลิต) ใช้สำหรับเข้าถึงไฟล์ที่อัปโหลดและแปลแล้ว

curl -X GET "https://api.i18nagent.ai/files/{filePath}" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/files/{filePath}', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/files/{filePath}',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/files/{filePath}", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

คำสั่งข้างต้นส่งคืน JSON ที่มีโครงสร้างดังนี้:

{
  "error": "Detailed error message describing what went wrong",
  "success": false
}

พารามิเตอร์การสอบถาม

พารามิเตอร์ จำเป็น คำอธิบาย
filePath Yes File path including any subdirectories (e.g., 'uploads/test-file.json' or 'translations/result.json')

ข้อผิดพลาด

API ของ i18n-agent ใช้รหัสข้อผิดพลาดต่อไปนี้:

รหัสข้อผิดพลาด ความหมาย
400 Bad Request -- Your request is invalid.
401 Unauthorized -- Your API key is invalid.
402 Payment Required -- Insufficient credits in your account.
403 Forbidden -- Your API key is inactive or team not found.
404 Not Found -- The specified resource could not be found.
500 Internal Server Error -- We had a problem with our server. Try again later.
503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.

รูปแบบการตอบสนองข้อผิดพลาด

{
  "error": "Detailed error message describing what went wrong",
  "success": false
}

วิเคราะห์เนื้อหาเพื่อความพร้อมในการแปล

POST /analyze

การตรวจสอบข้อความต้นฉบับแบบเบาเพื่อระบุปัญหาที่อาจเกิดขึ้นก่อนการแปล ส่งคืนผลการตรวจสอบพร้อมรหัสข้อผิดพลาดสำหรับการเข้าถึงแบบโปรแกรม endpoint นี้ไม่ใช้เครดิต - ทำการตรวจสอบแบบกำหนดได้อย่างรวดเร็วโดยไม่มีการเรียก AI/LLM

curl -X POST "https://api.i18nagent.ai/analyze" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
  "texts": [
    "Hello, world!",
    "Welcome to our service"
  ],
  "targetLanguage": "es",
  "targetAudience": "general",
  "industry": "technology",
  "sourceLanguage": "en",
  "region": "Mexico",
  "notes": "Keep technical terms in English, use formal tone"
}'
const response = await fetch('https://api.i18nagent.ai/analyze', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    })
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.post(
    'https://api.i18nagent.ai/analyze',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    },
    json={
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    data := map[string]interface{}{
        "texts": []string{"Hello, world!", "Welcome to our service"},
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
    }
    jsonData, _ := json.Marshal(data)
    
    req, _ := http.NewRequest("POST", "https://api.i18nagent.ai/analyze", bytes.NewBuffer(jsonData))
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

คำสั่งข้างต้นส่งคืน JSON ที่มีโครงสร้างดังนี้:

{
  "translations": [
    {
      "original": "Hello, world!",
      "translated": "¡Hola, mundo!",
      "confidence": 0.98
    }
  ],
  "metadata": {
    "sourceLanguage": "en",
    "targetLanguage": "es",
    "wordCount": 2,
    "creditsUsed": 0.002,
    "timestamp": "2024-01-15T12:00:00.000Z"
  }
}

พารามิเตอร์ของ Request Body

พารามิเตอร์ ประเภท จำเป็น คำอธิบาย
targetLanguage string ใช่ รหัสภาษาเป้าหมายสำหรับการแปล
targetAudience string ไม่ กลุ่มเป้าหมาย (ค่าเริ่มต้น: ทั่วไป)
industry string ไม่ บริบทอุตสาหกรรม (ค่าเริ่มต้น: ทั่วไป)
sourceLanguage string ไม่ รหัสภาษาต้นทาง (ตรวจจับอัตโนมัติหากไม่ได้ระบุ)
region string ไม่ ภูมิภาคเฉพาะสำหรับการแปลเป็นภาษาท้องถิ่น
content object ใช่ เนื้อหาที่จะวิเคราะห์ (ข้อความ, อาร์เรย์ของข้อความ หรือออบเจกต์ที่มีโครงสร้าง)
fileType string ไม่ ประเภทไฟล์เสริม หากเนื้อหามาจากไฟล์

การแปลเนมสเปซ