Fix map level lobby options not being translated

This commit is contained in:
Gustas
2023-04-13 15:46:27 +03:00
committed by Matthias Mailänder
parent efe135e38b
commit a065e6a47c
14 changed files with 36 additions and 26 deletions

View File

@@ -199,6 +199,15 @@ namespace OpenRA
public long DownloadBytes { get; private set; }
public int DownloadPercentage { get; private set; }
public string GetLocalisedString(string key, IDictionary<string, object> args = null)
{
// PERF: instead of loading mod level Translation for each MapPreview, reuse the already loaded one in modData.
if (modData.Translation.TryGetString(key, out var message, args))
return message;
return innerData.Translation?.GetString(key, args) ?? key;
}
Sprite minimap;
bool generatingMinimap;
public Sprite GetMinimap()

View File

@@ -60,11 +60,9 @@ namespace OpenRA.Traits
IEnumerable<LobbyOption> ILobbyOptions.LobbyOptions(MapPreview map)
{
yield return new LobbyBooleanOption("explored", Game.ModData.Translation.GetString(ExploredMapCheckboxLabel),
Game.ModData.Translation.GetString(ExploredMapCheckboxDescription),
yield return new LobbyBooleanOption(map, "explored", ExploredMapCheckboxLabel, ExploredMapCheckboxDescription,
ExploredMapCheckboxVisible, ExploredMapCheckboxDisplayOrder, ExploredMapCheckboxEnabled, ExploredMapCheckboxLocked);
yield return new LobbyBooleanOption("fog", Game.ModData.Translation.GetString(FogCheckboxLabel),
Game.ModData.Translation.GetString(FogCheckboxDescription),
yield return new LobbyBooleanOption(map, "fog", FogCheckboxLabel, FogCheckboxDescription,
FogCheckboxVisible, FogCheckboxDisplayOrder, FogCheckboxEnabled, FogCheckboxLocked);
}

View File

@@ -543,12 +543,12 @@ namespace OpenRA.Traits
public readonly bool IsVisible;
public readonly int DisplayOrder;
public LobbyOption(string id, string name, string description, bool visible, int displayorder,
public LobbyOption(MapPreview map, string id, string name, string description, bool visible, int displayorder,
IReadOnlyDictionary<string, string> values, string defaultValue, bool locked)
{
Id = id;
Name = Game.ModData.Translation.GetString(name);
Description = Game.ModData.Translation.GetString(description);
Name = map.GetLocalisedString(name);
Description = map.GetLocalisedString(description);
IsVisible = visible;
DisplayOrder = displayorder;
Values = values;
@@ -570,8 +570,8 @@ namespace OpenRA.Traits
{ false.ToString(), "Disabled" }
};
public LobbyBooleanOption(string id, string name, string description, bool visible, int displayorder, bool defaultValue, bool locked)
: base(id, name, description, visible, displayorder, new ReadOnlyDictionary<string, string>(BoolValues), defaultValue.ToString(), locked) { }
public LobbyBooleanOption(MapPreview map, string id, string name, string description, bool visible, int displayorder, bool defaultValue, bool locked)
: base(map, id, name, description, visible, displayorder, new ReadOnlyDictionary<string, string>(BoolValues), defaultValue.ToString(), locked) { }
public override string Label(string newValue)
{