For the version of this tool we’re working on as part of the BBC next-gen campaign, we’re looking at a Welsh translation. We typically manage translations using the Crowdin platform, where translators can collaborate and get good tooling.
Using Crowdin (or similar platforms) requires the source content to be in a supported format. The Danish and English translations for cctd-ml-machine are currently in TypeScript.
We suggest moving to svelte-i18n for translations (MIT licence). This will enable:
A move to a JSON file for each language along with a standard approach to supporting parameters in strings that platforms like Crowdin understand (ICU message syntax)
Bundle splitting so each additional language doesn’t bloat the app size
Low impact on the existing code - only initialization code and one translation usage needs to change
There don’t seem to be other good options in the Svelte ecosystem.
We can make this change as a PR against cctd-ml-machine if you’re interested in having this support upstream. Alternatively, we can just make the change on our fork.
The text the Foundation will translate will be different from the cctd-ml-machine text as we’re making UX changes. There may be useful overlap, but essentially the proposed PR would get you an improved translation mechanism but not more translations (at least not without further work).
We’re happy to revisit options for sharing translations when we look at our longer term release of the tool beyond the next-gen project (ie “evergreening”).
For the version of this tool we’re working on as part of the BBC next-gen campaign, we’re looking at a Welsh translation. We typically manage translations using the Crowdin platform, where translators can collaborate and get good tooling.
Using Crowdin (or similar platforms) requires the source content to be in a supported format. The Danish and English translations for cctd-ml-machine are currently in TypeScript.
We suggest moving to svelte-i18n for translations (MIT licence). This will enable:
There don’t seem to be other good options in the Svelte ecosystem.
We can make this change as a PR against cctd-ml-machine if you’re interested in having this support upstream. Alternatively, we can just make the change on our fork.
The text the Foundation will translate will be different from the cctd-ml-machine text as we’re making UX changes. There may be useful overlap, but essentially the proposed PR would get you an improved translation mechanism but not more translations (at least not without further work).
We’re happy to revisit options for sharing translations when we look at our longer term release of the tool beyond the next-gen project (ie “evergreening”).
A preview of the approach can be found here: https://github.com/microbit-foundation/cctd-ml-machine/compare/main...microbit-matt-hillsdon:cctd-ml-machine:async-translation
CC @Karlo-Emilo, @r59q, @microbit-robert, @microbit-lucy, @jaustin