move translations to CoreVM, move models to CoreVM for sentralization
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user