The connector supports document translation. Translations are requested within the Smartling platform, and the translated content is automatically delivered back to your Sanity environment.
Request translation in Smartling
There are two ways in which you can request translation in Smartling:
-
Select asset > Actions > Request Translation.
This option allows you to bulk-select multiple assets for translation.
Learn more about requesting translation in bulk here.
-
Click the information icon for an asset > Request Translation.
This option allows you to request translation for a single asset.
Both methods will open the three-step Request Translation wizard:
Step 1
- The assets(s) you selected will be included for translation. You can select Show related assets to see a list of related assets. Uncheck any related assets you do not wish to translate.
- By default, if Show related assets is selected all related assets 1 level deep will be included. Use the dropdown menu if you would like to translate assets more than 1 level deep.
- You can also use the second dropdown menu to filter by content type.
- Once you have made your selections, press Continue to go to Step 2.

Step 2
- Choose to create a New Job or add the content to an Existing Job.
- (Optional) Add a description for the linguists.
- Select the Target Languages.
- Click Save Job and Continue to create the job in Smartling.
Step 3
- Here you can see a cost estimate for the job based on your selected workflows.
- If you edit the workflow(s), the estimate will update automatically.
- (Optional) Add a Job Due Date.
- Select Save for Later, to create the job, but have the content sit in Awaiting Authorization.
Select Authorize Job, to kick off the translation process.
We recommend selecting Save for Later, so you can review the strings in the job before authorizing it for translation.
Recent job processes
If you request 30 or more assets for translation, the Request Translation wizard will close after Step 2, and the list of bulk requests (Recent Job Processes) will be displayed. Learn more about requesting translation in bulk here.
Automate job creation
The above steps outline how to request Sanity content for translation manually. For information on how you can automate job creation, see our documentation on Automation Rules For Connector Content Translation.
Translation delivery to Sanity
The Sanity Connector is file-based, meaning translation progress is tracked at the file level rather than the job level. When you request a Sanity asset for translation, the content is bundled into a JSON file and sent to Smartling for translation. Once the file is fully translated for a target locale, the translations for that locale are automatically delivered back to Sanity.
You can also trigger translation delivery manually at any time. To export translated content from Smartling to Sanity:
- From your Sanity project, click the Sanity (Documents) tab
- Select the assets you would like to export translations for
- Click the Actions menu > Export Translation
You can also manually export translations from the Asset Details page.
Check translation status
You can check the translation status of any asset via the Asset Details page, by clicking the info icon next to an asset in the Sanity tab.
The Delivered column shows the date when translations were last delivered to Sanity. The state Completed means all content is translated and was successfully delivered back to Sanity. For more details on the different states please see the info here.
Hover over the requested date to view the exact time the asset was requested and by whom. Similarly, hover over the delivered date to see the exact time the asset’s translations were delivered.
Asset references
The connector uses asset references to track how content items are related. For example, a “Page” may reference “Component A.” When such a strong reference exists, the translated “Page” cannot be properly saved without also having the translated “Component A.”
Since the connector delivers content sequentially (not simultaneously), it uses these references to manage dependencies. If a document being delivered includes a reference to another asset that hasn’t been delivered yet, the connector flags it as a weak reference. This indicates the system is waiting for the referenced asset to arrive in order to finalize the translated document.
Example 1:
A “Page” and its child “Component A” are requested for translation. The “Page” is completed and delivered back to Sanity first. Because the referenced component hasn’t yet been delivered, the connector marks the reference as weak. Once both the page and the component have been translated and delivered, you may still see a “Reference strength mismatch” message. This can be safely ignored, or you can manually convert it to a strong reference by clicking on the warning.
Example 2:
A “Page” is translated, but its child “Component A” has not yet been translated. In this case, you may see the error message “Document unavailable,” indicating that the referenced component is missing.
Adding or editing translations
Translations should not be added directly in Sanity, as the connector does not recognize translations added manually. If your team adds translations directly, they will be overwritten when the connector delivers translations.
If you need to edit translations after they have been delivered to Sanity, all edits should be made in Smartling. The connector does not track or recognize changes made directly in Sanity. If you edit translations in Sanity, those edits will be overwritten the next time the connector delivers translations for the asset. To ensure changes are preserved, always make edits in Smartling.
Visual context
By default, the connector generates simplified dynamic HTML visual context. The connector generates a simple HTML file that renders the Sanity fields and their values, providing a basic representation of the asset's content. An example of this can be seen below.
If you are interested in integrating an additional visual context tool, such as adding context via an API integration or Smartling's Context Capture JavaScript Library please reach out to your Solution Architect or another Smartling Representative.