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 @@
-