Diller API

Diller modülünün tüm işlemleri (4) ve veri modelleri (2): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.

Çalıştığınız ve yayın yaptığınız diller ile çevirileriniz.

Modül kodu i18n · 4 işlem · 2 veri modeli · 4 olay. Bir anahtar ya da token, arkasındaki kişinin bu modülde yapabildiğinden fazlasını asla yapamaz; satır düzeyindeki güvenlik uygulamadakiyle birebir aynıdır. Yetki kapsamları: i18n (hepsi), i18n:read (yalnız okuma) ya da i18n:<yetenek>.

Kaynaklar

KaynakTabloListeleme ve okumaPOSTPATCHDELETE
translationstranslation/api/v1/translations
workspace_languagesworkspace_language/api/v1/workspace_languages

Listeler limit (en çok 200), cursor, order (ör. -created_at), fields ve q alır; diğer her sorgu parametresi bir sütun süzgecidir: ?status=paid, ?total[gte]=100, ?id[in]=a,b, ?x=null.

İşlemler

İşlemGereken izinNe yapar
i18n.add_languagei18n:manageDil ekle
i18n.remove_languagei18n:manageDili kaldır
i18n.set_default_languagei18n:manageVarsayılan dili değiştir
i18n.set_translationi18n:writeKaydı çevir

i18n.add_language

Dil ekle — Bu çalışma alanının içeriği başka bir dilde de tutmasını sağlar.

Gereken izin i18n:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/workspace_languages/actions/add_language
API anahtarı ya da OAuth token · i18n:manage
  • Asıl adres: POST /api/v1/actions/i18n.add_language

Girdi

AlanTürZorunluAçıklama
codestringevetDil kodu · İki harf, isteğe bağlı olarak bölgeyle: tr, en, tr-TR. · en çok 12
labelstringevetAd · en çok 60
is_defaultbooleanVarsayılan yap · Çevrilmemiş bir kaydın gösterileceği dil.

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
invalid_codeKod tr, en veya tr-TR biçiminde olmalı.
already_addedBu çalışma alanı bu dili zaten kullanıyor.

Yayımladığı olaylar: i18n.language_added, i18n.default_language_changed

Neye yazar: workspace_language (insert) — Adds the language to the workspace

curl -X POST https://app.getera.io/api/v1/workspace_languages/actions/add_language \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"code":"Language code","label":"Name"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "i18n.language_added",
    "i18n.default_language_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workspaceLanguages.addLanguage({
  code: "Language code",
  label: "Name"
})
era workspace_languages add_language \
  --code "Language code" \
  --label "Name"
tools/call
{
  "name": "era__i18n__add_language",
  "arguments": {
    "code": "Language code",
    "label": "Name"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde i18n:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 invalid_code, already_added · 429 çok sık istek

i18n.remove_language

Dili kaldır — Bir dili geri çeker ve o dilde yazılanları siler.

Gereken izin i18n:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/workspace_languages/actions/remove_language
API anahtarı ya da OAuth token · i18n:manage
  • Asıl adres: POST /api/v1/actions/i18n.remove_language

Girdi

AlanTürZorunluAçıklama
codestringevetDil · en çok 12

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_addedBu çalışma alanı bu dili kullanmıyor.
default_protectedVarsayılan dil kaldırılamaz.

Yayımladığı olaylar: i18n.language_removed

Neye yazar: workspace_language (delete) — Removes the language; translation (delete) — Deletes everything written in it

curl -X POST https://app.getera.io/api/v1/workspace_languages/actions/remove_language \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"code":"Language"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "i18n.language_removed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workspaceLanguages.removeLanguage({
  code: "Language"
})
era workspace_languages remove_language \
  --code "Language"
