refactor translations code

- seperate into its own file
- one class per translation strategy