Purpose-built for product strings

Translation management for software teams. Every language, and a variant per client.

Every string your product ships, in one editor. Developers push from the build, AI drafts each language from your glossary, and reviewers who speak it approve before it ships — while any client can have their own wording without you forking a file.

Free for one platform and three languages. No card, no sales call.

kestrel / ios / default 86% done
Key de-DE fr-FR
pay.confirm.titleZahlung bestätigenConfirmer le paiement
pay.confirm.bodyWir belasten Ihr KontoNous débiterons…
wallet.topup.ctaKonto aufladenRecharger le compte
wallet.limit.warnTageslimit erreichtinherited
support.linkHilfe-CenterCentre d’aide
AI draft inherited from default 4,182 keys · 9 languages
What locoloop is

A translation management system for software teams

Your product's strings live in a repository, not a content calendar. locoloop treats them that way: keys sync from your codebase, translations come back as a pull request, and the whole set stays reviewable like any other change.

One grid, every language

Keys down, languages across. Keyboard-first editing that stays fast at ten thousand rows, with full history on every cell and the actor recorded — human, AI or API.

Variants that inherit

Sell the same app to several customers and each will want its own wording somewhere. Copy the default, override the handful of keys that differ, and let the rest read through.

AI that reads your glossary

Machine translation without context produces confident nonsense. Give the model a project brief and a locked glossary, and every draft arrives in your tone with your product names intact.

Built for your pipeline

A REST API, an MCP server for agents, webhooks, and thirty-odd file formats in both directions. No SDK to install and none to keep up to date.

How you use it

Set it up once, in about an hour

After that it runs on its own: keys arrive when someone pushes, drafts appear, reviewers approve, and your build pulls the file it needs.

1

Create your organisation

Sign up with email, GitHub or Google. Name the organisation and pick the language your team writes in.

2

Add a platform

One per shipping surface — iOS, Android, web app, design files. Each gets its own languages, key namespace and a default project.

3

Connect the source

Point locoloop at a branch and a path in GitHub, GitLab or Bitbucket — or pull named text layers straight out of Figma.

4

Translate and pull

AI drafts each language, your reviewers approve, and the build pulls an export — or takes the pull request locoloop opened for it.

Client variants

One default. A copy per customer.

A white-label client wants its own product name and support address. A regulated market demands specific disclosure wording. Forking the whole string file is how that becomes unmaintainable by the third contract.

Override any key, in any language Untouched cells read through to the default, live Each variant gets its own endpoint and export Delete one and its apps fall back on the next pull
How variants work
Default projectsource of truth
wallet.name → “Wallet”
support.link → “help@kestrel.app”
iOS & SwiftUIcustom
wallet.name → “Konto”
support.link → inherited
Androidcustom
wallet.name → “Carteira”
support.link → “ola@caixa.pt”

Two overrides each. The other four thousand strings stay in one place.

AI translation

Context and glossary, per project

Set a project brief once and every request carries it: what the product is, which words must never change, how long a button label can run — and whether this language addresses the reader formally.

“Retail banking app for Germany. Address the user formally. Never translate Kestrel, IBAN or SEPA. Keep button labels under 20 characters.”
WalletKonto
React & i18nextdo not translate

A draft that breaks a glossary rule or a length limit is rejected and retried before it reaches the grid. 100,000 AI words included, or your own key on Business and up.

AI translation →Glossary →
Integrations

Keys sync themselves

New keys appear in the editor seconds after a push. Approved translations come back as a pull request you review like any other change.

GitHub
Push sync · PR back
GitLab
Push sync · MR back
Figma
Text layers as keys
Webhooks
Everything else

Import and export are symmetric — plurals, placeholders, comments and nesting all survive the round trip.

.xcstrings Android XML XLIFF JSON ARB YAML +25 more
All integrations →
Developers

A REST API and an MCP server. Nothing to install.

A two-line curl in your build script has no dependency to update, and six half-maintained client libraries are worse than none. The OpenAPI spec is there if you want to generate your own.

The MCP server lets an agent in Claude or Cursor look up what a key means, propose a translation, or check a term against your glossary — scoped to the permissions of the key you gave it.

Pull a language at build time
curl -sfL -o de.xcstrings \
  -H "Authorization: Bearer $LOCOLOOP_KEY" \
  "$API/projects/kestrel-ios-nordbank/export\
?locale=de-DE&format=xcstrings&state=approved"

→ 200 · 4,182 keys · 41 KB
→ 304 if nothing changed since your last build
Scope

Product strings, and only product strings

locoloop is built for the words inside software. Campaigns, landing pages and long-form content need a different tool, and we would rather say so than sell you one.

Web apps

JSON, YAML, gettext and framework-native formats.

Mobile apps

String catalogs, Android XML, Flutter ARB, with correct plural forms.

Websites

Product surfaces of a site — navigation, forms, checkout, account.

Design files

Figma text layers, so a screen can be reviewed in any language before it ships.

Your team

Invite anyone, scope them tightly

Access can be granted at organisation, platform or project level — so a contractor translating for one client sees that client's project and nothing else.

AdminPeople, billing and every platform.
EditorChanges strings. This is the billed seat.
ReviewerApproves translations. Free and unlimited.
ViewerReads only. Free and unlimited.
Security

Encrypted keys, scoped tokens, EU hosting

Your strings are product surface. We treat them like code.

Encrypted in transit and at rest. Your AI provider keys are stored encrypted and never returned by the API.
Scoped API keys. Read or write, pinned to an organisation, a platform or a single project. Revocable, with last-used timestamps.
Full history. Every revision records who changed it and from what. Revert anything.
EU hosting and GDPR. Data stays in the EU. A DPA is available, and you can export everything and leave at any time.
Enterprise on request. Single sign-on, white labelling and custom domains get built when a customer needs them.

Start from the job you arrived with

The same workspace, five quite different weeks.

Web apps

Pull every locale into the bundle at build time, from the CI you already run.

Mobile apps

Native formats, CLDR plurals, and a gate so an untranslated string never reaches a store.

Websites

Marketing copy where a literal translation costs you the most.

White-label and reseller wording

A variant per customer that overrides what differs and inherits the rest.

Continuous localization

Push on merge, pull the finished files back, gate the release on progress.

Outside translators

Scope an agency to one app and a freelancer to one language.

All use cases →

PricingFree to start. You pay for people who change strings — reviewers and viewers are always free.Guides and helpSet-up walkthroughs, the CI recipes, and the reference for every file format.QuestionsPlurals, formats, translation memory, where your data lives, and how to take it back out.

Import your strings and see it working in ten minutes

Free for one platform and three languages, for as long as you like.

Start free Tour the product