Integrations

Translations that flow through your stack

locamorph plugs into the tools you already use. New keys come in from your repo, finished translations go back out as pull requests or exported files, and your team hears about it in Slack.

Diagram: GitHub, GitLab, GitHub Action, CLI, REST API and S3 each connect to locamorph with two lanes, keys flowing in and translations flowing out. Slack and webhooks receive one-way notifications. Each tool links to its overview page. YOUR TOOLS — TWO-WAY NOTIFY — ONE-WAY GitHub GitLab GitHub Action CLI REST API Amazon S3 locamorph editor · AI · review Slack Webhooks
keys & source text in translations out events
Every sync tool imports and exports; only the notification channels are one-way.

Sync your code

new keys go out, finished translations come back as pull requests
GitHub Sync

Connect a repository and locamorph opens a pull request whenever translations change. Review and merge it like any other branch.

Multi-account support Branch targeting Auto-sync on changes Configurable file paths
github.com/Locamorph/web-app/pull/11

chore: update translations #11

Open locamorph-devbot wants to merge 1 commit into main from locamorph/translations-update

locales/de.json +2−0
@@ -12,6 +12,8 @@   "menu": {     "home": "Startseite",+    "projects": "Projekte",+    "collaborators": "Mitarbeiter",     "settings": "Einstellungen"   },

3 more files changed · locales/fr.json, locales/tr.json, locales/es.json

GitHub Action Sync

One workflow file, and sync runs on every push, on a schedule, or when a PR opens. Useful if you'd rather keep the whole flow in CI.

uses: Locamorph/sync-action@v1 with: action: pull-request
GitLab Sync

Connects with a project access token. Exports open a merge request or commit straight to a branch; imports pull new keys from your code.

!47 chore: update translations ✓ merged

Build & deliver

for your own scripts, pipelines, and infrastructure
CLI Sync

Install it from npm, set an API key, and move every locale with one command. Made for scripts, Makefiles, and CI jobs.

$ locamorph download en.json 412 keys de.json 412 keys tr.json 407 keys done in 1.4s
REST API Sync

Plain HTTP endpoints for projects, keys, and translations. Each API key is scoped to the projects and permissions you pick.

GET /v1/projects/:id/translations/de/export PUT /v1/projects/:id/translations/de POST /v1/projects/:id/keys
Amazon S3 Sync

Imports translation files from a bucket, or exports them whenever translations change. Apps can fetch the latest at runtime instead of waiting for a deploy.

s3://locamorph-assets/i18n/{lang}.json last export: 2 min ago · 6 files

Notifications

for the people who aren't in the editor all day
Slack Notify

Choose a channel and pick which events post there: new keys, finished imports, contributor activity.

L
locamorphAPP2:14 PM

12 new keys imported to web-app from GitHub

Webhooks Notify

Sends a POST to your endpoint for each event. Filter by language, add your own headers, and verify payloads with the HMAC signature.

{ "event": "translation.updated", "language": "de", "key": "checkout.title" }

Don’t see your tool?

Tell us what you’d want connected.

Inside the app

Connected in a couple of clicks

Each project has an Integrations tab where everything gets connected and configured. The hosted integrations are set up entirely in the browser.

  • Each card shows its status, so a broken connection doesn't go unnoticed
  • Auto-sync runs exports for you once it's switched on
  • Only members with the integrations permission can connect or change them
app.locamorph.com/project/web-app/integrations
The Integrations tab of a locamorph project. Under Active Integrations, four cards: GitHub and GitLab set to sync, S3 Export, and Slack posting to #localization in the Acme workspace. Each shows a green Connected status and a Configure button.

Build your own integration

The CLI and the GitHub Action run on the same public API you get. Pair it with a webhook for the return direction and your script can do everything they do.

# fetch the German translations as JSON curl https://api.locamorph.com/v1/projects/$ID/translations/de/export \ -H "Authorization: Bearer $LOCAMORPH_API_KEY"

File formats

Works with your file formats

Import and export use the same format handling, so files come back the way they went in.

.json .yaml .xliff .strings iOS strings.xml Android .arb Flutter .properties .csv / .xlsx

Set up your first integration

There's a free plan, and connecting GitHub takes a couple of minutes.