Hi! We’re evaluating the built-in Contentful integration in Crowdin, and I’d love some clarification on its capabilities when dealing with deeply nested content structures.
In our Contentful model, we have:
Simple string fields
Rich text fields that embed other content types
Those embedded entries can include further rich text fields
And at any depth, entries may include JSON fields with translatable values
So the hierarchy can look like:
Rich Text → Embedded Entry → Rich Text → Embedded Entry → JSON Field
Can the native Crowdin integration automatically traverse and extract all translatable strings across this entire nested structure, including strings inside JSON fields?
If not, are there best practices for augmenting the integration (e.g. flattening content or partial middleware) to handle this kind of hierarchy while still using the UI-based flow?
The native integration is designed to handle a variety of content structures, including simple strings and rich text fields. However, when it comes to deeply nested content structures, such as the ones you’ve described, there might be some limitations.
The integration may not automatically import all nested reference fields, especially when they are several layers deep. For JSON fields with translatable values, our system does support JSON file format, but the automatic extraction of strings from deeply nested structures could require additional configuration.
If the native integration does not fully meet your needs, you might consider flattening the content structure or preprocess the content before it’s sent to Crowdin. This could help ensure that all translatable strings are captured and available for localization in the UI-based flow.
In theory, all should be working fine, but the best thing is to actually try connecting it, and in case you face some issue, feel free to contact us by email (support@crowdin.com) so our team can check project logs via our database and say what exactly went wrong.
Thanks so much for the detailed answer — that really helps clarify things!
As a follow-up:
Are there any built-in JSON parsers or configuration options in Crowdin that are specifically suited for handling nested JSON structures like the one I described? Or, if custom handling is required, do you have any recommended documentation or examples for building a custom JSON parser or flattener plugin for Crowdin?
Would really appreciate any pointers or links you can share. Thanks again!
We don’t have a pre-made processor for this specific case, but you’re welcome to create yours using these modules if needed:
Still, I highly recommend trying the integration first. If you experience any issues, reach out directly to our support team since this question is technical and may require some development involvement.
The link and the information provided were very helpful.
And of course we keen to follow your suggestion and try to integrate first before putting any additional efforts on customisation.