A long time ago, there was an idea to turn every language into a separate module, using the same core functionality. As far as I can see, this is implemented in the code. But the modules are not separately downloadable and installable and combinable.
This could be done in a way that OpenStreetMap offers maps: you select the area’s you need, a build is made for you, and then the download starts. (This might complicate updates, but it is possible to track the combinations actually in use and pre-generate those.)
Most of the size is in the dictionaries. Maybe it is an option to have only those as separate downloadable and languages enabled when they have been downloaded.
But maybe it could also be done by only installing the core, and ask for the desired languages at install time, and only download those.
Is what I am suggesting technically too complex?