mirror of
https://github.com/mempool/mempool.git
synced 2025-02-28 16:58:32 +01:00
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
|
import { DOCUMENT } from '@angular/common';
|
||
|
import { Inject, Injectable } from '@angular/core';
|
||
|
import { languages } from 'src/app/app.constants';
|
||
|
import { RelativeUrlPipe } from '../shared/pipes/relative-url/relative-url.pipe';
|
||
|
|
||
|
@Injectable({
|
||
|
providedIn: 'root'
|
||
|
})
|
||
|
export class LanguageService {
|
||
|
private language = 'en';
|
||
|
private languages = languages;
|
||
|
constructor(
|
||
|
@Inject(DOCUMENT) private document: Document,
|
||
|
private relativeUrlPipe: RelativeUrlPipe,
|
||
|
) { }
|
||
|
|
||
|
getLanguage(): string {
|
||
|
return this.language;
|
||
|
}
|
||
|
|
||
|
getLanguageForUrl() {
|
||
|
return this.language === 'en' ? '' : '/' + this.language;
|
||
|
}
|
||
|
|
||
|
setLocalLanguage() {
|
||
|
const urlLanguage = this.document.location.pathname.split('/')[1];
|
||
|
if (this.languages.map((lang) => lang.code).indexOf(urlLanguage) > -1) {
|
||
|
this.language = urlLanguage;
|
||
|
} else {
|
||
|
this.language = 'en';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
setLanguage(language: string): void {
|
||
|
try {
|
||
|
document.cookie = `lang=${language}; expires=Thu, 18 Dec 2050 12:00:00 UTC; path=/`;
|
||
|
} catch (e) { }
|
||
|
|
||
|
this.document.location.href = this.relativeUrlPipe.transform(`/${language}/`);
|
||
|
}
|
||
|
}
|