Added language setting

This commit is contained in:
Miguel S 2024-04-18 19:27:51 +02:00
parent aae40d2246
commit 1d1789b49b

View File

@ -1,3 +1,4 @@
import i18next from "i18next";
import BattleScene from "../battle-scene"; import BattleScene from "../battle-scene";
import { hasTouchscreen } from "../touch-controls"; import { hasTouchscreen } from "../touch-controls";
import { updateWindowType } from "../ui/ui-theme"; import { updateWindowType } from "../ui/ui-theme";
@ -22,7 +23,8 @@ export enum Setting {
Player_Gender = "PLAYER_GENDER", Player_Gender = "PLAYER_GENDER",
Gamepad_Support = "GAMEPAD_SUPPORT", Gamepad_Support = "GAMEPAD_SUPPORT",
Touch_Controls = "TOUCH_CONTROLS", Touch_Controls = "TOUCH_CONTROLS",
Vibration = "VIBRATION" Vibration = "VIBRATION",
Language = "LANGUAGE"
} }
export interface SettingOptions { export interface SettingOptions {
@ -52,7 +54,8 @@ export const settingOptions: SettingOptions = {
[Setting.Player_Gender]: [ 'Boy', 'Girl' ], [Setting.Player_Gender]: [ 'Boy', 'Girl' ],
[Setting.Gamepad_Support]: [ 'Auto', 'Disabled' ], [Setting.Gamepad_Support]: [ 'Auto', 'Disabled' ],
[Setting.Touch_Controls]: [ 'Auto', 'Disabled' ], [Setting.Touch_Controls]: [ 'Auto', 'Disabled' ],
[Setting.Vibration]: [ 'Auto', 'Disabled' ] [Setting.Vibration]: [ 'Auto', 'Disabled' ],
[Setting.Language]: [ 'en', 'fr' ]
}; };
export const settingDefaults: SettingDefaults = { export const settingDefaults: SettingDefaults = {
@ -74,10 +77,11 @@ export const settingDefaults: SettingDefaults = {
[Setting.Player_Gender]: 0, [Setting.Player_Gender]: 0,
[Setting.Gamepad_Support]: 0, [Setting.Gamepad_Support]: 0,
[Setting.Touch_Controls]: 0, [Setting.Touch_Controls]: 0,
[Setting.Vibration]: 0 [Setting.Vibration]: 0,
[Setting.Language]: 0
}; };
export const reloadSettings: Setting[] = [ Setting.UI_Theme ]; export const reloadSettings: Setting[] = [ Setting.UI_Theme, Setting.Language ];
export function setSetting(scene: BattleScene, setting: Setting, value: integer): boolean { export function setSetting(scene: BattleScene, setting: Setting, value: integer): boolean {
switch (setting) { switch (setting) {
@ -151,6 +155,9 @@ export function setSetting(scene: BattleScene, setting: Setting, value: integer)
case Setting.Vibration: case Setting.Vibration:
scene.enableVibration = settingOptions[setting][value] !== 'Disabled' && hasTouchscreen(); scene.enableVibration = settingOptions[setting][value] !== 'Disabled' && hasTouchscreen();
break; break;
case Setting.Language:
i18next.changeLanguage(settingOptions[setting][value]);
break;
} }
return true; return true;