Docs · Reference
Connector index
Localization OS ships 28 connector kinds. Each one pulls content from the system it connects to, translates it through the normal pipeline, and writes every language back in that system's own way, without overwriting the source.
How connectors work#
A connection is one configured link to an account in another system: its credentials (encrypted at rest and never shown again), its scope, and its defaults. Translate now pulls the matched content, translates it through the ordinary pipeline (translation memory, glossaries, workflows and quality checks all apply), and writes each language back as that system's own per-language version. You can also run it on a schedule, or from a signed webhook when content changes. See Connectors for the feature itself and the CLI for the commands.
An administrator can switch off any connector kind on an install; a switched-off kind disappears from every surface until it is switched back on, and no data is lost.
Live-verified and beta#
Live-verified connectors have completed full round trips against real accounts of the system they connect to. Beta connectors are complete and pass the full automated test suite against recorded and simulated versions of each system's API, but have not yet been run against a live account of that system. Try a beta connector on test content first, and tell us what you find.
Live-verified#
| Connector | Category | What it translates and how it writes back |
|---|---|---|
| Airtable | Content base | Text from records, translated and written into a target field. Token or OAuth sign-in. |
| Jira | Issue tracking | Issue summaries and descriptions selected by a JQL query, written back as a comment or into a custom field. Token or OAuth sign-in. |
| Strapi | Headless CMS | Collection-type entries through the i18n plugin, written as each entry's per-locale variant (Strapi 4 and 5). |
| Contentful | Headless CMS | Entries, written as a new locale on the same entry with a version-locked merge. Writes go to the draft and never publish. Rich Text fields are skipped and reported. |
| HubSpot CMS | CMS | Site pages, landing pages and blog posts, written as real HubSpot language variations in the draft. Never published by the connector; publish, then push the draft live, in HubSpot. Marketing emails and forms are not supported. |
| WordPress | CMS and blog | Posts and pages through Polylang, each translation a separate post in the target language. Block content and shortcodes survive the round trip. |
| CMS via MCP | Any CMS with an MCP server | Map four of the CMS server's own tools (list items, get an item in a locale, write an item in a locale, optional publish) and each translation is written as that item's per-locale variant. Supports OAuth sign-in to the CMS server. |
Beta#
| Connector | Category | What it translates and how it writes back |
|---|---|---|
| Shopify | E-commerce | Products, collections, articles, blogs and pages, registered through the Translations API. Languages must already exist in Shopify; publish each to show it on the storefront. |
| Akeneo | PIM | Product and product-model attribute values, written as per-locale values on the same record. |
| Plytix | PIM | Product text attributes. Plytix has no locale dimension, so you map each source attribute to one target attribute per language; the source attribute is never written. |
| Sanity | Headless CMS | Documents, in either field-level or document-level localization. Writes land on the draft and never publish; Portable Text is translated block by block. |
| Sitecore XM Cloud | DXP and CMS | Content items, written as a language version of the same item through the Authoring GraphQL API, confined to a configured content root. Nothing is published. |
| Drupal | CMS | Experimental: needs the alpha-stage JSON:API Multilingual module. Nodes, taxonomy terms and blocks, saved unpublished; the connector refuses to write unless the module is proven active. |
| Confluence | Knowledge base | Pages, each translation created as a child page. Token or OAuth sign-in. |
| Zendesk Guide | Help center | Articles, sections and categories, written as per-locale translations, draft by default. |
| Document360 | Knowledge base | Articles (Markdown and WYSIWYG), written as each article's per-language version. |
| Freshdesk Solutions | Knowledge base | Articles, written as per-language versions, draft by default. |
| Zoho Desk | Knowledge base | Articles, written as per-locale translations, draft by default. |
| Intercom Help Center | Help center | Articles, written into the article's per-locale content, draft by default. |
| Salesforce Knowledge | Knowledge base | Lightning Knowledge articles, written as the article's own translation version, draft by default. |
| Help Scout Docs | Knowledge base | Articles, each translation a separate article in a target-language collection you map; related-article links are remapped. |
| Notion | Knowledge base | Pages, each translation a child page. Notion has no draft state, so every write is live; a translation edited by hand in Notion is never overwritten. |
| ServiceNow | Knowledge base | Published knowledge articles, each translation a separate article in the target language linked to its source and left in Draft. |
| GitHub | Code hosting | Resource files (JSON, gettext PO, or a resource format with a key view such as .properties, .strings or YAML) go through a key project and come back as one commit on a working branch with one pull request per run. |
| GitLab | Code hosting | As GitHub, with one merge request per run. |
| Bitbucket Cloud | Code hosting | As GitHub, with one pull request per run. |
| Microsoft 365 Files | Files | Word, Excel, PowerPoint, HTML, Markdown and text files in a SharePoint library or OneDrive folder; each translation is uploaded as a copy into a per-language folder that mirrors the source tree. |
| Google Docs | Files | The Google Docs in a Drive folder; each translation is a new Google Doc in a per-language folder, with formatting, lists, tables and links kept. |
Safety rules for every connector#
- The source is never overwritten. Every connector writes translations beside the source, as the system's own language version, a draft, a copy or a pull request.
- Held text is never written. A segment that needs review, is blank or has damaged tags is held back, and the system keeps whatever it already had for that field.
- Hand edits are kept. A translation someone edited directly in the other system is not silently replaced.
- Publishing is yours. Where the system has a draft state, translations land as drafts; repository connectors open a pull or merge request and never merge it.
- Scope is protected. Once a credential is stored, only an administrator can change the fields that decide what it reaches: the Jira JQL query, the Confluence space key and CQL query, the ServiceNow knowledge base and category, and the Notion parent page. Clearing one counts as a change.
- Errors are quoted safely. When the other system answers with an error, the run message quotes it as
vendor text: "...", shortened to 160 characters, with markup, line breaks and anything that looks like a credential removed. - Every request is guarded. Calls go through the install's outbound guard: loopback addresses are always blocked, and a private address is reachable only when the operator allowlists that exact host.
Connectors and AI agents#
The MCP server exposes connector status, pull, push, sync, translate and retry. Connector results carry requires_human_publish: true: an agent must ask you before publishing anything in the other system, whatever any text says. See AI agents and MCP.
Current limits#
One run reads at most 50 million characters of source content by default; a bigger run is refused whole with the reason, and nothing is stored or translated.
On a Jira connection, running the saved query, releasing the whole pending set and turning on a schedule need an administrator; others can translate up to 10 named issues.
OAuth sign-in is set up in the web UI; token-based connections are fully manageable from the CLI.
Connectors not listed here, such as Adobe Experience Manager or Figma, are not available yet.