wxrks Figma Plugin
The wxrks plugin for Figma lets you send text from a Figma design file to wxrks for translation, then pull the finished translations back into Figma as new pages — one per target language — without leaving Figma.
💡 Who is this for? This guide is for Account Admins who need to configure the Figma connector in wxrks, and for any Figma user who needs to install the plugin and request translations.
1. Install the plugin in Figma
These steps happen entirely inside Figma:
Log in to your Figma account and open the design file you want to translate.
Open the Plugins menu and select Manage plugins….
Use Search all plugins to find the wxrks plugin.
Click the wxrks plugin, then Save to install it, then Run to open it.
On first run, the plugin asks you to connect it to your wxrks account with an API ID, API Secret, and region:
Generate that pair from the wxrks side: open your avatar menu (top right), go to Profile → Security, and click Generate under API Token. The secret is shown only once, so copy both values into the plugin (or somewhere safe) right away.
Once connected, the plugin's features are available directly inside your Figma file.
2. Configure Figma in wxrks
Before the plugin can create projects, set up at least one Figma configuration in wxrks: go to Integrations → Figma.
Figma Configuration
Click Add Configuration on the Figma Configurations tab:
Give it a Name and pick the Organizational Unit that projects created through this configuration should belong to, then click Create. You can rename it or change its Organizational Unit later from the same list.
Configuration Group
A Configuration Group lets the plugin split one translation request across more than one Organizational Unit at once. Switch to the Configuration Group tab and click Add Configuration:
Give the group a Name and select the Figma Configurations (each tied to its own Organizational Unit) to include.
When a project is created against a Configuration Group, wxrks splits the target languages you request across the group's Organizational Units by each unit's own configured target languages — any requested language left over after that filtering is added to the last Organizational Unit in the group. In practice: if Organizational Unit A's configured languages include French and Organizational Unit B's include German and Spanish, requesting all three from the plugin creates two projects — one for A with French, one for B with German and Spanish — each with the languages relevant to that unit's stakeholders.
3. Create a project from Figma
⚠️ Font compatibility across languages: wxrks does not change the fonts used in your source Figma file — translations are delivered in the same font as the source. If that font doesn't support a target language's characters (Japanese, Chinese, and other non-Latin scripts are the common case), the translated text may not render correctly and will need a manual font adjustment in Figma after delivery. This is expected: the goal is to preserve your original layout, not to substitute fonts automatically. Worth checking font compatibility ahead of time on any multilingual project.
With the plugin running and connected, request a translation directly from Figma by filling in:
Configuration (or Configuration Group) — set up in wxrks per the previous section.
Contact person — someone associated with the Organizational Unit tied to that configuration.
Source language
Target language(s)
Workflows the project should go through.
Project name
Send the request to wxrks, and the project (or projects, if a Configuration Group split it across Organizational Units) is created immediately:
Each page in your Figma file becomes its own work unit for every target language in the wxrks project.
4. Pull translations back into Figma
Once translation is finished, click Fetch translations in the plugin and wait for it to complete:
Each source page you sent gets a new page per target language:
ℹ️ Mixed styling within a text node: wxrks translates and re-applies formatting at the level of the whole text node, not per character. If a text node combines a node-wide style — for example, Bold applied to the entire node — with a character-level override on only part of the text — for example, a different fill color on a single word — only the node-wide style carries over to the translated text; the character-level override does not. This is expected: the plugin round-trips each node's own style, not Figma's internal per-character style ranges, so the translated node keeps the formatting that belongs to it as a whole and drops whatever was layered on top of just a few characters within it.
In the example below, the source text node "Hello, world!" (1) has Bold applied to the entire node (2) — a node-wide style — plus a red fill applied only to the word "world," which Figma tracks separately as a character-level override. That's visible in the Fill panel reporting mixed content (3) and the Selection colors panel listing both FF0000 and FFFFFF (4). After translation, the resulting node "Olá, mundo!" (5) keeps the Bold style, but its Fill panel now shows a single FFFFFF color (6) — the word-level red override was not carried over.
Source text node, before translation.
Typography → Bold — the node-wide style, applied to the whole node.
Fill reporting "Click + to replace mixed content" — Figma's own indicator that the node has more than one fill color.
Selection colors — the two colors actually in use:
FF0000(the "world" override) andFFFFFF(the rest of the node).Translated text node, after translation.
Fill after translation — a single
FFFFFF, confirming theFF0000word-level override did not carry over.
If part of a text node needs distinct styling after translation, reapply it manually in Figma once translations are pulled back, or split that portion into its own text node before requesting translation, so its style travels as that node's own (global) style instead of a character-level override.














