feat(i18n): Localization pipeline (UI + backend payloads + CI gates)#750
feat(i18n): Localization pipeline (UI + backend payloads + CI gates)#750YannBirba wants to merge 8 commits intoCyberTimon:mainfrom
Conversation
…y migration - add app namespace locale files for en/fr/es/zh\n- wire zh into i18n resources and language options\n- migrate additional App and panel UI strings to translation keys\n- update translation validation script for zh and keep checks green\n- fix frontend boot regressions introduced during i18n refactor
|
Hi @CyberTimon, I worked on this yesterday and wanted to know what you think about what I’ve done. Once you’re okay with it, I’ll use a set of AI agents to automatically translate the rest of the interface into all three languages. After that:
Let me know what you think 🙂 |
|
Thanks a ton for this, @YannBirba! This is a huge piece of work and looks really solid. My only concern is development speed. One of the reasons I’ve put off i18n is the fear of it becoming a bottleneck (if I have to update X different JSON files and satisfy CI gates every time I change a button label, it’ll really slow me down). How do you see the daily workflow going forward? Thanks a lot! |
Yeah, that’s a valid concern — you’re probably right, not gonna lie. I mean, we could shut down the CI and just keep the scripts in package.json, so they’re easy to run only when needed. With this setup, you can still iterate using hardcoded strings and keep your development speed, or just set up the English JSON file. We’ll always be able to translate it later — I don’t really see that as a problem, especially since the app is still very young. If you want to rephrase a translated string, you’ll indeed be forced to update the JSON files, as you said — and I get it, that can be annoying. I’ll do some research and see if I can find a better approach. |
|
Hi, great work! I would like to help with localization into Czech, how do I proceed? |
Hi, still need to work a bit on that, once merged I guess you can make a PR to add a new language ! |
|
This looks great. I’d be happy to help with the Chinese i18n side on top of this work. I can take care of reviewing and improving the |
|
I'd be up to support german localization if this gets merged. @YannBirba two thoughts that occur: And regarding changing of strings: i don't see a big issue with this. If we have a notice somewhere in a help menu along the lines of "If you notice an issue -> github link. If you notice a translation error and want to help with localization -> github link to maybe an example of how to adjust it". That way we can fall back on crowd sourced localization, if no maintainer has already caught and updated it or used an ai to do so. |
|
Hi, I translated JSON strings into Czech, I don't know how to add them here, so I'm attaching them and asking for them to be included in the localization. |
Summary
This PR introduces a strict i18n foundation across frontend UI and backend event messaging.
This is a proposal answer for #623.
What’s included
i18next+react-i18next+i18next-icuen,fr,es,zhApp,MainLibrary, key panels/modals){ key, params }payloadsValidation scripts
New scripts in
package.json:i18n:check:translationsi18n:check:backendi18n:check:hardcodedi18n:ciCI improvement
Build workflow now runs:
before packaging/build steps, so i18n regressions are caught early.
Current check status on this branch
Notes
Infrastructure and backend contract are in place.
Remaining work is full UI hardcoded-text migration across all flagged components.