For UX writers, content designers, PMs, and their teams
Your product copy shouldn’t live in four places.
Strings, context, and translations in one workspace — pulled into Figma by designers, exported as locale JSON by developers. Same words, everywhere.
Checkout Web App
Viewing locale: en
checkout.button.submitactivePlace order
checkout.empty.titledraftYour cart is empty
For UX writers and content designers
Write the words. Keep the why.
A button label is only part of the job. Keep the intent, the context, and the person to ask alongside the string, so your team can understand the decision behind it.
- Give every string its context
- Explain where the copy appears, what the user is doing, and why you chose those words.
- Make the right words easy to find
- Tag strings by flow or component. Add an ownership note in the description so teammates know who to ask.
- Keep languages connected
- Keep source copy and translations attached to the same key, with a review status for each translation.
String key
checkout.button.submitPlace order
Context / description
Final checkout action, after the customer has reviewed the total. “Place order” confirms a purchase; avoid the generic “Submit”.
Owner: Maya, checkout content. Check wording changes with her before the next release.
Tags
- checkout
- button
- purchase
One key, three languages
en
Place order
fr
Passer la commande
es
Realizar pedido
Built for developers
From product copy to your codebase.
Start with your existing JSON: import it in the workspace, keep your keys, and let the team edit copy with context. Export a flat catalog per locale or fetch catalogs during your server or build process.
Example catalog
GET /api/projects/{projectId}/strings?locale=en
Authorization: Bearer <API_KEY>
{
"checkout.button.submit": "Place order",
"checkout.empty.title": "Your cart is empty"
}Use a project API key in your server or build process. Keep it out of browser code.
Copycat UI for Figma
Your product copy, right inside Figma.
Use your product copy in Figma without pasting it layer by layer.
Connect your project
Run the plugin in Figma and enter a one-time connection code from your project’s Integrations page.
Insert the right words
Choose a source string or approved translation and apply it to selected text layers.
Refresh linked copy
Keep text layers linked to their strings so you can refresh them with updated copy.
Which version of that button text is final?
One version in Figma. Another in a Google Doc. A correction buried in Slack, and an older string in the PR. Give writers, designers, PMs, and developers one place to find and update the words your product uses.
Keep your JSON. Give the whole team a workspace.
Translation platforms help teams manage localization at scale. Copycat UI is built for teams whose bottleneck isn’t the translation pipeline — it’s agreeing on the English string in the first place. Give writers, designers, and developers one place to settle the wording, then carry it into Figma and locale JSON.
Workflow
A compact process for copy that changes with the product.
Your team writes the words and reviews each translation. Copycat UI keeps that work together, from the first draft to delivery.
- 1Create a workspace and project for your product.
- 2Import existing JSON or add source strings with context and tags.
- 3Write and review translations with your team, keeping control of tone and meaning.
- 4Refresh linked Figma text and deliver locale JSON through exports or the API.
Before you connect your product
How do strings get in, and how do we ship them?
Add and edit strings in the web workspace, or import JSON catalogs. Export locale files for your repository, or fetch them from the read-only API in a server or CI build step. There is no dedicated sync CLI or automatic two-way repo sync.
Flat or nested JSON? Which frameworks?
Import flat or nested JSON; nested keys are flattened to dot notation. Exports are flat key-to-string JSON. Connect them to your own i18next, react-intl, or other translation setup; Copycat UI does not provide framework-specific adapters.
What about variables, plurals, and ICU messages?
String values can contain your message syntax. Interpolation and plural selection happen in your app’s translation library. Copycat UI does not parse or validate ICU messages, check placeholder parity, or provide a dedicated plural editor.
Are translations generated automatically?
Your team supplies translations by editing or importing them, then tracks them as missing, draft, reviewed, or approved. You control the wording and tone; built-in machine translation is not available.
How do review, roles, and approvals work?
Source strings have draft, active, and deprecated statuses. Translations have separate review statuses. Workspace access includes member, developer, admin, and owner levels. JSON exports, the catalog API, and Figma publish only approved translations. JSON and API catalogs fall back to source text when an approved translation is unavailable; Figma leaves existing layer text unchanged.
Can we browse or restore earlier versions?
Export locale catalogs and keep them in version control for release diffs and rollback. Copycat UI does not yet offer browsable version history or a restore workflow within the workspace.
Give your product copy one place to live.
Bring your strings together, keep their context, and give your team the same words to work from.