The Contentful integration lets you sync your content and completed translations between Contentful and Transifex. Use this integration so that your localization team can leverage most of Transifex's services while translating your Contentful space.
Configuring your Contentful space
You'll need to configure your Contentful space to support multiple languages and enable localization. By default, it only supports one language, so you must configure it to support additional languages.
Enable Locales
📝Note: You will need to have Administrator Rights.
To enable additional locales, you will need to log into your Contentful space, then:
Select the required locale from the drop-down menu in the Select a locale field.
If your content type has required fields, select the Allow empty fields checkbox. Otherwise, your editors cannot publish content without adding a translation for the required field.
💡Tip: Select a fallback language to be displayed if a translation in the selected locale is unavailable.
When you're satisfied, you can click the Save button. Your locale will be added to your space.
You can repeat the same process for all target languages you want to translate your content into.
Enable Fields For Locales
Once locales are added to your space, the next step is to enable them for fields.
📝Note: The Contentful integration supports only field-level localization.
To enable locales for fields:
Login to your Contentful space and go to the Content model tab.
Go to the required content type and open it. The content type editor is displayed.
Click Settings for all fields you want to localize.
Under the "Settings" tab, select the Enable localization of this field checkbox under the "Field options" area.
Click Confirm to save changes.
Click Save to apply changes to the content type.
📝Note: All content can be transferred in Transifex if the respective entry contains localizable fields. If all fields of an entry are non-localizable, no resources will be created/updated in Transifex. You will see a log entry with the CTF_ prefix in the activity log.
Installing the Contentful integration
💡Tip: To connect your Contentful and Transifex accounts, you must be a Transifex project maintainer or administrator.
Follow the steps described below to connect your Contentful and Transifex accounts:
Navigate to "https://app.transifex.com/ "
Log in to your Transifex account. This will take you to the Transifex Dashboard.
Go to your project Settings > Integrations > Contentful> Install
You will be redirected to the integration's authorization page, where:
First, it's necessary to give permission for the integration to perform modifications in Transifex for you.
Next, you'll need to authorize the integration in your Contentful account. To do this, select the Authorize button and log into your Contentful account (if you still need to do so).
Click on Authorize Transifex Integration.
Click again on the Authorize button. You are now ready to link a space.
Linking a Transifex project with a Contentful space
Click on the Link your space button. This will launch the Contentful Integration wizard to facilitate the setup. In the first step, select the Contentful space you wish to sync with your project.
If you have configured multiple environments in your Contentful space, you can select any of them and link them with a Transifex project after you have chosen a space. Linking one environment and linking another in the same project does not affect the resources already synced in Transifex. If you want to change environments, it's best that you delete first all previously synced resources.
Additionally, suppose the Transifex project's source language matches one of the locales configured for the selected Contentful space and environment. In that case, the matched locale will be preselected as an option in the relevant drop-down list.
Click Next to choose the Contentful content you want to sync with Transifex.
📝Note: The content currently synced between Contentful and Transifex includes Entries and Assets based on the respective Content Types and their linked Field Types. The supported field types are Text, Rich Text, and Reference. The later field type is only available with a Contentful subscription in the Enterprise plan.
⚠️Warning: Transifex does not currently support aliases for environments, so you must provide a direct link to the environment you want to use.
An Entry may or may not contain one or more Assets.
Their number will be listed next to each entry for information purposes.
📝Note: An Asset always has a title and a description apart from the binary content (e.g., a picture, a video, etc.). The Contentful integration only pulls the title and description for translation, not the binary content!
When you identify Contentful content you want to sync with your Transifex project, mark it by checking the box on the left of the Entry title.
Any selections you have made are persistent, so you can keep searching and navigating on the displayed content list without losing your selections.
You can learn more about the functionality of this wizard's step by checking the respective section titled "Choose content for translation" below.
When you are done selecting your content, click Next to move to the final step of the setup wizard. This is where you will define how the syncing between Transifex and Contentful will happen (more details here).
When you finish this setup step, click the Save & Sync button to sync content from Contentful to Transifex.
📝Note: Some steps described above are also accessible when updating the integration settings. You can jump to the Syncing content from Contentful to Transifex and Managing sync settings sections for more details.
Choosing Content for Translation
In this subsection, we expand on the full functionality provided in the wizard's content selection step.
In this step, you will see information about Contentful content found in the space you have linked to the specific Transifex project.
For each entry in the list, you can see some additional information depending on the sync status for that content:
The title of the entry. If there is no title, "Untitled" is used instead.
Checked if the content is selected to sync between Contentful and Transifex; unchecked otherwise.
📝Note: If an Entry contains References and it is selected, the respective References will be selected automatically.
The Content-Type that each entry is based on
The space environment that the entry was found in
The number of Assets contained in the respective entry
The content status in Contentful (draft, published, archived).
If already published content is changed in Contentful, its status will be "draft" in the integration.
A Last Contentful update field holding the date of the last update of the content in Contentful
📝Note: If you uncheck a Reference but keep the parent Entry checked, then the Reference will not be synced in Transifex, yet its parent will continue to be in sync. If, on the other hand, you uncheck the parent Entry and keep the Reference checked, the Reference will continue to be synced in Transifex, whereas its parent will not.
⚠️Warning: If you uncheck an already synced Entry, the associated resource will no longer be synced with the corresponding Entry in Contentful.
Filtering content
To filter the content displayed in the list, choose the drop-down to select the content type and type in the search box:
Filtering is available for Entries only.
The content list can be filtered by pressing the Enter key or the Search button.
The search will look at the title and content for entries.
You can use double quotes around the search terms to make searching more focused.
To clear out a search term, delete it and press the Enter key or Search button (alternatively, you can use the X icon in the search area.)
Items in the list have pagination.
You can change the page size using the drop-down displayed under the content list and navigate through the different pages using the left and right arrows located in the same area under the content list.
Managing import content options
During the final step of the configuration wizard, labeled "Content Synchronization options," you will find the following import content options to select from:
Import newly published content automatically
You can opt for automatically importing any new content created in Contentful, provided that:
The content is published in Contentful.
The content contains localizable fields.
Import updated published content automatically
You can opt to automatically bring any source updates in Contentful for content already synced with Transifex as long as it has been published in Contentful.
If the updated content contains references to other Entries or Assets, these will also be imported.
Fetch Initial Translations from Contentful
All Contentful content synced for the first time with Transifex will also sync any existing translations into the newly created resource as long as the option "Fetch initial translations from Contentful" is enabled.
When the option is unchecked:
We always ignore translations found on Contentful and never send them to Transifex.
When the option is checked:
Every time content is synced from Contentful to Transifex, the integration checks each resource/language separately:
For empty resources (zero translations): Translated content is taken from Contentful and sent to Transifex
For resources with existing translations: Transifex is considered the source of truth, and Contentful translations are ignored
Additional considerations:
This behavior applies to content detected during both initial setup and subsequent syncs
For content with existing Transifex resources:
Syncing actions will not include translations updated on Contentful
If translations exist in Transifex, Contentful translations are ignored
A warning will appear in the activity logs for affected tasks
Exporting localized content options
Syncing localized content back to Contentful can work automatically per entry in each target language. The integration offers three possible options for automatically sending localized content back to Contentful:
100% translated or updated (for 100% translated)
100% reviewed or updated (for 100% reviewed)
100% proofread or updated (for 100% proofread)
Depending on the setting selection, this will apply to individual Entries as they are localized in each target language. For example, once an Entry is fully translated into French, the French entry will be sent to Contentful. The Chinese translation of the article must be fully translated to be sent to Contentful.
All the sync options are triggered when the language reaches 100%. This means that if, for example, an already reviewed language is edited, the updated reviewed translation will be sent to Contentful automatically.
Translating content in Transifex
Each entry synced from Contentful to Transifex will create a resource following the name of the Contentful title.
For example, if you have two blog entries in Contentful titled "What I've learned so far" and "Few tips for installing the app", syncing them to Transifex via the integration, you will get two resources with the same names:
"What I've learned so far"
"Few tips for installing the app"
The resource name is constructed using the prefix CTF_entry_, followed by the Entry ID if the entry does not have a title. The resource slug is always the Entry ID, preceded by the same prefix.
📝Note: All fields contained in each entry, as long as they are of type Text, Rich Text, Reference, or Asset, will automatically form the source strings in each Transifex resource.
Regarding assets/references, separate resources are created at Transifex.
For example, if we have a parent entry A with one reference entry and one asset
Three resources will be created into Transifex:
One for the parent entry
One for the reference entry
One for asset
In the case of Rich Text, these fields will result in separate strings. If a Rich Text field contains References, each Reference will also be imported into Transifex as a separate resource.
Once your content is inside Transifex, you can start translating it or manage the localization process as appropriate.
📝Note: In case an Entry/Reference is set with flag localized=Off in all of their fields, then when fetching to TX:
You will see the entry with the CTF_ prefix in the Logs UI screen.
In the 'Manage content' pop-up screen, you will see the title of the entry/reference (coming from Contentful).
In the TX resources page, the entry/reference won't exist.
Syncing content from Contentful to Transifex
You can import content from Contentful in two ways:
Manually
Syncing content from Contentful to Transifex happens upon saving or updating the integration settings in the integration's UI (Project Settings → Integrations → Contentful → Manage).
When a syncing process is initiated, you will be able to see that syncing is in progress in the activity log. This process could take some time, depending on the number and size of the syncing files.
If you want to add new content for syncing or remove existing content, click Manage Content in the project integration's UI to show the Integration Wizard. Check all the new content you want to sync. Then click the Save & Sync button to start a new sync process.
Automatically
You can select to automatically import any newly published entries or any updates made to already synced published entries from Contentful. Click on the ellipsis in the integration's UI and select Edit Settings. You can then choose one or both of the following options as described here:
Important Notes About Contentful Integration
Content Updates
When editing existing content in Contentful, any changes you make will not automatically sync with Transifex if you haven't selected automatic updates or the content is still in draft mode. In these cases, you'll need to perform a manual sync through the integration wizard: navigate to Manage content, de-select the content item in the wizard, click "Save & Sync", then re-select it and click "Save & Sync" again.
HTML Translation integrations
It's important to note that this integration works on top of the HTML file format, which is inherently unstructured. When syncing translations from Contentful to Transifex, please pay close attention to any differences in structure and the order of translations, as these variations might affect how translations map to their corresponding strings. For more detailed information about this process, please take a look at the documentation on Translating HTML Content and the HTML file type.
Working with Asset Media
When working with Assets (media), whether it's part of an Entry or Reference, Contentful allows you to create both source and translation texts for the asset. However, only the resource for the source text (along with its respective translation) will be synced with Transifex.
Pulling References from Contentful
When pulling references from Contentful, whether they're entries or assets (media), remember there's a maximum depth limit for nested references. The system can only process references up to 10 levels deep (e.g., ref1 -> ref2 -> ... ref10). Transifex will ignore references beyond this depth, and no warning will be displayed.
Two entries sharing the same title
Finally, when working with entries in Contentful that share the same title (even if they have different content types and are localizable), you'll notice that these will appear as identical entries in the activity logs.
Syncing content manually from Transifex to Contentful
There is an option to send localized content to Contentful manually without waiting for a resource to be 100% translated or reviewed (Project Settings → Integrations → Contentful → Manage → (ellipsis) Manual Sync).
By clicking on Manual Sync, a modal will appear requesting the threshold localization percentage that Transifex will check on all your project's resources.
All target languages localized above that threshold will be synced with Contentful using the Sync content options you have set up for the integration. For example, suppose you had set up Contentful to sync 100% translated resources. In that case, the manual process will identify all target languages whose translation percentage is equal to or above the threshold percentage you set on the modal and sync all content back to Contentful.
📝Note: Syncing less than 100% translated content to Contentful might result in parts of the content being in the original language for that entry. This issue will be eliminated when that content is fully translated in Transifex and synced back to Contentful.
Managing sync settings
As your project evolves, you may want to change the workflow for importing source content from Contentful and exporting localized content back to Contentful.
To edit your options:
Navigate to the project's settings -> integrations tab.
Click on the Manage link under the Contentful section to load the integration's UI
Click on the ellipsis and select Edit Settings.
📝Note: While the interface used for editing is the same as that used during the initial setup, you can only change options related to automatically synchronizing content with Contentful.
Activity log
To check the synchronization results, either from Transifex to Contentful or from Contentful to Transifex, you must load the integration's UI, where all events that happened are logged in chronological order (the most recent ones appear first).
These logs allow you to identify any potential issues with particular Entries that failed to sync or contained Assets with no localizable content. Go to your project settings > integrations tab, and click on the Manage link under the Contentful section to load the integration's UI.
Uninstalling the Contentful integration
To uninstall the Contentful integration from your project, you have to follow the steps below:
Go to your project settings > integrations, click the three dots, and select Remove integration.
Click on Remove to confirm the action.
💡Tip
Looking for more help? Get support from our Transifex Community Forum!
Find answers or post to get help from Transifex Support and our Community.