Stale Translations
A translation goes stale when it was approved, but the source string changed after the approval. The translation might still be fine, or it might now say something wrong. Either way, it needs a human to check.
How strings go stale
When you update a source string (either manually or via import), any approved translations for that string are flagged as Stale automatically. The translation isn't deleted, it's just marked for review.
You'll see stale strings in their own queue mode in the editor, and they show up with a warning indicator in the Hive string list.
Reviewing a stale translation
Open the Stale queue in the editor. For each string, you'll see:
- The current source text (what changed)
- The existing translation (what was approved before the change)
- A diff showing exactly what changed in the source
Read the diff, update the translation if needed, then re-approve it. If the source change didn't actually affect the meaning of the translation, you can re-approve without changing anything.
If the updated source introduced a new placeholder that isn't in the existing translation, re-approval is blocked until you add it. The editor shows an error message identifying the missing placeholder.
Discarding a stale translation
If the source change was significant enough that you want to start fresh, clear the translation field and save. The string goes back to Untranslated.
Preventing stale translations
You can't prevent source strings from changing, but you can control what happens to translations when they do. When importing source strings via the API or the import UI, you can set the conflict strategy to clear instead of keep. This clears all translations whenever a source value changes, rather than marking them stale.
clear is more aggressive. Use it when you'd rather retranslate from scratch than review diffs. keep (the default) is gentler and suits most teams.