tools/call
{
  "name": "era__i18n__remove_language",
  "arguments": {
    "code": "Language"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde i18n:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_added, default_protected · 429 çok sık istek

i18n.set_default_language

Varsayılan dili değiştir — Çevrilmemiş bir kaydın düştüğü dil.

Gereken izin i18n:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/workspace_languages/actions/set_default_language
API anahtarı ya da OAuth token · i18n:manage
  • Asıl adres: POST /api/v1/actions/i18n.set_default_language

Girdi

AlanTürZorunluAçıklama
codestringevetDil · en çok 12

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_addedBu çalışma alanı bu dili kullanmıyor.
already_defaultZaten varsayılan.

Yayımladığı olaylar: i18n.default_language_changed

Neye yazar: workspace_language (update) — Moves the default to this language

curl -X POST https://app.getera.io/api/v1/workspace_languages/actions/set_default_language \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"code":"Language"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "i18n.default_language_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.workspaceLanguages.setDefaultLanguage({
  code: "Language"
})
era workspace_languages set_default_language \
  --code "Language"
tools/call
{
  "name": "era__i18n__set_default_language",
  "arguments": {
    "code": "Language"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde i18n:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_added, already_default · 429 çok sık istek

i18n.set_translation

Kaydı çevir — Bir kaydın çevrilebilir alanlarını tek bir dilde kaydeder.

Gereken izin i18n:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/translations/actions/set_translation
API anahtarı ya da OAuth token · i18n:write
  • Asıl adres: POST /api/v1/actions/i18n.set_translation

Girdi

AlanTürZorunluAçıklama
entity_typestringevetKayıt türü · en çok 60
entity_iduuidevetKayıt
language_codestringevetDil · en çok 12
valuesstringevetAlanlar · Alan adlarına göre anahtarlanmış bir JSON nesnesi.

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_addedBu çalışma alanı bu dili kullanmıyor.
invalid_valuesAlanlar bir JSON nesnesi olmalı.
unknown_fieldBu alan çevrilebilir olarak tanımlanmamış.

Yayımladığı olaylar: i18n.translated

Neye yazar: translation (update) — Writes the translated fields

curl -X POST https://app.getera.io/api/v1/translations/actions/set_translation \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"entity_type":"Kind of record","entity_id":"ENTITY_ID","language_code":"Language","values":"Fields"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "i18n.translated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.translations.setTranslation({
  entity_type: "Kind of record",
  entity_id: "ENTITY_ID",
  language_code: "Language",
  values: "Fields"
})
era translations set_translation \
  --entity-type "Kind of record" \
  --entity-id "ENTITY_ID" \
  --language-code "Language" \
  --values "Fields"
tools/call
{
  "name": "era__i18n__set_translation",
  "arguments": {
    "entity_type": "Kind of record",
    "entity_id": "ENTITY_ID",
    "language_code": "Language",
    "values": "Fields"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde i18n:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_added, invalid_values, unknown_field · 429 çok sık istek

Veri modelleri

Translation

Tablo translation · Kaynak translations

  • GET /api/v1/translations
  • GET /api/v1/translations/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
entity_typestring · text
entity_idstring (uuid) · uuid
language_codestring · text
valuesobject · jsonb
created_bystring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: workspace_id, entity_type, entity_id, language_code

Denetimler:

  • CHECK ((jsonb_typeof("values") = 'object'::text))

WorkspaceLanguage

Tablo workspace_language · Kaynak workspace_languages

  • GET /api/v1/workspace_languages
  • GET /api/v1/workspace_languages/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
codestring · text
labelstring · text
is_defaultboolean · bool
is_activeboolean · bool
sort_orderinteger · int4
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: workspace_id, code

Denetimler:

  • CHECK ((code ~ '^[a-z]{2}(-[A-Za-z0-9]{2,8})?$'::text))

Olaylar

İş akışları ve webhook'lar bu olaylara tepki verir.

OlayNe olurTaşıdığı alanlar
i18n.default_language_changedÇevirisi olmayan kayıtlarda kullanılan varsayılan dil değişti.from, to
i18n.language_addedBir çalışma alanına yeni bir dil eklendi.code
i18n.language_removedBir dil, çevirileriyle birlikte kaldırıldı.code
i18n.translatedBir kayıt bir dile çevrildi.entity_type, entity_id, language_code
Bu sayfa yardımcı oldu mu?