Angular 2 traducción cambia el idioma en la aplicación

Soy nuevo en angular 2 y estoy construyendo mi primera aplicación. Tengo problemas para entender cómo cambiar el idioma globalmente, desde un solo lugar. En este momento puedo cambiar el idioma en un componente. Estoy usando una cookie para almacenar el idioma seleccionado y está disponible globalmente a través de un servicio. Por lo que entiendo, creo que tengo que usar un oyente para esto, pero no sé cómo ponerlo en práctica o si esta es la forma correcta. Un ejemplo será muy apreciado.

Gracias

import {Component} from "@angular/core";
import {TranslateService} from "ng2-translate";
import {SettingsService} from "../settings.service";

@Component({
    selector: 'rn-header',
    templateUrl: './header.html',
    styleUrls: ['./header.scss']
})
export class HeaderComponent {

    constructor(private translate: TranslateService, private settings: SettingsService) {
        translate.setDefaultLang(settings.getLanguage());
        translate.use(settings.getLanguage());
    }

    changeLanguage(language) {
        console.log('Language changed to: '+language);
        this.settings.setLanguage(language);
        this.translate.use(language);

    }

}

y el servicio

import {Injectable} from "@angular/core";
import {CookieService} from "angular2-cookie/services/cookies.service";

@Injectable()
export class SettingsService {
    defaultLanguage: string = 'en';

    constructor(private _cookieService: CookieService) {

    }

    getLanguage() {
        if (this._cookieService.get('RN_LANGUAGE_PREFERENCE')) {
            return this._cookieService.get('RN_LANGUAGE_PREFERENCE');
        }

        return this.defaultLanguage;
    }

    setLanguage(language: string) {

        this._cookieService.put("RN_LANGUAGE_PREFERENCE", language);
    }

}

Respuestas a la pregunta(1)

Su respuesta a la pregunta