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
| Kaynak | Tablo | Listeleme ve okuma | POST | PATCH | DELETE |
|---|---|---|---|---|---|
translations | translation | /api/v1/translations | |||
workspace_languages | workspace_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
| İşlem | Gereken izin | Ne yapar |
|---|---|---|
i18n.add_language | i18n:manage | Dil ekle |
i18n.remove_language | i18n:manage | Dili kaldır |
i18n.set_default_language | i18n:manage | Varsayılan dili değiştir |
i18n.set_translation | i18n:write | Kaydı ç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
https://app.getera.io/api/v1/workspace_languages/actions/add_language- Asıl adres:
POST /api/v1/actions/i18n.add_language
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
code | string | evet | Dil kodu · İki harf, isteğe bağlı olarak bölgeyle: tr, en, tr-TR. · en çok 12 |
label | string | evet | Ad · en çok 60 |
is_default | boolean | Varsayılan yap · Çevrilmemiş bir kaydın gösterileceği dil. |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
invalid_code | Kod tr, en veya tr-TR biçiminde olmalı. |
already_added | Bu ç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"}'{
"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"{
"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
https://app.getera.io/api/v1/workspace_languages/actions/remove_language- Asıl adres:
POST /api/v1/actions/i18n.remove_language
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
code | string | evet | Dil · en çok 12 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_added | Bu çalışma alanı bu dili kullanmıyor. |
default_protected | Varsayı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"}'{
"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"{
"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
https://app.getera.io/api/v1/workspace_languages/actions/set_default_language- Asıl adres:
POST /api/v1/actions/i18n.set_default_language
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
code | string | evet | Dil · en çok 12 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_added | Bu çalışma alanı bu dili kullanmıyor. |
already_default | Zaten 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"}'{
"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"{
"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
https://app.getera.io/api/v1/translations/actions/set_translation- Asıl adres:
POST /api/v1/actions/i18n.set_translation
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
entity_type | string | evet | Kayıt türü · en çok 60 |
entity_id | uuid | evet | Kayıt |
language_code | string | evet | Dil · en çok 12 |
values | string | evet | Alanlar · Alan adlarına göre anahtarlanmış bir JSON nesnesi. |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_added | Bu çalışma alanı bu dili kullanmıyor. |
invalid_values | Alanlar bir JSON nesnesi olmalı. |
unknown_field | Bu 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"}'{
"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"{
"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/translationsGET /api/v1/translations/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
entity_type | string · text | |||
entity_id | string (uuid) · uuid | |||
language_code | string · text | |||
values | object · jsonb | |||
created_by | string (uuid) · uuid | evet | app_user | |
created_at | string (date-time) · timestamptz | |||
updated_at | string (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_languagesGET /api/v1/workspace_languages/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
code | string · text | |||
label | string · text | |||
is_default | boolean · bool | |||
is_active | boolean · bool | |||
sort_order | integer · int4 | |||
created_at | string (date-time) · timestamptz | |||
updated_at | string (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.
| Olay | Ne olur | Taşıdığı alanlar |
|---|---|---|
i18n.default_language_changed | Çevirisi olmayan kayıtlarda kullanılan varsayılan dil değişti. | from, to |
i18n.language_added | Bir çalışma alanına yeni bir dil eklendi. | code |
i18n.language_removed | Bir dil, çevirileriyle birlikte kaldırıldı. | code |
i18n.translated | Bir kayıt bir dile çevrildi. | entity_type, entity_id, language_code |