Ana içeriğe geç

Çeviriler

Müşteri site çevirilerinin yönetimi. Key-value formatında çeviri anahtarları ve değerleri saklanır.

Base URL: /api/tenant/translations Yetkilendirme: Bearer Token + X-Api-Key Modül: Translations modülü müşteriye atanmış olmalıdır.

Headers:

Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
X-Api-Key: customer-api-key

GET /

Çevirileri sayfalanmış olarak listeler.

Query Parametreleri:

ParametreTipVarsayılanAçıklama
pageint1Sayfa numarası
pageSizeint10Sayfa başına kayıt
searchstringAnahtar veya değerde arama
languageIdGuidDil filtresi

Response — 200 OK:

{
"success": true,
"data": {
"items": [
{
"id": "3fa85f64-...",
"languageId": "9cd14a82-...",
"languageCode": "tr",
"key": "home.title",
"value": "Hoş Geldiniz"
},
{
"id": "3fa85f64-...",
"languageId": "9cd14a82-...",
"languageCode": "tr",
"key": "home.subtitle",
"value": "Sitemize hoş geldiniz"
}
],
"page": 1,
"pageSize": 10,
"totalCount": 25,
"totalPages": 3
}
}

GET /{key}

Belirli bir çeviri anahtarının değerini getirir.

Query Parametreleri:

ParametreTipAçıklama
languageIdGuidDil ID (zorunlu)

Response — 200 OK:

{
"success": true,
"data": {
"id": "3fa85f64-...",
"languageId": "9cd14a82-...",
"languageCode": "tr",
"key": "home.title",
"value": "Hoş Geldiniz"
}
}

POST /

Yeni çeviri oluşturur.

Request Body:

{
"languageId": "9cd14a82-...",
"key": "contact.email",
"value": "info@ornek.com"
}
AlanTipZorunluAçıklama
languageIdGuidEvetDil ID
keystringEvetÇeviri anahtarı (örn: home.title)
valuestringEvetÇeviri değeri

Response — 201 Created:

{
"success": true,
"data": {
"id": "3fa85f64-...",
"languageId": "9cd14a82-...",
"languageCode": "tr",
"key": "contact.email",
"value": "info@ornek.com"
}
}

PUT /{key}

Çeviri değerini günceller.

Request Body:

{
"languageId": "9cd14a82-...",
"value": "destek@ornek.com"
}
AlanTipZorunluAçıklama
languageIdGuidEvetDil ID
valuestringEvetYeni çeviri değeri

Response — 200 OK:

{
"success": true,
"data": {
"id": "3fa85f64-...",
"languageId": "9cd14a82-...",
"languageCode": "tr",
"key": "contact.email",
"value": "destek@ornek.com"
}
}

POST /set-translation

Çeviriyi oluşturur veya günceller (upsert). Key + LanguageId kombinasyonu varsa günceller, yoksa oluşturur.

Request Body:

{
"key": "contact.email",
"languageId": "9cd14a82-...",
"value": "destek@ornek.com"
}
AlanTipZorunluAçıklama
keystringEvetÇeviri anahtarı
languageIdGuidEvetDil ID
valuestringEvetÇeviri değeri

Response — 200 OK:

{
"success": true,
"data": {
"id": "3fa85f64-...",
"languageId": "9cd14a82-...",
"languageCode": "tr",
"key": "contact.email",
"value": "destek@ornek.com"
}
}

POST /set-translation-multiple

Bir key için tüm dillerde çeviri oluşturur veya günceller. Language code ile dil belirtilir.

Request Body:

{
"key": "home.title",
"translations": {
"tr": "Hoş Geldiniz",
"en": "Welcome",
"de": "Willkommen"
}
}
AlanTipZorunluAçıklama
keystringEvetÇeviri anahtarı
translationsobjectEvetDil koduna göre çeviri değerleri

Response — 200 OK:

{
"success": true,
"data": [
{
"id": "3fa85f64-...",
"languageId": "9cd14a82-...",
"languageCode": "tr",
"key": "home.title",
"value": "Hoş Geldiniz"
},
{
"id": "4bb91e75-...",
"languageId": "1ae23c56-...",
"languageCode": "en",
"key": "home.title",
"value": "Welcome"
}
]
}

DELETE /{key}

Çeviriyi siler (soft delete).

Query Parametreleri:

ParametreTipAçıklama
languageIdGuidDil ID (zorunlu)

Response — 200 OK:

{
"success": true,
"data": "Ceviri silindi"
}

POST /bulk-export

Tüm çevirileri JSON formatında export eder.

Response — 200 OK:

{
"success": true,
"data": {
"translations": {
"home.title": {
"tr": "Hoş Geldiniz",
"en": "Welcome"
},
"home.subtitle": {
"tr": "Sitemize hoş geldiniz",
"en": "Welcome to our site"
},
"contact.email": {
"tr": "info@ornek.com",
"en": "info@example.com"
}
}
}
}

POST /bulk-import

JSON formatında toplu çeviri ekler/günceller.

Request Body:

{
"translations": {
"home.title": {
"tr": "Hoş Geldiniz",
"en": "Welcome"
},
"home.subtitle": {
"tr": "Sitemize hoş geldiniz",
"en": "Welcome to our site"
},
"footer.copyright": {
"tr": "© 2026 Şirket Adı",
"en": "© 2026 Company Name"
}
}
}

Response — 200 OK:

{
"success": true,
"data": "Ceviriler import edildi"
}
bilgi

Mevcut anahtarlar güncellenir, yeni anahtarlar eklenir.


POST /copy-from-language

Bir dildeki tüm çevirileri başka bir dile kopyalar.

Request Body:

{
"sourceLanguageId": "9cd14a82-...",
"targetLanguageId": "1ae23c56-...",
"overwriteExisting": false
}
AlanTipZorunluAçıklama
sourceLanguageIdGuidEvetKaynak dil ID
targetLanguageIdGuidEvetHedef dil ID
overwriteExistingboolHayırMevcut çevirileri overwrite et (false varsayılan)

Response — 200 OK:

{
"success": true,
"data": "5 ceviri kopyalandi"
}

GET /stats

Çeviri istatistiklerini döner.

Response — 200 OK:

{
"success": true,
"data": {
"totalTranslations": 50,
"totalUniqueKeys": 25,
"languages": [
{
"languageId": "9cd14a82-...",
"languageCode": "tr",
"languageName": "Türkçe",
"translationCount": 25,
"percentage": 50
},
{
"languageId": "1ae23c56-...",
"languageCode": "en",
"languageName": "English",
"translationCount": 25,
"percentage": 50
}
]
}
}
AlanTipAçıklama
totalTranslationsintToplam çeviri sayısı
totalUniqueKeysintBenzersiz anahtar sayısı
languagesLanguageTranslationStats[]Dil bazlı istatistikler

Olası Hatalar

KodDurum
401Token eksik veya geçersiz
403Tenant kullanıcısı yetkisi yok veya translations modül erişimi yok
404Çeviri anahtarı bulunamadı
409Aynı dil ve anahtar kombinasyonu zaten mevcut
400Geçersiz istek body veya validasyon hatası