Provider

Implement most functionality of `gettextCatalog` as a provider. This allows clients to inject `gettextCatalogProvider` into the `config` phase of Angular's lifecycle. 
Could you explain what is going on here? I'm not exactly sure I understand what this does.