Almost EVERYONE who tried headless systems said they saw benefits. Download the state of CMS now!

Storyblok now on AWS Marketplace: Read more

O’Reilly Report: Decoupled Applications and Composable Web Architectures - Download Now

Empower your teams & get a 582% ROI: See Storyblok's CMS in action

Skip to main content

Comparison between Localization options

Developers
Fortune Ikechi

In this article, we will be comparing localization options, folder, field, and space level translations available on Storyblok. We will cover why, when, and how to use these options.

Section titled Why and When to use Field or Folder level Translation. Why and When to use Field or Folder level Translation.

In order to make your Storyblok app available in multi-languages, you can translate your content at the folder, field, or space level, and this decision should be influenced by your content structure.

Section titled When to use field level translation When to use field level translation

If the structure of your content is similar in all languages, then field level translation is your go-to but if the structure of your content is different across all your supported languages, then you should use Folder level translation.

Let’s say you have a website that supports German and French languages, field-level translation is perfect for this, if the components and structure are the same but if you want to change the order of the components and contents to use different layouts you need to opt for folder level translation.

HINT:

Languages can be published individually or together with field-level translation by navigating to your settings tab in languages as shown here.

Section titled Why use field-level translation Why use field-level translation

Using field-level translation includes having fewer contents to manage, as Storyblok can dynamically return contents in your desired language. Each translatable field will be stored in the content tree as a separate stand-alone property with a suffix of the language it belongs to.

Section titled Why use folder level translation Why use folder level translation

Folder level translation uses one content tree per language (one for English, one for German, and so on), and this is a great choice if you have separate teams or special needs for different markets as this will enable you to be able to completely customize the structure and order of the components of the story.

Folder level translation should be your option also if you want to use the different subpages and if the content of your space is in other regions.

NOTE:

You can also manage the access level of each folder with some permissions.

Storyblok has an app, Dimensions App. It makes managing multi-language setup easier. With the dimension app, you can:

  • Link content items of different folders together
  • Merge content items from one dimension to another
  • Overwrite content items from one dimension to another
  • Open alternative versions with one click.

Section titled When and Why use Space level translation When and Why use Space level translation

Space level translation basically involves using multi spaces to manage your content for different languages.

You should opt for Space level translation if your project is very huge, and you treat your content in different languages as different projects (meaning you have different teams, components, content, etc). Therefore, you can have Space-A for your content in Japanese and Space B for your content in Dutch and if there’s a need to share components, story, schema, etc, you can use the Storyblok CLI and management API.

HINT:

Read more on multi-space setup with Storyblok CLI here.

Section titled Conclusion Conclusion

We just went over the different ways to translate the contents of your Storyblok applications (Field level, folder level, and Space level translations), and why and when to use either of them. There’s a fourth option: mixing folder and field-level translation. Note that you can only mix folder and field level translations with the V2 API approach for your project. In the case of folder level, you use the path /folder_lang/story and for field level, you use the parameter story?lang=de.