Use this guide when a translation is wrong and you need to decide whether to re-review one locale or all locales.
Decision Rule
- Use locale-only
NeedsReviewwhen one target language is wrong. - Use base-wide refresh when base copy or translation guidance changed and every locale should be revisited.
Locale-Only Fix (One Language)
- Open the target non-base translation.
- Change state to
NeedsReview. - Save and confirm re-translation.
What happens
- A re-translation task is queued for that single locale row.
- Base language rows do not fan out from this action.
- If the row was already
NeedsReview, duplicate confirmation is skipped.
Base-Wide Fix (All Languages)
Use this when source meaning changed, or when a comment/context update should refresh all locales.
- Update base source content (or base context/comment in parser-backed source).
- Run sync/import.
- Review non-base rows moved to
NeedsReview.
What happens in parser sync
- Base value changes mark matching non-base rows as
NeedsReview+Pending. - Existing non-base values are preserved for reviewer context.
- Base rows stay stable while downstream locale review is propagated.
Important Parser Nuances
XCStrings
- Repeated identical
needs_reviewsignals are coalesced to reduce duplicate processing. - Comment/context updates can retrigger locale review when guidance changes.
- Completed rows are not reprocessed unless new changes are detected.
- In-flight review rows (
Pending/InProgress) are preserved during follow-up syncs.
Android XML
- Base value changes mark stale non-base rows
NeedsReview. - Locale-only XML sync does not trigger global review fan-out.
TestFlight What-to-Test
- Only base-language content changes trigger global
NeedsReview. - Non-base file processing does not override base-driven review state.
When Not to Use Base-Wide
- Typo or style issue in one language only.
- Glossary or term issue isolated to a single locale.