Figma Plugin

Accelerate your localization workflow & go to market faster by bringing your Product, Design & Localization teams closer with Figma

Jacob avatar
Written by Jacob
Updated over a week ago

Speed up your localization workflow and go to market faster by bringing your Product, Design, and Localization teams closer with our Figma plugin. Easily send your design texts from Figma to Transifex to get them translated. Pull the translated texts back to Figma, and check for any i18n or translation issues before coding begins. Let your designers preview the localized designs and immediately make necessary adjustments so you don't have to worry about delays in refactoring localization bugs. Boost collaboration between your designers and translators. Deliver new digital experiences faster.

📝 Note: The integration is available on the Starter plan and up.


Connecting Figma with Transifex

Below is a quick video showcasing the process.

  1. Please ensure you have access to at least one organization, project, and resource in Transifex.

  2. Install the Transifex plugin in Figma using this link.

  3. Open your Figma file.

  4. Go to Plugins and select “Transifex Figma Plugin.”

  5. Add your Transifex credentials (API Token). To generate an API Token, you can just follow the instructions included here. After generating the token, copy and paste it into the related input box and click “Connect.”

  6. Complete the following information after connecting with Transifex:

    • Organization: the desired organization to work with

    • Project: the desired project to work with

    • Resource: the desired resource of the selected project. If you don’t have any fileless resources in this project, you can try to create one using the action “Create a new resource” (note that you must be either an administrator or a project maintainer to perform this action)

    After setting the options, click “Save.”.

📝 Note: The Figma plugin only works with resources using the Fileless format.

At the bottom of the settings tab, you will see two options regarding custom keys. The first option, reading Use custom key names, will allow you to edit custom keys for each string you are pushing to Transifex from Figma. The second option, reading Set text layer name to custom key names, will keep element names found in the Figma nodes tree in sync with the custom keys you edit in the Transifex plugin.


Sending strings from Figma to Transifex

Check out a quick video on sending content and editing keys from Figma to Transifex.


  1. Start selecting the Figma layers you want to send to your Transifex resource.

  2. Your selection will collect your text layers as strings in the plugin's main window under the “Push Strings to Transifex” and “Pull Strings from Transifex” tabs.


  3. Click the X to the right of the string to remove any unwanted strings from the selection in the “Push” or “Pull” tabs. That string will be removed from the current selection list.

  4. Click the “Push” button to send the selected strings to Transifex and add them to the connected resource. After pushing the strings, you can see that they were successfully sent using the “View resource in Transifex” link. Additionally, you can upload screenshots if you have selected the “Upload Screenshots” checkbox. The strings will be translated according to the workflow set up in the Transifex project.

    By default, the plugin will automatically generate screenshots of your Figma Design file Frames and Sections and include them with the pushed strings in Transifex. The strings for translation will be automatically mapped to the screenshots in Transifex to provide visual context of your Figma designs to your translators and ensure the quality of the translation. Optionally you can turn off screenshot generation for any string push by deselecting the “Upload Screenshots” checkbox in the “Push Strings to Transifex” tab.

    Screenshots in Figma FigJam files are not currently supported. This may also be true with other features and elements in FigJam files.

  5. The “Replace Resource Strings” feature can remove extra or outdated strings from your Transifex resources. If this option is checked when you click the “Push” button to send strings to Transifex, all strings currently in the connected resource will be purged and replaced with the current selection only. This option should be used carefully, especially with resources shared by other users. If you are sure you want to replace all the strings in the resource with the current selection, click “OK” in the confirmation dialog. The resource strings will be replaced, and the “Replace” option will be reset to deactivated. Your previous translations remain in the translation memory (TM), so you and your team can reuse them unless they are also deleted from the TM in Transifex.

📝Notes

  1. Some languages require specific fonts to work, so when imported designs don't immediately display their text (e.g., Chinese text), please ensure you use a font that supports your language.

  2. The Figma plugin ignores hidden layers/strings.

  3. When importing translations from RTL languages from Transifex, the text node is automatically aligned to the right of the page. Additionally, the strings presented in the plugin window will be aligned appropriately.

Handling Source Updates with Custom Keys and Translation Preservation

This section outlines the behavior of source updates in Transifex under various scenarios considering the use of custom keys and the choice to retain translations or not.


Scenario #1: Custom Keys - On, Keep Translations - On

A. Push Button

  • Sending source updates for already synced strings with Transifex
    The updates will maintain the translations, review status, and history of the strings in Transifex.

  • Sending new strings to Transifex for translation
    Additional strings will be added to the existing list of strings that have been previously synchronized with Transifex.

  • Removal of strings from your selection that are already synced with Transifex
    These strings will remain within your resource's string list and can only be removed through the "Replace Resource Strings" function or by utilizing the source deletion feature within the editor after switching to the edit source mode.

  • Updating the key of already synced strings
    When keys are updated, new strings are generated in Transifex, while the original ones continue to be part of the resource. Translations for the newly created string are not automatically filled in unless TM (Translation Memory) fillup setting is enabled.

B. Replace Resource Strings & Push

  • Sending source updates for already synced strings with Transifex
    The updates will maintain the translations, review status, and history of the strings in Transifex.

  • Sending new strings to Transifex for translation
    Additional strings will be added to the existing list of strings that have been previously synchronized with Transifex.

  • Removal of strings from your selection that are already synced with Transifex
    These strings will be deleted from the list of strings within your Transifex resource.

  • Updating the key of already synced strings
    New strings are created in Transifex when keys are updated, while the previous ones are eliminated from the resource. Translations for the newly created strings will not be automatically filled unless a TM fillup is performed.

Scenario #2: Custom Keys - Off, Keep Translations - Off

