Index: ps/trunk/binaries/data/mods/mod/gui/termsdialog/termsdialog.js =================================================================== --- ps/trunk/binaries/data/mods/mod/gui/termsdialog/termsdialog.js +++ ps/trunk/binaries/data/mods/mod/gui/termsdialog/termsdialog.js @@ -1,17 +1,14 @@ var g_TermsPage; +var g_TermsFile; function init(data) { g_TermsPage = data.page; + g_TermsFile = data.file; Engine.GetGUIObjectByName("title").caption = data.title; - - Engine.GetGUIObjectByName("mainText").caption = - Engine.FileExists(data.file) ? - Engine.TranslateLines(Engine.ReadFile(data.file)) : - data.file; - initURLButtons(data.urlButtons); + initLanguageSelection(); } function initURLButtons(urlButtons) @@ -30,6 +27,40 @@ }); } +function initLanguageSelection() +{ + let languageLabel = Engine.GetGUIObjectByName("languageLabel"); + let languageLabelWidth = Engine.GetTextWidth(languageLabel.font, languageLabel.caption) + languageLabel.size = "0 0 " + languageLabelWidth + " 100%"; + + let languageDropdown = Engine.GetGUIObjectByName("languageDropdown"); + languageDropdown.size = (languageLabelWidth + 10) + " 4 100% 100%"; + + languageDropdown.list = (() => { + let displayNames = Engine.GetSupportedLocaleDisplayNames(); + let baseNames = Engine.GetSupportedLocaleBaseNames(); + + // en-US + let list = [displayNames[0]]; + + // current locale + let currentLocaleDict = Engine.GetFallbackToAvailableDictLocale(Engine.GetCurrentLocale()); + if (currentLocaleDict != baseNames[0]) + list.push(displayNames[baseNames.indexOf(currentLocaleDict)]); + + return list; + })(); + + languageDropdown.onSelectionChange = () => { + Engine.GetGUIObjectByName("mainText").caption = + Engine.FileExists(g_TermsFile) ? + (languageDropdown.selected == 1 ? Engine.TranslateLines(Engine.ReadFile(g_TermsFile)) : Engine.ReadFile(g_TermsFile)) : + g_TermsFile; + }; + + languageDropdown.selected = languageDropdown.list.length - 1; +} + function closeTerms(accepted) { Engine.PopGuiPageCB({ Index: ps/trunk/binaries/data/mods/mod/gui/termsdialog/termsdialog.xml =================================================================== --- ps/trunk/binaries/data/mods/mod/gui/termsdialog/termsdialog.xml +++ ps/trunk/binaries/data/mods/mod/gui/termsdialog/termsdialog.xml @@ -10,7 +10,14 @@ - + + + Language + + + + +