So perhaps to keep down translation noise in the engine project we should make a single EngineLanguagePack module that uses deltas to translate the engine. Then we can point Weblate to that one module and include it as part of Iota.
Even if you exclude the module (we might do that for the applet) the game runs fine.
Other modules could contain their own i18n files, use a similar approach if they get big and noisy, or if for some reason a third party wishes to add a translation module with deltas outside of our usual infrastructure they could do so too.
Or maybe even Iota should use a single i18n module to centralize translations and noise across a large set of modules.
Although I wonder where in-game you would pick the language, as it would sort of make a hard module dependency active even in the main menu. Maybe we need a Translation module type that get loaded on game startup and cannot be disabled unless you revert to the default language or one in a different module.
If the engine or a module changes and makes new strings available some process needs to make that visible to language modules, so that in turn can become visible to Weblate. You could probably do that with some scanning in Jenkins and push forward updates with empty strings to the appropriate modules. Would take some automagic.
Then there's also the point to consider of having the main file in one repo yet language files in another.
Hmm. Yeah this is a bit trickier for the main game