Update to use of traits

The trait removes a lot of logic from the implementation and eases
the usage of i18n in modules.