1
0
Fork 0
VaultUI/src/pages/SetLanguage.js

65 lines
1.8 KiB
JavaScript
Raw Normal View History

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"),
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");
pageState.language = language;
console.log(pageState.language);
2021-04-24 16:26:31 +01:00
i18next.changeLanguage(language).then((_) => {
changePage("HOME", false);
location.reload();
2021-04-19 20:17:07 +01:00
});
});
}
get name() {
return i18next.t("set_language_title");
}
}