move translations to CoreVM, move models to CoreVM for sentralization

This commit is contained in:
marlon-erler
2026-04-09 16:48:22 +00:00
parent 6204669ba3
commit 78672afc40
42 changed files with 1786 additions and 1322 deletions
+31
View File
@@ -1,5 +1,6 @@
// this file is responsible for all settings.
import { Languages } from "../../View/translations";
import StorageModel, { StorageModelSubPaths, filePaths } from "./storageModel";
export default class SettingsModel {
@@ -8,6 +9,7 @@ export default class SettingsModel {
// data
username: string;
firstDayOfWeek: string;
language: string;
// storage
setName(newValue: string): void {
@@ -28,6 +30,15 @@ export default class SettingsModel {
this.storageModel.write(path, newValue);
}
setLanguage(newValue: Languages): void {
this.language = newValue;
const path = StorageModel.getPath(
StorageModelSubPaths.SettingsModel,
filePaths.settingsModel.language,
);
this.storageModel.write(path, newValue);
}
// load
loadUsernam(): void {
const path = StorageModel.getPath(
@@ -47,6 +58,15 @@ export default class SettingsModel {
this.firstDayOfWeek = content ?? "0";
}
loadLanguage(): void {
const path = StorageModel.getPath(
StorageModelSubPaths.SettingsModel,
filePaths.settingsModel.language,
);
const content = this.storageModel.read(path);
this.language = content ?? SettingsModel.getSystemLanguage();
}
// init
constructor(storageModel: StorageModel) {
this.storageModel = storageModel;
@@ -54,4 +74,15 @@ export default class SettingsModel {
this.loadUsernam();
this.loadFirstDayofWeek();
}
static getSystemLanguage(): Languages {
switch (navigator.language.substring(0, 2)) {
case "de":
return Languages.German;
case "es":
return Languages.Spanish;
default:
return Languages.English;
}
}
}