feat(where): the remaining nine alarm types, and translations - #734
Merged
Conversation
Cards
- Raids, eggs, quests and max battles share app-alarm-info, so that component
now renders the Where chip instead of its own distance display. One change,
four types, and no chance of the four drifting apart.
- Gyms, lures, nests, invasions and fort changes each carried their own
distance-chip markup; all five now use the chip.
- Every list loads the profile's selected areas, used only to keep the
inherited wording honest.
- Clicking a chip opens the scope sheet, on all ten types. Raids and eggs
share a list, so the tracking type is a parameter rather than two methods.
Edit dialogs
- The areas-or-distance control cannot express an area-confined alarm, and
switching it to a distance would have sent both and been refused by
PoracleNG. It is hidden for those alarms, and every dialog shows the scope
read-only above it.
Translations
- All 37 WHERE strings plus the Places menu entry into de, es, fr, it, nl,
pl, pt, pt-BR, sv and da. The applier asserts each locale carries exactly
the English key set and that every {{placeholder}} survives, since a
dropped one renders as literal braces to the user. RADIUS_KM matching
English in Danish and German, and PLACE_NAME in German, are cognates.
Verified with npm run build, not just tsc and jest -- template errors only
surface in the production build, which is how NG8004 reached CI last time.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Completes the per-alarm scope UI and translates it.
Cards
Raids, eggs, quests and max battles already shared
app-alarm-infofor their one-line summary, so that component now renders the Where chip instead of its own distance display. Four types corrected from one place, with no way for them to drift apart. Gyms, lures, nests, invasions and fort changes each carried their owndistance-chip-rowmarkup and now use the chip directly.Clicking a chip opens the scope sheet on all ten types. Raids and eggs share a list component, so
editScopetakes the tracking type rather than existing twice.Each list loads the profile's selected areas. That is only used to word the inherited case: "anywhere in my areas" is a lie for someone with none selected, and an empty list produces the more cautious wording.
Edit dialogs
They deliberately do not gain the control — scope is edited from the chip, and a second editor is two paths that can disagree. What they needed was to stop being able to break a scope they cannot describe.
An area-confined alarm has no radius. The areas-or-distance control cannot represent it, and switching it to "set distance" would have sent a radius alongside the stored areas, which PoracleNG refuses outright. The control is now hidden for those alarms, and every dialog shows the scope read-only above it so an alarm aimed at a place does not look like a plain radius mid-edit.
Translations
All 37
WHEREstrings and the Places menu entry, into de, es, fr, it, nl, pl, pt, pt-BR, sv and da.The applier asserts two things per locale rather than trusting the paste: that it carries exactly the English key set, and that every
{{placeholder}}survives translation. A dropped or renamed placeholder renders literal braces to the user, and it is invisible until someone in that language hits that string.Three strings match English after translation —
RADIUS_KMin Danish and German,PLACE_NAMEin German — which are cognates, not misses.Verification
npm run build,npx jest(1025 passing), eslint and prettier all clean. The build is the one that matters: template errors like a missing pipe or an unregistered component passtscand jest and only fail the production compile, which is how the last round reached CI red. That caught eight edit dialogs here whoseimportsarray was missingWhereChipComponent— local type checking was perfectly happy.Not in this PR
The "measured from" place selector in the nine remaining add dialogs; Pokemon has it. A new alarm on the other types starts inherited and can be pointed somewhere from its card straight after. Also still open:
AlertDefaultsServicegaining a default place, and the mega-PVP control.