Saving it to disk and then unpacking from there might be a safer strategy anyway; right now, they're probably small enough that it doesn't matter, but loading them into a StringIO buffer means it all has to end up in memory at once, which could be problematic in highly memory-constrained devices (e.g. Model A Pi's).

Also, it's nice to have it keep these zip files around (rather than deleting them), so that they can be passed on to other installations (either P2P or via manual copying). In that vein, it would be nice to be able to support importing a language pack from a local zip file, rather than only from a central-server URL.