A. Push Button

  • Sending source updates for already synced strings with Transifex
    Updates to the source for strings that were previously synchronized will result in the creation of new strings while removing the old versions from Transifex. No translations and historical data for the deleted strings will be preserved in this case.

  • Sending new strings to Transifex for translation
    Additional strings will be added to the existing list of strings that have been previously synchronized with Transifex.

  • Removal of strings from your selection that are already synced with Transifex
    These strings will remain within your resource's string list and can only be removed through the "Replace Resource Strings" function or by utilizing the source deletion feature within the editor after switching to the edit source mode.

B. Replace Resource Strings & Push

Any previously synchronized strings in Transifex will be deleted, and the selected strings in Figma will be newly created in Transifex. For the deleted strings, there will be no retention of translations and historical data.

Scenario #3: Custom Keys - On, Keep Translations - Off

A. Push Button

  • Sending source updates for already synced strings with Transifex
    Updates to the source for strings that were previously synchronized will result in the creation of new strings while removing the old versions from Transifex. No translations and historical data for the deleted strings will be preserved in this case.

  • Sending new strings to Transifex for translation
    Additional strings will be added to the existing list of strings that have been previously synchronized with Transifex.

  • Removal of strings from your selection that are already synced with Transifex
    These strings will remain within your resource's string list and can only be removed through the "Replace Resource Strings" function or by utilizing the source deletion feature within the editor after switching to the edit source mode.

  • Updating the key of already synced strings
    When keys are updated, new strings are generated in Transifex, while the original ones continue to exist in the resource. Translations for the newly created strings will not be automatically filled unless a TM fillup is initiated.

B. Replace Resource Strings & Push

Any previously synchronized strings in Transifex will be deleted, and the selected strings in Figma will be newly created in Transifex. For the deleted strings, there will be no retention of translations and historical data.

Scenario #4: Custom Keys - Off, Keep Translations - On

A. Push Button

The behavior aligns with what's outlined in Scenario #1.A. It's important to note that keys' modifications are not possible in this scenario where the custom keys option is deactivated.

B. Replace Resource Strings & Push

The behavior aligns with what's outlined in Scenario #1.B. It's important to note that keys' modifications are not possible in this scenario where the custom keys option is deactivated.

📝Note: When updating source from Figma to Transifex and "Keep Translations" option is enabled, any pre-existing tags associated with the strings are preserved.


Pulling strings from Transifex to Figma

How to pull source strings

If your source strings have been updated in Transifex, you can pull the revised source from Transifex to Figma by following the steps below.

  • Select the frames from which you want to pull source content and the “Source language” from the “Languages” dropdown. Click the “Pull” button to create a new page with the selected frames.

  • You can override existing source content by checking the respective option. By selecting to override existing content, all updated source strings will be replaced, and you will see the label “Updated” next to each string in the dialog box, as shown below.

How to pull translation strings

To pull translations back from Transifex to Figma, select the Figma layers you want to get translations for and then click the “Pull” button in the “Pull Strings from Transifex” tab. You can pull them in all languages or a specific one(s) by selecting them in the “Language” dropdown.

The pull operation will create a new page in your Figma file for every language with the same name of the selected page and the language code as a prefix and automatically insert translations for the selected visible strings. The new page will include only the selected frames. To create frames on the current page instead of a new one, enable the "Pull in current page" checkbox.

⚠️Warning: Languages without translations in Transifex will be ignored during the "Pull" process, and no pages will be created in Figma.


Using custom keys

You can customize string key names with the "Use custom keys" setting. Keys are important in Transifex when you want to communicate with other teams working on your project's localization. Let's see how you can do that.

  1. Start selecting the Figma layers you want to send to your Transifex resource.

  2. Opening the Transifex Figma plugin, you will see the list of selected strings in the first tab, "Push strings to Transifex." Each string will also have an input where you can set the custom key. The default key is the node name in the Figma nodes tree.

  3. Type the custom key names in each input or leave them as is and click Push to send strings to Transifex. The Figma plugin is smart enough to group strings sharing the same context and same key name so that only one string will be pushed to Transifex in that case. e.g., if you have two Text elements in Figma saying "Email" and sharing the same node name in the Figma nodes tree ("Email"), the Transifex Figma plugin will detect their relation and push only once the specific string to Transifex


Handling conflicts

When using custom key names, there are cases where the Transifex Figma plugin will raise warnings for duplicate keys.

These cases are:

  • Figma elements have different text but share the same Figma node name. This can happen if you use the default Key names for the selected strings, where the Figma node name is used. It's common while designing to clone nodes to create new items, and there is a chance the Node name remains the same across many nodes, especially with Text nodes.

  • There are strings in the linked Transifex project that have the same key name but different text. This can happen when you have already pushed some content to Transifex and are updating a Figma design or creating a new one with similar node names on elements.

There are various ways to handle these cases using the plugin:

  • If you prefer adding an extra string for each conflicting item, click the Auto Fix button. Using this functionality, the plugin will try to automatically correct the error by assigning a number next to each key name with conflict, e.g., having two strings with a key name of 'Email' and clicking Auto fix will result in key names 'Email' and 'Email 1' for these two strings.

  • If you prefer replacing what might already be in Transifex with your current version in Figma, click the Push & Replace button at the bottom right of the plugin popup. Doing that will push a new to Transifex, the string you have in Figma. This action will remove the previous string and all the translation progress done in Transifex. For example, if you have already translated the string with the key name 'Email' and you Push & Replace, the translation will not be present on the string


💡Tip

Looking for more help? Get support from our Transifex Community Forum!

Find answers or post to get help from Transifex Support and our Community.

Did this answer your question?