Angular 2 перевод смена языка в приложении
Я новичок в Angular 2, и я строю свое первое приложение. У меня проблемы с пониманием того, как изменить язык глобально, из одного места. Прямо сейчас я могу изменить язык в компоненте. Я использую куки для хранения выбранного языка и доступен во всем мире через службу. Из того, что я понимаю, я думаю, что для этого мне нужно использовать слушателя, но я не знаю, как применить это на практике или если это правильный путь. Пример будет высоко ценится.
Спасибо
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);
}
}
и сервис
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);
}
}