1
0
mirror of https://github.com/tobspr/shapez.io.git synced 2026-03-02 03:39:21 +00:00

Initial support for translations

This commit is contained in:
tobspr
2020-06-10 12:13:38 +02:00
parent fad7a417f2
commit 714cd449e9
6 changed files with 860 additions and 3 deletions

View File

@@ -9,6 +9,7 @@ import { ExplainedResult } from "../core/explained_result";
import { THEMES, THEME, applyGameTheme } from "../game/theme";
import { IS_DEMO } from "../core/config";
import { T } from "../translations";
import { LANGUAGES } from "../languages";
const logger = createLogger("application_settings");
@@ -63,6 +64,16 @@ export const scrollWheelSensitivities = [
/** @type {Array<BaseSetting>} */
export const allApplicationSettings = [
new EnumSetting("language", {
options: Object.keys(LANGUAGES),
valueGetter: key => key,
textGetter: key => LANGUAGES[key].name,
category: categoryApp,
restartRequired: true,
changeCb: (app, id) => null,
magicValue: "auto-detect",
}),
new EnumSetting("uiScale", {
options: uiScales.sort((a, b) => a.size - b.size),
valueGetter: scale => scale.id,
@@ -165,6 +176,7 @@ class SettingsStorage {
this.theme = "light";
this.refreshRate = "60";
this.scrollWheelSensitivity = "regular";
this.language = "auto-detect";
this.alwaysMultiplace = false;
this.offerHints = true;
@@ -259,8 +271,17 @@ export class ApplicationSettings extends ReadWriteProxy {
return this.getAllSettings().keybindingOverrides;
}
getLanguage() {
return this.getAllSettings().language;
}
// Setters
updateLanguage(id) {
assert(LANGUAGES[id], "Language not known: " + id);
return this.updateSetting("language", id);
}
/**
* @param {string} key
* @param {string|boolean} value
@@ -337,7 +358,7 @@ export class ApplicationSettings extends ReadWriteProxy {
}
getCurrentVersion() {
return 8;
return 9;
}
/** @param {{settings: SettingsStorage, version: number}} data */
@@ -364,6 +385,11 @@ export class ApplicationSettings extends ReadWriteProxy {
data.version = 8;
}
if (data.version < 9) {
data.settings.language = "auto-detect";
data.version = 9;
}
return ExplainedResult.good();
}
}