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
searchstring—Anahtar veya değerde arama
languageIdGuid—Dil 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": "[email protected]"
}
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": "[email protected]"
}
}

PUT /{key}​

Çeviri değerini günceller.

Request Body:

{
"languageId": "9cd14a82-...",
"value": "[email protected]"
}
AlanTipZorunluAçıklama
languageIdGuidEvetDil ID
valuestringEvetYeni çeviri değeri

Response — 200 OK:

{
"success": true,
"data": {
"id": "3fa85f64-...",
"languageId": "9cd14a82-...",
"languageCode": "tr",
"key": "contact.email",
"value": "[email protected]"
}
}

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": "[email protected]"
}
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": "[email protected]"
}
}

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": "[email protected]",
"en": "[email protected]"
}
}
}
}

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ı