stale-translation
Source changed since the translation was locked.
Default severity: warning
What it checks
The source text changed after this translation was recorded in shipglot.lock, and the translation did not change. It may describe the old text. Review it, then run `shipglot lock`.
It needs a committed shipglot.lock: run shipglot lock after translating, and later runs compare against it.
Example
The English text changed after `shipglot lock`; the French text did not. Config used for both runs:
{
"sourceLocale": "en",
"files": [
{
"format": "next-intl-json",
"path": "messages/{locale}.json"
}
]
}Files when shipglot lock ran:
messages/en.json
{
"trial": "Your trial ends in 14 days."
}messages/fr.json
{
"trial": "Votre essai se termine dans 14 jours."
}Fails
messages/en.json
{
"trial": "Your trial ends in 30 days."
}messages/fr.json
{
"trial": "Votre essai se termine dans 14 jours."
}Gate output
trialSource text changed since this fr translation was locked; the translation was not updated.messages/fr.json:2
Passes
messages/en.json
{
"trial": "Your trial ends in 30 days."
}messages/fr.json
{
"trial": "Votre essai se termine dans 30 jours."
}Gate output
No stale-translation finding.
Change its severity
{
"checks": {
"stale-translation": "error"
}
}Use "off" to disable it. To hide one finding, add "suppress": ["stale-translation:trial"]; a suppress rule that stops matching is reported so it can be removed.