Extract translation strings.

This commit is contained in:
Matthias Mailänder
2022-08-29 20:56:25 +02:00
committed by Gustas
parent dfd5a960ed
commit 0b67b5bfae
42 changed files with 1819 additions and 410 deletions

View File

@@ -22,6 +22,50 @@ namespace OpenRA.Mods.Common.Widgets.Logic
{
public class DisplaySettingsLogic : ChromeLogic
{
[TranslationReference]
static readonly string Close = "close";
[TranslationReference]
static readonly string Medium = "medium";
[TranslationReference]
static readonly string Far = "far";
[TranslationReference]
static readonly string Furthest = "furthest";
[TranslationReference]
static readonly string Windowed = "windowed";
[TranslationReference]
static readonly string LegacyFullscreen = "legacy-fullscreen";
readonly string legacyFullscreen;
[TranslationReference]
static readonly string Fullscreen = "fullscreen";
readonly string fullscreen;
[TranslationReference("number")]
static readonly string Display = "display";
[TranslationReference]
static readonly string Standard = "standard";
[TranslationReference]
static readonly string ShowOnDamage = "show-on-damage";
[TranslationReference]
static readonly string AlwaysShow = "always-show";
[TranslationReference]
static readonly string Automatic = "automatic";
[TranslationReference]
static readonly string Manual = "manual";
[TranslationReference]
static readonly string Disabled = "disabled";
static readonly int OriginalVideoDisplay;
static readonly WindowMode OriginalGraphicsMode;
static readonly int2 OriginalGraphicsWindowedSize;
@@ -32,6 +76,13 @@ namespace OpenRA.Mods.Common.Widgets.Logic
readonly WorldRenderer worldRenderer;
readonly WorldViewportSizes viewportSizes;
readonly string showOnDamage;
readonly string alwaysShow;
readonly string automatic;
readonly string manual;
readonly string disabled;
static DisplaySettingsLogic()
{
var original = Game.Settings;
@@ -49,16 +100,35 @@ namespace OpenRA.Mods.Common.Widgets.Logic
this.modData = modData;
viewportSizes = modData.Manifest.Get<WorldViewportSizes>();
legacyFullscreen = modData.Translation.GetString(LegacyFullscreen);
fullscreen = modData.Translation.GetString(Fullscreen);
registerPanel(panelID, label, InitPanel, ResetPanel);
showOnDamage = modData.Translation.GetString(ShowOnDamage);
alwaysShow = modData.Translation.GetString(AlwaysShow);
automatic = modData.Translation.GetString(Automatic);
manual = modData.Translation.GetString(Manual);
disabled = modData.Translation.GetString(Disabled);
}
public static readonly Dictionary<WorldViewport, string> ViewportSizeNames = new Dictionary<WorldViewport, string>()
public static string GetViewportSizeName(ModData modData, WorldViewport worldViewport)
{
{ WorldViewport.Close, "Close" },
{ WorldViewport.Medium, "Medium" },
{ WorldViewport.Far, "Far" },
{ WorldViewport.Native, "Furthest" }
};
switch (worldViewport)
{
case WorldViewport.Close:
return modData.Translation.GetString(Close);
case WorldViewport.Medium:
return modData.Translation.GetString(Medium);
case WorldViewport.Far:
return modData.Translation.GetString(Far);
case WorldViewport.Native:
return modData.Translation.GetString(Furthest);
default:
return "";
}
}
Func<bool> InitPanel(Widget panel)
{
@@ -77,13 +147,14 @@ namespace OpenRA.Mods.Common.Widgets.Logic
SettingsUtils.BindCheckboxPref(panel, "HIDE_REPLAY_CHAT_CHECKBOX", gs, "HideReplayChat");
var windowModeDropdown = panel.Get<DropDownButtonWidget>("MODE_DROPDOWN");
windowModeDropdown.OnMouseDown = _ => ShowWindowModeDropdown(windowModeDropdown, ds, scrollPanel);
windowModeDropdown.GetText = () => ds.Mode == WindowMode.Windowed ?
"Windowed" : ds.Mode == WindowMode.Fullscreen ? "Fullscreen (Legacy)" : "Fullscreen";
windowModeDropdown.OnMouseDown = _ => ShowWindowModeDropdown(modData, windowModeDropdown, ds, scrollPanel);
windowModeDropdown.GetText = () => ds.Mode == WindowMode.Windowed
? modData.Translation.GetString(Windowed)
: ds.Mode == WindowMode.Fullscreen ? legacyFullscreen : fullscreen;
var displaySelectionDropDown = panel.Get<DropDownButtonWidget>("DISPLAY_SELECTION_DROPDOWN");
displaySelectionDropDown.OnMouseDown = _ => ShowDisplaySelectionDropdown(displaySelectionDropDown, ds);
var displaySelectionLabel = new CachedTransform<int, string>(i => $"Display {i + 1}");
var displaySelectionLabel = new CachedTransform<int, string>(i => modData.Translation.GetString(Display, Translation.Arguments("number", i + 1)));
displaySelectionDropDown.GetText = () => displaySelectionLabel.Update(ds.VideoDisplay);
displaySelectionDropDown.IsDisabled = () => Game.Renderer.DisplayCount < 2;
@@ -95,18 +166,24 @@ namespace OpenRA.Mods.Common.Widgets.Logic
glProfileDropdown.IsDisabled = () => disableProfile;
var statusBarsDropDown = panel.Get<DropDownButtonWidget>("STATUS_BAR_DROPDOWN");
statusBarsDropDown.OnMouseDown = _ => ShowStatusBarsDropdown(statusBarsDropDown, gs);
statusBarsDropDown.GetText = () => gs.StatusBars == StatusBarsType.Standard ?
"Standard" : gs.StatusBars == StatusBarsType.DamageShow ? "Show On Damage" : "Always Show";
statusBarsDropDown.OnMouseDown = _ => ShowStatusBarsDropdown(modData, statusBarsDropDown, gs);
statusBarsDropDown.GetText = () => gs.StatusBars == StatusBarsType.Standard
? modData.Translation.GetString(Standard)
: gs.StatusBars == StatusBarsType.DamageShow
? showOnDamage
: alwaysShow;
var targetLinesDropDown = panel.Get<DropDownButtonWidget>("TARGET_LINES_DROPDOWN");
targetLinesDropDown.OnMouseDown = _ => ShowTargetLinesDropdown(targetLinesDropDown, gs);
targetLinesDropDown.GetText = () => gs.TargetLines == TargetLinesType.Automatic ?
"Automatic" : gs.TargetLines == TargetLinesType.Manual ? "Manual" : "Disabled";
targetLinesDropDown.OnMouseDown = _ => ShowTargetLinesDropdown(modData, targetLinesDropDown, gs);
targetLinesDropDown.GetText = () => gs.TargetLines == TargetLinesType.Automatic
? automatic
: gs.TargetLines == TargetLinesType.Manual
? manual
: disabled;
var battlefieldCameraDropDown = panel.Get<DropDownButtonWidget>("BATTLEFIELD_CAMERA_DROPDOWN");
var battlefieldCameraLabel = new CachedTransform<WorldViewport, string>(vs => ViewportSizeNames[vs]);
battlefieldCameraDropDown.OnMouseDown = _ => ShowBattlefieldCameraDropdown(battlefieldCameraDropDown, viewportSizes, ds);
var battlefieldCameraLabel = new CachedTransform<WorldViewport, string>(vs => GetViewportSizeName(modData, vs));
battlefieldCameraDropDown.OnMouseDown = _ => ShowBattlefieldCameraDropdown(modData, battlefieldCameraDropDown, viewportSizes, ds);
battlefieldCameraDropDown.GetText = () => battlefieldCameraLabel.Update(ds.ViewportDistance);
BindTextNotificationPoolFilterSettings(panel, gs);
@@ -251,13 +328,13 @@ namespace OpenRA.Mods.Common.Widgets.Logic
};
}
static void ShowWindowModeDropdown(DropDownButtonWidget dropdown, GraphicSettings s, ScrollPanelWidget scrollPanel)
static void ShowWindowModeDropdown(ModData modData, DropDownButtonWidget dropdown, GraphicSettings s, ScrollPanelWidget scrollPanel)
{
var options = new Dictionary<string, WindowMode>()
{
{ "Fullscreen", WindowMode.PseudoFullscreen },
{ "Fullscreen (Legacy)", WindowMode.Fullscreen },
{ "Windowed", WindowMode.Windowed },
{ modData.Translation.GetString(Fullscreen), WindowMode.PseudoFullscreen },
{ modData.Translation.GetString(LegacyFullscreen), WindowMode.Fullscreen },
{ modData.Translation.GetString(Windowed), WindowMode.Windowed },
};
Func<string, ScrollItemWidget, ScrollItemWidget> setupItem = (o, itemTemplate) =>
@@ -300,13 +377,13 @@ namespace OpenRA.Mods.Common.Widgets.Logic
}
}
static void ShowStatusBarsDropdown(DropDownButtonWidget dropdown, GameSettings s)
static void ShowStatusBarsDropdown(ModData modData, DropDownButtonWidget dropdown, GameSettings s)
{
var options = new Dictionary<string, StatusBarsType>()
{
{ "Standard", StatusBarsType.Standard },
{ "Show On Damage", StatusBarsType.DamageShow },
{ "Always Show", StatusBarsType.AlwaysShow },
{ modData.Translation.GetString(Standard), StatusBarsType.Standard },
{ modData.Translation.GetString(ShowOnDamage), StatusBarsType.DamageShow },
{ modData.Translation.GetString(AlwaysShow), StatusBarsType.AlwaysShow },
};
Func<string, ScrollItemWidget, ScrollItemWidget> setupItem = (o, itemTemplate) =>
@@ -355,13 +432,13 @@ namespace OpenRA.Mods.Common.Widgets.Logic
dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 500, profiles, setupItem);
}
static void ShowTargetLinesDropdown(DropDownButtonWidget dropdown, GameSettings s)
static void ShowTargetLinesDropdown(ModData modData, DropDownButtonWidget dropdown, GameSettings s)
{
var options = new Dictionary<string, TargetLinesType>()
{
{ "Automatic", TargetLinesType.Automatic },
{ "Manual", TargetLinesType.Manual },
{ "Disabled", TargetLinesType.Disabled },
{ modData.Translation.GetString(Automatic), TargetLinesType.Automatic },
{ modData.Translation.GetString(Manual), TargetLinesType.Manual },
{ modData.Translation.GetString(Disabled), TargetLinesType.Disabled },
};
Func<string, ScrollItemWidget, ScrollItemWidget> setupItem = (o, itemTemplate) =>
@@ -377,7 +454,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 500, options.Keys, setupItem);
}
public static void ShowBattlefieldCameraDropdown(DropDownButtonWidget dropdown, WorldViewportSizes viewportSizes, GraphicSettings gs)
public static void ShowBattlefieldCameraDropdown(ModData modData, DropDownButtonWidget dropdown, WorldViewportSizes viewportSizes, GraphicSettings gs)
{
Func<WorldViewport, ScrollItemWidget, ScrollItemWidget> setupItem = (o, itemTemplate) =>
{
@@ -385,7 +462,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
() => gs.ViewportDistance == o,
() => gs.ViewportDistance = o);
var label = ViewportSizeNames[o];
var label = GetViewportSizeName(modData, o);
item.Get<LabelWidget>("LABEL").GetText = () => label;
return item;
};

