When working on localization projects, source content is always evolving—strings change, new ones get added, and old ones get removed. But what happens to translations, translation history, and reports when you update content in Transifex? Let’s break it down!
Example Scenarios
Imagine you’re updating a resource’s source content in your project. Depending on the options you select during upload, the impact on translations will vary:
-
New strings → Added as untranslated.
-
Removed strings → Disappear from the editor but are still stored in your Translation Memory ™.
-
Modified strings → Treated as new or updated, depending on whether the key or text was changed. Translation preservation also depends on whether you are using the Keep Translations option or not.
Note: Transifex retains translations even when the source string or the entire resource is deleted. Translations are only removed from the Translation Memory if they are explicitly deleted from the project’s resource.
Save and Keep Translations
One of the most powerful options when updating source strings is Save and Keep Translations. This feature lets you decide whether existing translations should be preserved or removed when a source string is modified.
This option is available across multiple Transifex tools:
Transifex Platform
Transifex platform via updating the source file – when uploading a new version of a source file.
Editor
Editor – for formats that allow editing source content directly in Transifex.
API
There are now two ways to manage this behavior via the API:
When uploading a new source file
Using the POST /resource_strings_async_uploads endpoint:
curl --request POST \
--url https://rest.api.transifex.com/resource_strings_async_uploads \
--header 'accept: application/vnd.api+json' \
--header 'content-type: application/vnd.api+json' \
--data '
{
"data": {
"attributes": {
"callback_url": "string",
"content": "{\"hello\": \"transifex\"}",
"content_encoding": "text",
"keep_translations": false,
"replace_edited_strings": false
},
"relationships": {
"resource": {
"data": {
"id": "o:organization_slug:p:project_slug:r:resource_slug",
"type": "resources"
}
}
},
"type": "resource_strings_async_uploads"
}
}
When editing an individual source string
Now supported via thePATCH /resource_strings/{resource_string_id} endpoint. You can include the new keep_translations parameter in your request to decide whether to preserve or discard translations for that specific string:
curl --request PATCH \
--url https://rest.api.transifex.com/resource_strings/resource_string_id \
--header 'accept: application/vnd.api+json' \
--header 'content-type: application/vnd.api+json' \
--data '
{
"data": {
"attributes": {
"strings": {
"one": "hello",
"other": "world"
},
"keep_translations": false
},
"id": "o:organization_slug:p:project_slug:r:resource_slug:s:2e354ef120752c67afa1b6855aa80c52",
"type": "resource_strings"
}
}
Note: By default, keep_translations is set to true. Set it to false to remove translations when the source string changes.
CLI
CLI – using the Go CLI with --keep-translations.
tx push -t --keep-translations
When you use this option, Transifex will:
-
Preserve existing translations even if the source text changes.
-
Create TM entries linking the updated source text with the preserved translations.
-
Record both a source edit action and a new translation action in history.
-
Attribute the preserved translations to the user who performed the edit.
Note: A clear way to spot this in history: the timestamps of the source edit and translation action are identical.
Impact on Translations’ History
-
Modified text on a string with a key, not using Save and Keep Translations → Original translations are removed from the editor but still visible under the History tab.
-
Modified key or strings without a key-value format → Treated as a completely new string; previous history is not carried over (though translations remain in TM).
-
Modified text on a string with a key using Save and Keep Translations → Both the change and the preserved translation are logged, so reviewers can clearly see what happened.
Impact on Reports
Updating translations directly affects Activity Reports:
-
Translated Words → Counted when a string is first translated. If Save and Keep Translations is used, preserved translations are counted again as new translations for each target language.
-
Edited Words → Counted when an existing translation is changed.
-
Reviewed Words → Counted when translations are marked as reviewed.
Examples from Reports behavior:
-
If you edit the source string with Save and Keep Translations, the system re-applies translations to all languages where they existed before. This shows up in reports as new translated words credited to the user who performed the edit.
-
If a string is modified without keeping translations, it goes back to an untranslated state, and translators will have to translate it again. These new translations are also counted in reports.
-
Even if resources or languages are later removed from a project, all related translation activity remains in reports.
-
Only if the entire project is deleted will its translation activity disappear from reports.
Impact on Translation Memory ™
-
Removed strings → Their translations are preserved in the TM for future reuse.
-
Modified strings (text changed, key unchanged) → Previous translations remain in TM even if the string returns to an untranslated state in the editor.
-
Modified strings (key changed) → Treated as completely new strings; old translations remain in TM but are not applied automatically unless a 100% match is found.
-
Save and Keep Translations → Creates TM entries linking the updated source with the preserved translations, so translations are immediately available for future reuse across languages.
Conclusion
Updating source strings in Transifex changes how translations, history, and reports behave.
-
Save and Keep Translations keeps existing translations, updates the TM, and logs actions in history.
-
Skipping it resets strings in the editor, but old translations remain in TM for future reuse.
-
Reports always reflect activity, even if resources or languages are removed.
Use Save and Keep Translations to make updates smooth and keep your workflow clear.
Curious to see it in action? Give Transifex a try and make managing translations easier for your whole team!

