I am using angular2localization for internationalisation. It seems to work well by setting a locale (which is stored once set though you would need to 'adjust' this initial yourself either by user action or config setting).
Node location
angular2localization documentation
It does use pipes but rather than hard coding uses a locale reference which is generated on startup.
The nice thing is that when a locale is changed it adjusts the settings instantly and caches the locale for use when the page is next opened. It is a client/user specific and not server override option (though you could force the locale if you so wished globally)
// Sets a new locale & currency.
selectLocale(language: string, country: string, currency: string, selectionText: string): void {
//Page will translate to new language automatically and without refreshing
//- the power of pipes...
this.locale.setCurrentLocale(language, country);
this.locale.setCurrentCurrency(currency);
}
Anyway hopefully that helps.