Repository navigation
feat: pick Korean particles to match the name - #356
Merged
Merged
Conversation
Korean copy wrote both particle forms after runtime Pokémon names
("유니란이(가)", "듀란(으)로") because the name is not known when the
string is translated. Pick the particle from the final syllable's coda
instead, with ㄹ taking "로".
- Add KoreanParticle (subject 이/가, object 을/를, direction 으로/로).
Names that do not end in a Hangul syllable, such as Unown's "[A]" or a
"chattymin#123" placeholder, keep the combined form.
- Use it in the six Korean strings that wrote both forms. Other
languages are unchanged.
- Add the helper to the coverage gate's logic core.
No new dependency: es-hangul is JavaScript, and the check is a few lines
of Unicode arithmetic.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Resolve the notifShinyHatchBody conflict with chattymin#351: keep the odds parameter and pick the Korean particle. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Owner
|
Thank you for your contribution! |
Strongorange
added a commit
to Strongorange/PokeTokenBar-windows
that referenced
this pull request
Oct 20, 2026
Port macOS chattymin#356 (KoreanParticle.swift): hatch, shiny hatch, evolve, level-up status, egg confirm and mint feedback now append the particle matching the name's batchim (을/를, 이/가, 으로/로, with ㄹ-coda taking 로) instead of the parenthesized dual forms. Non-Hangul endings (Unown markers, pre-load 'chattymin#123', Latin names) keep the dual form — a wrong particle is worse than a parenthetical. Also fixes the mint feedback passing the raw enum name ('Jolly') instead of the localized nature, which would have kept '(으)로' visible in Korean copy.
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.
Summary
Korean copy writes both particle forms after a Pokémon name ("알에서 유니란이(가) 나왔어요!", "듀란(으)로 진화했어요!") because the name comes from PokéAPI at runtime. This PR picks the particle from the name's final syllable instead, without adding a dependency.
KoreanParticle(subject이/가,object을/를,direction으로/로) inCore/KoreanParticle.swift. It reads the coda of the final Hangul syllable (U+AC00–U+D7A3); a ㄹ coda takes "로", as in "희귀 알로".statusEvolved,notifEvolveBody,notifHatchBody,notifShinyHatchBody, andeggConfirm(two spots). Other languages are unchanged.KoreanParticle.swiftto the logic core inscripts/test-gate.sh(as feat: propose collecting all 28 Unown forms #288 did forUnownForm.swift).Why no library: the package has no external dependencies today, and the check is a few lines of Unicode arithmetic.
Update: after #351 merged, I merged
maininto this branch. The shiny hatch line keeps #351's odds and now also picks the particle.Type of change
UI changes
No files under
Sources/PokeTokenBar/UI/change. Korean notification, status line, and shop confirmation copy change:Checklist
swift buildandswift testpass locally:swift buildpasses locally. This machine has only Command Line Tools (no XCTest), so the full suite ran in CI instead. After mergingmain: 1341 tests, 0 failures, coverage gate passed withKoreanParticle.swiftat 100% (run).Tests:
KoreanParticleTestscovers each particle with and without a coda, ㄹ with "로", non-Hangul endings (Unown letter,#123, Latin, empty), the six Korean strings end to end, and that English and Japanese copy is unchanged.LocalizationInterpolationTestsstill passes because its sentinel is non-Hangul and keeps the combined form.🤖 Generated with Claude Code