Content platforms

Connect a content platform

Pull content out of the CMS, store, help center or marketing tool it already lives in, translate it in transglot, and send reviewed translations back where the platform allows it.

A content platform connection reads text out of a system such as Contentful, Shopify or Zendesk Guide, turns each translatable field into a key in your project, and (for two-way platforms) writes the reviewed translations back into that system's own per-language slots.

Each project holds one connection. You set it up on the project's CMS settings page.

Who can do this

Owners and admins of the project. Content platform connections are included on the Starter plan and above; see Plan requirements and pricing.

Two-way and import only

Every connector is one of two kinds, and the CMS page tells you which before you connect.

  • Two-way. transglot imports your source content, and publishes reviewed translations back into the platform. It writes only the target-language slots and never touches your source content.
  • Import only. transglot imports your source content and you translate it, but nothing is written back, because the platform has no per-language place to write to. In place of the publish controls, the CMS page shows a card such as Notion is import only.

For an import-only platform, you take the translations out another way: pull any locale as a localization file over the REST API or the transglot CLI, or publish it as a CDN bundle your app reads at runtime.

Every connector

PlatformDirectionTranslations are written to
ContentfulTwo-wayEach entry's localized field slots
SanityTwo-wayThe target-language keys of field-level locale objects
StoryblokTwo-wayEach story's field-level translation keys
WebflowTwo-wayEach CMS item's secondary-locale variants
StrapiTwo-wayEach document's target-locale localization
DatoCMSTwo-wayEach record's target-locale field slots
HygraphTwo-wayEach entry's target-locale localization
ContentstackTwo-wayEach entry's target-locale version
Kontent.aiTwo-wayEach item's target-language variant
PrismicImport onlyNot written back
WordPressTwo-wayOne translation bundle per post, page or term
DrupalTwo-wayEach node's existing target-language translation
GhostImport onlyNot written back
NotionImport onlyNot written back
ConfluenceImport onlyNot written back
ShopifyTwo-wayShopify translations in each secondary locale
WooCommerceTwo-wayOne translation bundle per product
MagentoTwo-wayEach target store view
BigCommerceImport onlyNot written back
PrestaShopTwo-wayEach target language's field value
Zendesk GuideTwo-wayPer-locale article translations
IntercomTwo-wayEach article's per-locale translated content
FreshdeskTwo-wayPer-language translated articles
Help ScoutImport onlyNot written back
HubSpotImport onlyNot written back
MailchimpImport onlyNot written back
KlaviyoImport onlyNot written back

App Store Connect and Google Play listings connect from the same CMS page. They have their own pages under App stores.

Connect a platform

Prepare the platform

Each connector page lists what to set up first: usually the target languages enabled on the platform side, and a token or key with read access (and write access, for a two-way platform).

Open the CMS page

Open your project's settings and choose CMS. In the CMS list, pick the platform. The page shows a short explanation of how that connector works and what it needs.

Fill in the connection

Enter the address fields and the credential the form asks for, then choose the Content types and Translatable fields to import. For a two-way platform, tick the locales under Publish these locales.

Select Connect. The credential is stored encrypted and never shown again; on later edits, leave it blank to keep the stored one.

Test the connection

Select Test connection. On success the page reports Connection verified., usually followed by the name of the site, space or store it reached.

Run the first sync

Under Sync, select Sync from CMS. The import runs in the background; Last sync updates when it finishes.

The platform is fixed for the life of a connection. To switch platforms, disconnect and connect again.

How imported content becomes keys

Each sync reads the source-language value of every mapped field, for every entry of every selected content type. Each field becomes one key, named after the platform, the content type, the entry and the field (for example wp:posts:42:title). Because the name is stable, a later sync updates the same key instead of creating a duplicate.

  • Empty fields are skipped, so they never create a key.
  • The platform is the source of truth for source text. Edit source text in the platform: the next sync replaces the source text in transglot with what the platform holds.
  • One sync reads up to 5,000 entries in total. Some platforms read fewer per content type; their pages give the limit.

Imported keys are ordinary keys. They go through translation memory, the glossary and quality checks like everything else. If Auto-translate is on in AI translation settings, new and changed source text is translated by Glossa as it arrives. A translation you have edited or reviewed is never overwritten by AI.

Review, then publish back

Only translations in the Reviewed state are published. Review them in the editor or with Approve or flag a translation.

For a two-way platform, publishing sends:

  • only keys this connection imported,
  • only the fields in Translatable fields and the types in Content types,
  • only the locales ticked under Publish these locales. Your source locale is never published.

There are two ways to publish:

  • Publish to CMS under Sync queues a publish straight away.
  • Publish automatically whenever a translation is reviewed queues a publish each time a translation in the project is reviewed.

A publish is idempotent: running it again with nothing new reviewed writes the same values. One publish run writes up to 5,000 entries. If a single entry fails (for example because it was deleted on the platform), the rest of the run continues.

Keep content in sync

transglot does not poll your platform. New and changed content arrives when:

  • you select Sync from CMS, or
  • the platform notifies transglot of a change. Today that covers the WordPress plugin, which sends a change notification when you save, and Contentful, whose CMS page shows an Inbound URL for a signed webhook.

On the first save of a connection, the page shows Your inbound signing secret: shown once. A change notification must be signed with this secret, using the same scheme as transglot's outbound webhooks (Verify signatures). An unsigned or stale request is refused with Invalid signature. If you lose the secret, select Rotate signing secret; the old secret stops working at once.

Disconnect

At the bottom of the CMS page, select the disconnect button (it names your platform, for example Disconnect Contentful), then Yes, disconnect. This removes the stored credential and stops all syncing. Keys already imported stay in the project.

If something goes wrong

On this page