mirror of
https://gitea.wildfiregames.com/0ad/0ad
synced 2026-06-18 22:33:56 -07:00
Language selection dropdown in the terms dialog.
Allows the user to either read the english Terms and Conditions written by Wildfire Games or the version translated into the current locale by transifex users. The underlying problem that Wildfire Games cannot verify the accuracy or completeness of the translations while providing the services to a global audience remains. Refs #5257 Differential Revision: https://code.wildfiregames.com/D1643 Comments By: bb on irc, smiley, asterix This was SVN commit r21894.
This commit is contained in:
parent
b496168d0a
commit
74fbb4b823
2 changed files with 45 additions and 7 deletions
|
|
@ -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 initURLButtons(urlButtons)
|
|||
});
|
||||
}
|
||||
|
||||
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({
|
||||
|
|
|
|||
|
|
@ -10,7 +10,14 @@
|
|||
|
||||
<object name="title" style="ModernLabelText" type="text" size="50%-128 -18 50%+128 14"/>
|
||||
|
||||
<object size="20 20 100%-20 100%-50">
|
||||
<object size="25 18 100%-25 50">
|
||||
<object type="text" name="languageLabel" style="ModernLabelText">
|
||||
<translatableAttribute id="caption">Language</translatableAttribute>
|
||||
</object>
|
||||
<object type="dropdown" name="languageDropdown" style="ModernDropDown" tooltip_style="onscreenToolTip"/>
|
||||
</object>
|
||||
|
||||
<object size="20 60 100%-20 100%-50">
|
||||
<object name="mainTextPanel" type="image" sprite="ModernFade">
|
||||
<object name="mainText" type="text" style="ModernTextPanel"/>
|
||||
</object>
|
||||
|
|
|
|||
Loading…
Reference in a new issue