2021-04-19 20:17:07 +01:00
|
|
|
import { Page } from "../types/Page.js";
|
|
|
|
import { setPageContent, changePage } from "../pageUtils.js";
|
|
|
|
import { makeElement } from "../htmlUtils.js";
|
|
|
|
import { Margin } from "../elements/Margin.js";
|
|
|
|
import i18next from 'i18next';
|
|
|
|
|
2021-04-21 00:02:47 +01:00
|
|
|
let languages = ["en", "de", "nl", "ru", "fr"];
|
2021-04-19 20:17:07 +01:00
|
|
|
|
|
|
|
export class SetLanguagePage extends Page {
|
|
|
|
constructor() {
|
|
|
|
super();
|
|
|
|
}
|
|
|
|
render() {
|
|
|
|
let setLanguageForm = makeElement({
|
|
|
|
tag: "form",
|
|
|
|
id: "setLanguageForm",
|
|
|
|
children: [
|
|
|
|
Margin(makeElement({
|
|
|
|
tag: "select",
|
|
|
|
class: ["uk-select", "uk-form-width-large"],
|
|
|
|
attributes: {
|
|
|
|
name: "language"
|
|
|
|
},
|
|
|
|
children: languages.map(function (languageID) {
|
|
|
|
return makeElement({
|
|
|
|
tag: "option",
|
|
|
|
text: i18next.getFixedT(languageID, null)("language_name"),
|
2021-04-20 20:19:34 +01:00
|
|
|
attributes: { value: languageID }
|
2021-04-19 20:17:07 +01:00
|
|
|
})
|
|
|
|
})
|
|
|
|
})
|
|
|
|
),
|
|
|
|
makeElement({
|
|
|
|
tag: "p",
|
|
|
|
id: "errorText",
|
|
|
|
class: "uk-text-danger"
|
|
|
|
}),
|
|
|
|
makeElement({
|
|
|
|
tag: "button",
|
|
|
|
class: ["uk-button", "uk-button-primary"],
|
|
|
|
text: i18next.t("set_language_btn"),
|
|
|
|
attributes: {
|
|
|
|
type: "submit",
|
|
|
|
}
|
|
|
|
})
|
|
|
|
]
|
|
|
|
});
|
|
|
|
setPageContent(setLanguageForm);
|
|
|
|
setLanguageForm.addEventListener("submit", function (e) {
|
|
|
|
e.preventDefault();
|
|
|
|
let formData = new FormData(setLanguageForm);
|
|
|
|
let language = formData.get("language");
|
|
|
|
localStorage.setItem('language', language);
|
2021-04-24 16:26:31 +01:00
|
|
|
i18next.changeLanguage(language).then((_) => {
|
2021-04-20 20:19:34 +01:00
|
|
|
changePage("HOME", false);
|
|
|
|
location.reload();
|
2021-04-19 20:17:07 +01:00
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
get name() {
|
|
|
|
return i18next.t("set_language_title");
|
|
|
|
}
|
|
|
|
}
|