🌐 Expand Korean localization coverage across web and mobile - #1318
🌐 Expand Korean localization coverage across web and mobile#1318devy1540 wants to merge 55 commits into
Conversation
There was a problem hiding this comment.
Thank you for drastically improving the coverage of translated strings!
In general, large-scale changes like this should be brought up in an issue or discussion first so that certain avoidable issues can be ironed out before effort has been made. At least at a glance, you've added locale keys for most if not all of the currently untranslated surface, but a lot of the keys aren't as grouped as I typically would like them to be organized. A good example of this is readerUi, there are easily multiple nested subgroups that could have been utilized to group things together which really makes maintenance significantly easier down the road (e.g., some of the keys are for selects and other inputs but at a glance would not know because of the flat structure). I try to group things by component and/or semantically to make it easier to find and connect in the code. It also helps cut duplication, where there are some instances of here. It's also just a lot more approachable than a flat structure for a human to read the content, which I optimize for heavily and don't care about LLM optimizations
Can we try to group things a bit more thoroughly, to keep things aligned with the existing practices in the repo? There are many references for how things are structured to pull from, but can try to point some good ones out if needed.
|
Thanks for the feedback — I agree that I should have opened an issue or discussion before making a change of this size. |
|
Yeah of course, here are a few that I think are good examples:
In general, the keys under
I think if you wanted to get the fixes you made into That said I'm not against splitting it up of course, it always helps, I'd say just avoid stacking PRs to avoid conflicts as they get squash merged (unless you don't care about dealing with them 😄) |
|
Thanks, those examples are very helpful. |
…/i18n-ko-web-coverage # Conflicts: # apps/expo/components/localLibrary/ContinueReading.tsx # packages/browser/src/components/filters/URLFilterDrawer.tsx # packages/i18n/src/locales/ko-KR.json
|
I’ve pushed the follow-up refactor to this branch in b9f7ebd. The previously flat web translation keys are now organized by route/component and semantic group. In particular:
I kept the follow-up work in this PR, as suggested. Validation:
When you have time, I’d appreciate another review of the updated structure. |
|
Hey @devy1540, I'll try to take another look towards the end of the week. Thank you! |
Description
This PR expands Korean localization coverage across the browser and Expo applications.
en-USsource strings and completeko-KRtranslations while preserving 1:1 locale key parity.LocaleProviderabove the browser error boundary so startup failures render translated fallback copy instead of raw keys such aserrorScene.criticalHeading.The motivation is to remove mixed English/Korean UI and untranslated raw keys from the Korean experience. The reported error fallback occurred because the locale provider was mounted inside the router while the error boundary was outside it; an error thrown during router startup therefore rendered without locale context.
This affects visible UI copy and localization wiring in the browser and Expo clients. It does not change backend APIs or data models.
This contribution was developed with assistance from OpenAI Codex. I reviewed the changes and validated them locally before submission.
How to contribute: https://github.com/stumpapp/stump/blob/main/.github/CONTRIBUTING.md
Validation performed:
en-US2,770 keys,ko-KR2,770 keys, 0 missing and 0 extra keys.corepack yarn workspace @stump/browser check-typescorepack yarn workspace @stump/i18n check-typesgit diff --checkScreenshots
Not included in this draft. The localized error fallback behavior is covered by a regression test that selects
ko-KR, triggers the app error boundary, and verifies the Korean heading and home link.Ready?
Please read each item and check the boxes:
nightlyand notmainStump Contributor License Agreement
By contributing to Stump, you agree that your contributions will be licensed under the following licenses (where applicable):