funky-framadate-front/src/app/ui/selector/language/language.component.ts

63 lines
1.6 KiB
TypeScript

import {Component, Inject, OnInit} from '@angular/core';
import {TranslateService} from '@ngx-translate/core';
import {ConfigService} from '../../../services/config.service';
import {DOCUMENT} from '@angular/common';
import {Router} from '@angular/router';
@Component({
selector: 'framadate-language',
templateUrl: './language.component.html',
styleUrls: ['./language.component.scss']
})
export class LanguageComponent implements OnInit {
currentLang = 'fr';
langsAvailable = ['fr', 'en'];
title = 'framadate';
// translation demo:
minutes = 12;
user = {
name: 'Arthur',
age: 42
};
constructor(private translate: TranslateService,
public config: ConfigService,
@Inject(DOCUMENT) private document,
private route: Router) {
this.translate.setDefaultLang(this.currentLang);
}
ngOnInit(): void {
}
switchLanguage(language: string) {
this.translate.use(language);
this.currentLang = language;
}
/**
* set the next lang or loop to the first
* this is to manage future languages available
*/
changeLanguage() {
const langs = this.langsAvailable;
const indexofCurrent = langs.indexOf(this.currentLang);
if (indexofCurrent > -1) {
let newIndex = indexofCurrent + 1;
if (newIndex > (langs.length - 1)) {
newIndex = 0;
}
this.currentLang = this.langsAvailable[newIndex];
}
this.translate.use(this.currentLang);
}
toggleMenu() {
this.config.menuVisible = !this.config.menuVisible;
}
}