refactor translation listener

This gets us ready to translate other things.