creative-connections/Bodylight.js-Components

View on GitHub
src_aurelia-bodylight-plugin/src/elements/language.js

Summary

Maintainability
B
4 hrs
Test Coverage
import localforage from "localforage";
import {I18N} from 'aurelia-i18n';
import {inject} from 'aurelia-framework';

@inject(I18N)
export class Language {
    showdialog = false;
    lang='';    

    constructor(i18n) {
        this.i18n = i18n;
    }

    async bind(){
        //check if lang is set if not showdialog
        try {
            const value = await localforage.getItem('bdl-lang');
            console.log(value);
            this.lang = value;
            if (!this.lang) 
            {
                this.selecten();
                this.showdialog = true;
            }
            else {
                this.i18n.setLocale(this.lang);
                this.i18n.updateTranslations(window.document);
            }
        } catch (err) {
            console.log(err);
        }
    }

    attached(){

    }

    switchlanguage(){
        this.showdialog=true;
        
    }

    selecten(){
        this.i18n.setLocale('en');
        this.i18n.updateTranslations(window.document);
        this.lang = 'en';
        localforage.setItem('bdl-lang',this.lang);
        this.closelanguage();        
    }

    selectcz(){
        this.i18n.setLocale('cs');
        this.i18n.updateTranslations(window.document);
        this.lang = 'cs';
        localforage.setItem('bdl-lang',this.lang);
        this.closelanguage();
    }

    closelanguage(){
        this.showdialog=false;
    }
}