Every text layer you upload has a key. The key is a stable identifier that ties a TextNode in Figma to its string in Localazy. It is what lets the plugin push a layer’s text up for translation and later drop the translated text back into the same TextNode.
This page explains how the plugin chooses a key and how keys behave when you copy or duplicate your designs.
How the plugin keys your layers #️⃣
There are two ways to key a TextNode, controlled by the Use node name as source key setting on the Settings tab.
Figma internal TextNode id (default). The plugin assigns and tracks each TextNode for you. You do not have to name anything or worry about collisions, because every TextNode is treated as its own unique string. This is the recommended mode for most designs.
Node name as source key. The TextNode name becomes the key, so renaming a layer re-keys its string. Use this when your designs are prepared so that layer names match the source keys already used in your code. In this mode you manage the names yourself, and two layers with the same name share one key.
The rest of this page describes the default (TextNode id) mode. In node-name mode, layer names already travel with duplicated layers, so nothing below applies differently.
Copying and duplicating layers #️⃣
In the default mode, each TextNode’s key travels with the layer when you copy it. The plugin stores the key in the layer’s private plugin data, and Figma carries that data onto any copy. So when you:
- duplicate a frame or a page, every
TextNodein the copy keeps its original key, and - copy and paste a
TextNodewithin the same file, the paste keeps the key too.
This happens automatically. The key is invisible and there is nothing to enable, name, or clean up.
Uploading #️⃣
Because copies share the original’s key, the plugin uploads each string once. If a frame and three duplicates of it are all in scope, the shared string is uploaded a single time rather than four times.
When several layers share a key, the plugin keeps the original TextNode’s content and context: its value, its backlink into Figma, its frame name, and its context screenshots. That keeps the translator context pointing at the layer you designed from rather than a copy.
Downloading #️⃣
A key can correspond to more than one TextNode (the original plus its copies). When you download translations, the plugin fills in every layer that shares the key. Duplicate a translated frame, download, and all of the copies update.
For this reason the download result reports two different counts:
- string(s) analyzed in total is how many translated keys were downloaded, and
- node(s) updated successfully is how many layers in Figma were written.
When copies exist, the number of nodes updated can be higher than the number of strings analyzed. Both figures are correct, because one key wrote into several layers.
Existing files and older layers #️⃣
The plugin writes a layer’s key the first time it touches the TextNode, on the next upload or download. Keys you have already uploaded keep matching, because the plugin adopts each layer’s current identity as its key. No migration step is needed, so just upload or download as usual.
Copies you made before the plugin had seen a layer already have separate identities and stay separate. Any TextNode the plugin has touched at least once keeps its key through later copying and duplication.
Cross-file copies are outside the scope of this feature. If you paste a TextNode into a different Figma file, treat it as a fresh layer and upload it from there.


