innotec-auth-plugin
Version:
The Innotec-Auth-Plugin is designed to handle all authentication processes for applications where's conntected to the innotec v2 infrastructure. Theses plugin provides different authentication processes:
71 lines (53 loc) • 1.82 kB
text/typescript
import { Injectable, Inject } from '@angular/core';
import { LanguageService } from '../language/language.service';
const languagefile = require('./languagefile.json');
declare var window: any;
()
export class I18nService {
constructor((LanguageService) public lang: LanguageService) {}
private getBrowserLang() {
if (typeof window === 'undefined' || typeof window.navigator === 'undefined') {
return 'en';
}
let browserLang = window.navigator.languages ? window.navigator.languages[0] : null;
browserLang = browserLang || window.navigator.language || window.navigator.browserLanguage || window.navigator.userLanguage;
if (browserLang.indexOf('-') !== -1) {
browserLang = browserLang.split('-')[0];
}
if (browserLang.indexOf('_') !== -1) {
browserLang = browserLang.split('_')[0];
}
return browserLang;
}
public getLanguage() {
if (!localStorage.getItem('locale')) {
return this.lang.getLanguage(this.getBrowserLang()).code;
}
return this.lang.getLanguage(localStorage.getItem('locale')).code;
}
public set(langcode) {
localStorage.setItem('locale', this.lang.getLanguage(langcode).code)
}
public get(key) {
let code = this.getLanguage();
let codeindex = languagefile.map(d => {
return d.code;
}).indexOf(code);
if (codeindex === -1) {
const mainlng = code.substr(0, 2);
codeindex = languagefile.map(d => {
return d.code;
}).indexOf(mainlng);
}
if (codeindex === -1) {
codeindex = languagefile.map(d => {
return d.code;
}).indexOf('en');
}
let resolveobj = languagefile[codeindex].values;
key.split('.').forEach((p) => {
resolveobj = resolveobj[p];
});
return resolveobj;
}
}