From 24ddb29e137d342f57d8e23249015446edd8fca4 Mon Sep 17 00:00:00 2001 From: karl-police Date: Fri, 17 May 2024 19:13:06 +0200 Subject: [PATCH] Display current set language except erroring ones --- src/ui/settings-ui-handler.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/ui/settings-ui-handler.ts b/src/ui/settings-ui-handler.ts index 6e40103b870..579f9d21b4e 100644 --- a/src/ui/settings-ui-handler.ts +++ b/src/ui/settings-ui-handler.ts @@ -6,6 +6,7 @@ import { Mode } from "./ui"; import UiHandler from "./ui-handler"; import { addWindow } from "./ui-theme"; import {Button} from "../enums/buttons"; +import i18next from "i18next"; export default class SettingsUiHandler extends UiHandler { private settingsContainer: Phaser.GameObjects.Container; @@ -68,6 +69,26 @@ export default class SettingsUiHandler extends UiHandler { const valueLabel = addTextObject(this.scene, 0, 0, option, settingDefaults[Setting[setting]] === o ? TextStyle.SETTINGS_SELECTED : TextStyle.WINDOW); valueLabel.setOrigin(0, 0); + // Current the game reloads + // this is ideal to show the current set Language, right here + if ((Setting[setting] == Setting.Language) && (valueLabel.text == "English")) { + var tempLang = i18next.language; + + const displayNames = (() => { + try { + return new Intl.DisplayNames([tempLang], { type: 'language' }); + } catch(err) { + console.warn(err); + // Fallback to English. + tempLang = "en"; + return new Intl.DisplayNames([tempLang], { type: 'language' }); + }})(); + + // Display current set language, translated in the current language. + // Except zH, that one mismatches with DisplayNames. + valueLabel.text = displayNames.of(tempLang); + } + this.optionsContainer.add(valueLabel); return valueLabel;