# Çevirileri kaydetme, gerekirse pazar bazında

> translatableResource ile çevrilebilir içeriği ve digest’leri okuyun, çevirileri translationsRegister ile, isterseniz tek bir pazar için kaydedin.

Sayfa: https://lintelagency.com/tr/kaynaklar/graphql/ceviri-kaydetme

## Kısaca

Bir ürünü, koleksiyonu ya da başka bir kaydı çevirmek için translatableResource ile çevrilebilir içeriğini sorgulayın: her key, değeri ve bir digest. Ardından her alan için locale, key, çevrilmiş değer ve translatableContentDigest ile translationsRegister’ı çağırın. Bir çeviriyi yalnızca bir pazarda göstermek için marketId ekleyin, örneğin İsviçre’ye özel Almanca bir ifade. Dilin mağazaya eklenmiş olması gerekir.

## Bilgiler

- **API:** Admin GraphQL API
- **İşlemler:** translatableResource, translationsRegister
- **Erişim yetkileri:** read_translations, write_translations
- **API sürümü:** 2026-10
- **Son kontrol:** 2 Kasım 2026

## Nasıl kullanılır

1. TranslatableProduct’ı kayıt ID’siyle gönderin ve çevireceğiniz her key’in digest’ini saklayın.
2. TranslateProduct’ı her dil ve key için, o key’in digest’iyle birlikte bir girdiyle gönderin.
3. Yalnızca bir pazarda geçerli olacak girdilere marketId ekleyin; marketId olmayanlar her pazarda geçerlidir.
4. Orijinal metin değişince digest’i de değişir ve çeviri güncelliğini yitirmiş (outdated) olarak işaretlenir; yeni digest’le tekrar kaydedin.

## Kod

### translatable-resource.graphql

```graphql
query TranslatableProduct($resourceId: ID!) {
  translatableResource(resourceId: $resourceId) {
    resourceId
    translatableContent {
      key
      value
      digest
      locale
    }
  }
}
```

### translatable-resource.variables.json

```json
{
  "resourceId": "gid://shopify/Product/1234567890"
}
```

### translatable-resource.response.json

```json
{
  "data": {
    "translatableResource": {
      "resourceId": "gid://shopify/Product/1234567890",
      "translatableContent": [
        {"key": "title", "value": "Linen shirt", "digest": "<digest of title>", "locale": "en"},
        {"key": "body_html", "value": "<p>Relaxed fit, washed linen.</p>", "digest": "<digest of body_html>", "locale": "en"}
      ]
    }
  }
}
```

### translations-register.graphql

```graphql
mutation TranslateProduct($resourceId: ID!, $translations: [TranslationInput!]!) {
  translationsRegister(resourceId: $resourceId, translations: $translations) {
    translations {
      key
      locale
      value
      market {
        id
      }
    }
    userErrors {
      code
      field
      message
    }
  }
}
```

### translations-register.variables.json

```json
{
  "resourceId": "gid://shopify/Product/1234567890",
  "translations": [
    {
      "locale": "tr",
      "key": "title",
      "value": "Keten gömlek",
      "translatableContentDigest": "<digest of title>"
    },
    {
      "locale": "de",
      "key": "title",
      "value": "Leinenhemd für die Schweiz",
      "translatableContentDigest": "<digest of title>",
      "marketId": "gid://shopify/Market/1234567890"
    }
  ]
}
```

### translations-register.response.json

```json
{
  "data": {
    "translationsRegister": {
      "translations": [
        {"key": "title", "locale": "tr", "value": "Keten gömlek", "market": null},
        {"key": "title", "locale": "de", "value": "Leinenhemd für die Schweiz", "market": {"id": "gid://shopify/Market/1234567890"}}
      ],
      "userErrors": []
    }
  }
}
```

## Sınırlar ve özel durumlar

- Dili yayında olan bir çeviri, alıcılara hemen görünür.
- Key’ler kayıt tipine göre değişir: ürünlerde örneğin title, body_html, handle ve meta_title.
- Tüm ürünleri, koleksiyonları ya da diğer tipleri sayfalamak için resourceType ile translatableResources’ı kullanın.
- Çevirileri kaldırmak için translationsRemove’u kullanın.

## Sorular

### Shopify’a API ile çeviri nasıl eklenir?

Digest’leri translatableResource ile okuyun, ardından her alan için locale, key, value ve translatableContentDigest ile translationsRegister gönderin.

### Translatable content digest nedir?

Orijinal metnin bir özetidir (hash). Çeviriyi, çevrildiği metnin o sürümüne bağlar; böylece Shopify orijinal değiştiğinde çeviriyi güncelliğini yitirmiş olarak işaretleyebilir.

### Pazar bazında farklı çeviriler kullanabilir miyim?

Evet. Çeviri girdisine marketId ekleyin. O pazardaki alıcılar bu çeviriyi görür; diğer pazarlar genel çeviriyi kullanmaya devam eder.

## Shopify belgeleri

- [translationsRegister](https://shopify.dev/docs/api/admin-graphql/latest/mutations/translationsRegister)
- [Manage translated content](https://shopify.dev/docs/apps/build/markets/manage-translated-content)

## İlgili içerikler

- [Tek bir Shopify mağazasından birçok para biriminde satış](https://lintelagency.com/tr/blog/shopify-markets-ile-coklu-para-birimi)
- [Shopify temasını ve mağaza içeriğini çevirmek](https://lintelagency.com/tr/blog/shopify-tema-cevirisi)
- [Arapça satış: Shopify’da sağdan sola sayfa düzeni](https://lintelagency.com/tr/blog/shopifyda-arapca-satis-ve-sagdan-sola-duzen)

Lisans: MIT. Kendi mağazanızda da müşteri işlerinizde de ücretsiz kullanabilirsiniz.