View File

@@ -17,11 +17,53 @@ namespace OpenRA.Mods.Common.Widgets.Logic
{
public class InputSettingsLogic : ChromeLogic
{
[TranslationReference]
static readonly string Classic = "classic";
readonly string classic;
[TranslationReference]
static readonly string Modern = "modern";
readonly string modern;
[TranslationReference]
static readonly string Disabled = "disabled";
[TranslationReference]
static readonly string Standard = "standard";
[TranslationReference]
static readonly string Inverted = "inverted";
[TranslationReference]
static readonly string Joystick = "joystick";
[TranslationReference]
static readonly string Alt = "alt";
[TranslationReference]
static readonly string Ctrl = "ctrl";
[TranslationReference]
static readonly string Meta = "meta";
[TranslationReference]
static readonly string Shift = "shift";
[TranslationReference]
static readonly string None = "none";
static InputSettingsLogic() { }
readonly ModData modData;
[ObjectCreator.UseCtor]
public InputSettingsLogic(Action<string, string, Func<Widget, Func<bool>>, Func<Widget, Action>> registerPanel, string panelID, string label)
public InputSettingsLogic(Action<string, string, Func<Widget, Func<bool>>, Func<Widget, Action>> registerPanel, string panelID, string label, ModData modData)
{
this.modData = modData;
classic = modData.Translation.GetString(Classic);
modern = modData.Translation.GetString(Modern);
registerPanel(panelID, label, InitPanel, ResetPanel);
}
@@ -38,11 +80,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic
SettingsUtils.BindSliderPref(panel, "UI_SCROLLSPEED_SLIDER", gs, "UIScrollSpeed");
var mouseControlDropdown = panel.Get<DropDownButtonWidget>("MOUSE_CONTROL_DROPDOWN");
mouseControlDropdown.OnMouseDown = _ => ShowMouseControlDropdown(mouseControlDropdown, gs);
mouseControlDropdown.GetText = () => gs.UseClassicMouseStyle ? "Classic" : "Modern";
mouseControlDropdown.OnMouseDown = _ => ShowMouseControlDropdown(modData, mouseControlDropdown, gs);
mouseControlDropdown.GetText = () => gs.UseClassicMouseStyle ? classic : modern;
var mouseScrollDropdown = panel.Get<DropDownButtonWidget>("MOUSE_SCROLL_TYPE_DROPDOWN");
mouseScrollDropdown.OnMouseDown = _ => ShowMouseScrollDropdown(mouseScrollDropdown, gs);
mouseScrollDropdown.OnMouseDown = _ => ShowMouseScrollDropdown(modData, mouseScrollDropdown, gs);
mouseScrollDropdown.GetText = () => gs.MouseScroll.ToString();
var mouseControlDescClassic = panel.Get("MOUSE_CONTROL_DESC_CLASSIC");
@@ -87,7 +129,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
};
var zoomModifierDropdown = panel.Get<DropDownButtonWidget>("ZOOM_MODIFIER");
zoomModifierDropdown.OnMouseDown = _ => ShowZoomModifierDropdown(zoomModifierDropdown, gs);
zoomModifierDropdown.OnMouseDown = _ => ShowZoomModifierDropdown(modData, zoomModifierDropdown, gs);
zoomModifierDropdown.GetText = () => gs.ZoomModifier.ToString();
SettingsUtils.AdjustSettingsScrollPanelLayout(scrollPanel);
@@ -119,12 +161,12 @@ namespace OpenRA.Mods.Common.Widgets.Logic
};
}
public static void ShowMouseControlDropdown(DropDownButtonWidget dropdown, GameSettings s)
public static void ShowMouseControlDropdown(ModData modData, DropDownButtonWidget dropdown, GameSettings s)
{
var options = new Dictionary<string, bool>()
{
{ "Classic", true },
{ "Modern", false },
{ modData.Translation.GetString(Classic), true },
{ modData.Translation.GetString(Modern), false },
};
Func<string, ScrollItemWidget, ScrollItemWidget> setupItem = (o, itemTemplate) =>
@@ -139,14 +181,14 @@ namespace OpenRA.Mods.Common.Widgets.Logic
dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 500, options.Keys, setupItem);
}
static void ShowMouseScrollDropdown(DropDownButtonWidget dropdown, GameSettings s)
static void ShowMouseScrollDropdown(ModData modData, DropDownButtonWidget dropdown, GameSettings s)
{
var options = new Dictionary<string, MouseScrollType>()
{
{ "Disabled", MouseScrollType.Disabled },
{ "Standard", MouseScrollType.Standard },
{ "Inverted", MouseScrollType.Inverted },
{ "Joystick", MouseScrollType.Joystick },
{ modData.Translation.GetString(Disabled), MouseScrollType.Disabled },
{ modData.Translation.GetString(Standard), MouseScrollType.Standard },
{ modData.Translation.GetString(Inverted), MouseScrollType.Inverted },
{ modData.Translation.GetString(Joystick), MouseScrollType.Joystick },
};
Func<string, ScrollItemWidget, ScrollItemWidget> setupItem = (o, itemTemplate) =>
@@ -161,15 +203,15 @@ namespace OpenRA.Mods.Common.Widgets.Logic
dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 500, options.Keys, setupItem);
}
static void ShowZoomModifierDropdown(DropDownButtonWidget dropdown, GameSettings s)
static void ShowZoomModifierDropdown(ModData modData, DropDownButtonWidget dropdown, GameSettings s)
{
var options = new Dictionary<string, Modifiers>()
{
{ "Alt", Modifiers.Alt },
{ "Ctrl", Modifiers.Ctrl },
{ "Meta", Modifiers.Meta },
{ "Shift", Modifiers.Shift },
{ "None", Modifiers.None }
{ modData.Translation.GetString(Alt), Modifiers.Alt },
{ modData.Translation.GetString(Ctrl), Modifiers.Ctrl },
{ modData.Translation.GetString(Meta), Modifiers.Meta },
{ modData.Translation.GetString(Shift), Modifiers.Shift },
{ modData.Translation.GetString(None), Modifiers.None }
};
Func<string, ScrollItemWidget, ScrollItemWidget> setupItem = (o, itemTemplate) =>

View File

@@ -19,6 +19,39 @@ namespace OpenRA.Mods.Common.Widgets.Logic
{
public class SettingsLogic : ChromeLogic
{
[TranslationReference]
static readonly string SettingsSaveTitle = "settings-save-title";
[TranslationReference]
static readonly string SettingsSavePrompt = "settings-save-prompt";
[TranslationReference]
static readonly string SettingsSaveCancel = "settings-save-cancel";
[TranslationReference]
static readonly string RestartTitle = "restart-title";
[TranslationReference]
static readonly string RestartPrompt = "restart-prompt";
[TranslationReference]
static readonly string RestartAccept = "restart-accept";
[TranslationReference]
static readonly string RestartCancel = "restart-cancel";
[TranslationReference("panel")]
static readonly string ResetTitle = "reset-title";
[TranslationReference]
static readonly string ResetPrompt = "reset-prompt";
[TranslationReference]
static readonly string ResetAccept = "reset-accept";
[TranslationReference]
static readonly string ResetCancel = "reset-cancel";
readonly Dictionary<string, Func<bool>> leavePanelActions = new Dictionary<string, Func<bool>>();
readonly Dictionary<string, Action> resetPanelActions = new Dictionary<string, Action>();
@@ -34,7 +67,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
static SettingsLogic() { }
[ObjectCreator.UseCtor]
public SettingsLogic(Widget widget, Action onExit, WorldRenderer worldRenderer, Dictionary<string, MiniYaml> logicArgs)
public SettingsLogic(Widget widget, Action onExit, WorldRenderer worldRenderer, Dictionary<string, MiniYaml> logicArgs, ModData modData)
{
panelContainer = widget.Get("PANEL_CONTAINER");
var panelTemplate = panelContainer.Get<ContainerWidget>("PANEL_TEMPLATE");
@@ -75,11 +108,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic
Action closeAndExit = () => { Ui.CloseWindow(); onExit(); };
if (needsRestart)
{
Action noRestart = () => ConfirmationDialogs.ButtonPrompt(
title: "Restart Required",
text: "Some changes will not be applied until\nthe game is restarted.",
Action noRestart = () => ConfirmationDialogs.ButtonPrompt(modData,
title: SettingsSaveTitle,
text: SettingsSavePrompt,
onCancel: closeAndExit,
cancelText: "Continue");
cancelText: SettingsSaveCancel);
if (!Game.ExternalMods.TryGetValue(ExternalMod.MakeKey(Game.ModData.Manifest), out var external))
{
@@ -87,13 +120,13 @@ namespace OpenRA.Mods.Common.Widgets.Logic
return;
}
ConfirmationDialogs.ButtonPrompt(
title: "Restart Now?",
text: "Some changes will not be applied until\nthe game is restarted. Restart now?",
ConfirmationDialogs.ButtonPrompt(modData,
title: RestartTitle,
text: RestartPrompt,
onConfirm: () => Game.SwitchToExternalMod(external, null, noRestart),
onCancel: closeAndExit,
confirmText: "Restart Now",
cancelText: "Restart Later");
confirmText: RestartAccept,
cancelText: RestartCancel);
}
else
closeAndExit();
@@ -107,13 +140,14 @@ namespace OpenRA.Mods.Common.Widgets.Logic
Game.Settings.Save();
};
ConfirmationDialogs.ButtonPrompt(
title: $"Reset \"{panels[activePanel]}\"",
text: "Are you sure you want to reset\nall settings in this panel?",
ConfirmationDialogs.ButtonPrompt(modData,
title: ResetTitle,
titleArguments: Translation.Arguments("panel", panels[activePanel]),
text: ResetPrompt,
onConfirm: reset,
onCancel: () => { },
confirmText: "Reset",
cancelText: "Cancel");
confirmText: ResetAccept,
cancelText: ResetCancel);
};
}