Skip to content

Fix broken strings in localizations. - #950

Merged
jaydeetay merged 2 commits into
masterfrom
flag-damaged-translations
Jul 29, 2026
Merged

Fix broken strings in localizations.#950
jaydeetay merged 2 commits into
masterfrom
flag-damaged-translations

Conversation

@jaydeetay

@jaydeetay jaydeetay commented Jul 29, 2026

Copy link
Copy Markdown
Member

The v2 rewrite salvaged v1's translated UI strings, and the migration refused 50 of them across 25 locales because the translation could not be trusted. Those are pre-existing defects in this repo, not v2 problems, so this marks them where they live for a human to fix or re-run through tm.

The bulk is the warm_welcome_slide3_* pair, merged badly at some point: the finished translation is followed by a repeated fragment of the English original, e.g. ja "...宇宙全体を探索できます!Manual Mode!" — visible English inside a Japanese string. 21 locales have that trailing-tail form, 23 have a longer untranslated run inside the text, 2 (de, fa) show a stray "=" splice joining translation to original, and 4 have mismatched inline markup.

Note tm validate does not catch most of these: the tag set is intact, so a complete ... beside half-translated prose passes. Error counts are unchanged by this commit (verified de/ja/fr before and after) — these are comments only, 100 insertions and no deletions.

Comments carry the SALVAGE-FLAGGED marker so they are greppable and so the generator can replace rather than duplicate them on a re-run. Generated by stardroid-v2's tools/salvage-translations/annotate_v1.py, which re-derives the list from the salvage tool's own verdicts rather than a hardcoded table.

Resources still merge (:app:mergeGmsDebugResources) and every strings.xml still parses.

Description

Type of Change

  • Bug fix
  • New feature (Sky Map team only)
  • Translation (new or updated)
  • Documentation
  • Refactoring / code cleanup
  • Dependency upgrade
  • Other

Checklist

  • I've read the contributing guidelines
  • For major changes, I've emailed skymapdevs@gmail.com first
  • I've run the unit tests with ./stardroid-v1/gradlew :app:test
  • I've tested on a device/emulator if applicable
  • If I have multiple commits, I've squashed them into one

No need to update CHANGELOG.md - we'll get Claude to do that when we cut a release.

Notes for Reviewers

jaydeetay added 2 commits July 29, 2026 23:07
The v2 rewrite salvaged v1's translated UI strings, and the migration
refused 50 of them across 25 locales because the translation could not be
trusted. Those are pre-existing defects in this repo, not v2 problems, so
this marks them where they live for a human to fix or re-run through `tm`.

The bulk is the warm_welcome_slide3_* pair, merged badly at some point: the
finished translation is followed by a repeated fragment of the English
original, e.g. ja "...宇宙全体を探索できます!<b>Manual Mode</b>!" — visible English
inside a Japanese string. 21 locales have that trailing-tail form, 23 have a
longer untranslated run inside the text, 2 (de, fa) show a stray "="
splice joining translation to original, and 4 have mismatched inline markup.

Note `tm validate` does not catch most of these: the tag set is intact, so a
complete <b>...</b> beside half-translated prose passes. Error counts are
unchanged by this commit (verified de/ja/fr before and after) — these are
comments only, 100 insertions and no deletions.

Comments carry the SALVAGE-FLAGGED marker so they are greppable and so the
generator can replace rather than duplicate them on a re-run. Generated by
stardroid-v2's tools/salvage-translations/annotate_v1.py, which re-derives
the list from the salvage tool's own verdicts rather than a hardcoded table.

Resources still merge (:app:mergeGmsDebugResources) and every strings.xml
still parses.
@jaydeetay

Copy link
Copy Markdown
Member Author

@claude please review

@claude

claude Bot commented Jul 29, 2026

Copy link
Copy Markdown

Claude finished @jaydeetay's task in 2m 6s —— View job


Review of PR #950

  • Gather context (diff, changed files)
  • Understand the request (code review only)
  • Review the diff for correctness
  • Post review feedback

Key finding: the PR description no longer matches the diff

This PR has two commits, and they contradict each other:

  1. 2cd4a75 "Flag half-translated strings with SALVAGE-FLAGGED comments" — adds the `` comments described in the PR body (comment-only, no rendered-string changes).
  2. ec7f928 "Fixed broken translations."`deletes every one of those comments and directly rewrites the 25 translated strings instead.

The result: grep -rl "SALVAGE-FLAGGED" stardroid-v1/app/src/main/res/ on the current branch head returns zero files. None of the flagging described in the title/body survives — the PR title ("Flag half-translated strings with SALVAGE-FLAGGED comments"), the description ("marks them where they live for a human to fix or re-run through tm"), and the accounting ("100 insertions and no deletions") all describe commit 1 only and no longer describe what this PR actually does. git diff origin/master...HEAD --stat shows 50 insertions / 121 deletions across the 25 files — real content changes, not comments.

Concretely (e.g. values-de/strings.xml, values-fr/strings.xml), commit 2 removes the English tail/stray =/dropped <b> and re-wraps <b> around what looks like the correct translated span (e.g. German <b>manuellen Modus</b>, French <b>Mode Manuel</b>). Spot-checking several locales (ar, de, fa, fr, ja, tr), the fixes look plausible and XML stays well-formed, but:

  • This conflicts with AGENTS.md: "translations to other locales will be done after features are implemented by a separate pipeline." Directly hand/tool-editing 25 locales' translated prose is exactly what that convention says not to do in this kind of PR — it bypasses tm and there's no indication a native speaker reviewed the reworded text (as opposed to just moving markup).
  • No before/after tm validate or error-count verification is mentioned for commit 2, unlike commit 1 (which explicitly checked de/ja/fr).
  • The PR's own checklist item "If I have multiple commits, I've squashed them into one" is unchecked — and here it matters, since the two commits aren't incremental, the second reverses the first's approach entirely.

Recommendation: decide which behavior this PR is actually meant to ship — comment-only flagging (revert commit 2, keep title/body as-is) or direct fixes (drop commit 1's comments as dead weight, rewrite the title/body to match, and get native-speaker/tm verification for the reworded strings) — then squash to one commit whose message matches the diff.

Minor

  • Where commit 2 touches wording beyond markup placement (e.g. tr Manual ModManuel Mod, figure-8/sekiz phrasing across locales), that's a substantive translation correction, not just tag repositioning — worth calling out explicitly in the PR body if kept.

Not verified

I could not run :app:testDebugUnitTest or :app:mergeGmsDebugResources in this environment (network/tool restrictions on running gradle/python here), so the "resources still merge" and "every strings.xml still parses" claims are based on manual inspection of the diff only, not a build run.

@jaydeetay jaydeetay changed the title Flag half-translated strings with SALVAGE-FLAGGED comments Fix broken strings in localizations. Jul 29, 2026
@jaydeetay
jaydeetay merged commit d05b3cb into master Jul 29, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant