Internationalization
Field-level translations, language fallback and translated slugs — same wire shape as Storyblok so the SDK handles it automatically.
How it works
Mark a field translatable: true in the component schema. In the story, the default language value lives under the field name (e.g. title). Each additional language is stored under title__i18n__<code>. This doc itself uses the mechanism — every translatable field on the page component is co-located with its German twin.
component.schema.ts
{
title: { type: 'text', translatable: true, required: true },
body: { type: 'richtext', translatable: true },
language: { type: 'option', source: 'internal_languages' },
}fetch.ts
const { data } = await storyblokApi.get('cdn/stories/home', {
version: 'published',
language: 'de',
})
// data.story.content.title already resolved to the German translation,
// with automatic fallback to the default language when missing.