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