This is deliberately loose in terms of which does what, but what you're describing is one way to implement an async translation system plugin. Another way (if the system doesn't do batches) is have `.translate()` kick off the translation, `.push_translations()` do nothing and `.pull_translations()` grab the translated text and save it to the db.