Refactor translation files

- Add prefixes to all message keys to provide context
- Use messages with attributes for some UI elements (dropdowns, dialogs, checkboxes, menus)
- Rename some class fields for consistency with translation keys
This commit is contained in:
Ivaylo Draganov
2022-11-10 13:46:51 +02:00
committed by Paul Chote
parent 46caa2d889
commit a0f17b15ec
89 changed files with 1095 additions and 1053 deletions

View File

@@ -30,7 +30,7 @@ namespace OpenRA
public static class Game
{
[TranslationReference("filename")]
const string SavedScreenshot = "saved-screenshot";
const string SavedScreenshot = "notification-saved-screenshot";
public const int TimestepJankThreshold = 250; // Don't catch up for delays larger than 250ms

View File

@@ -17,7 +17,7 @@ namespace OpenRA.Server
class PlayerMessageTracker
{
[TranslationReference("remaining")]
const string ChatTemporaryDisabled = "chat-temp-disabled";
const string ChatTemporaryDisabled = "notification-chat-temp-disabled";
readonly Dictionary<int, List<long>> messageTracker = new Dictionary<int, List<long>>();
readonly Server server;

View File

@@ -47,73 +47,73 @@ namespace OpenRA.Server
public sealed class Server
{
[TranslationReference]
const string CustomRules = "custom-rules";
const string CustomRules = "notification-custom-rules";
[TranslationReference]
const string BotsDisabled = "bots-disabled";
const string BotsDisabled = "notification-map-bots-disabled";
[TranslationReference]
const string TwoHumansRequired = "two-humans-required";
const string TwoHumansRequired = "notification-two-humans-required";
[TranslationReference]
const string ErrorGameStarted = "error-game-started";
const string ErrorGameStarted = "notification-error-game-started";
[TranslationReference]
const string RequiresPassword = "requires-password";
const string RequiresPassword = "notification-requires-password";
[TranslationReference]
const string IncorrectPassword = "incorrect-password";
const string IncorrectPassword = "notification-incorrect-password";
[TranslationReference]
const string IncompatibleMod = "incompatible-mod";
const string IncompatibleMod = "notification-incompatible-mod";
[TranslationReference]
const string IncompatibleVersion = "incompatible-version";
const string IncompatibleVersion = "notification-incompatible-version";
[TranslationReference]
const string IncompatibleProtocol = "incompatible-protocol";
const string IncompatibleProtocol = "notification-incompatible-protocol";
[TranslationReference]
const string Banned = "banned";
const string Banned = "notification-you-were-banned";
[TranslationReference]
const string TempBanned = "temp-banned";
const string TempBanned = "notification-you-were-temp-banned";
[TranslationReference]
const string Full = "full";
const string Full = "notification-game-full";
[TranslationReference("player")]
const string Joined = "joined";
const string Joined = "notification-joined";
[TranslationReference]
const string RequiresForumAccount = "requires-forum-account";
const string RequiresAuthentication = "notification-requires-authentication";
[TranslationReference]
const string NoPermission = "no-permission";
const string NoPermission = "notification-no-permission-to-join";
[TranslationReference("command")]
const string UnknownServerCommand = "unknown-server-command";
const string UnknownServerCommand = "notification-unknown-server-command";
[TranslationReference("player")]
const string LobbyDisconnected = "lobby-disconnected";
const string LobbyDisconnected = "notification-lobby-disconnected";
[TranslationReference("player")]
const string PlayerDisconnected = "player-disconnected";
const string PlayerDisconnected = "notification-player-disconnected";
[TranslationReference("player", "team")]
const string PlayerTeamDisconnected = "player-team-disconnected";
const string PlayerTeamDisconnected = "notification-team-player-disconnected";
[TranslationReference("player")]
const string ObserverDisconnected = "observer-disconnected";
const string ObserverDisconnected = "notification-observer-disconnected";
[TranslationReference("player")]
const string NewAdmin = "new-admin";
const string NewAdmin = "notification-new-admin";
[TranslationReference]
const string YouWereKicked = "you-were-kicked";
const string YouWereKicked = "notification-you-were-kicked";
[TranslationReference]
const string GameStarted = "game-started";
const string GameStarted = "notification-game-started";
public readonly MersenneTwister Random = new MersenneTwister();
public readonly ServerType Type;
@@ -664,7 +664,7 @@ namespace OpenRA.Server
if (notAuthenticated)
{
Log.Write("server", $"Rejected connection from {newConn.EndPoint}; Not authenticated.");
SendOrderTo(newConn, "ServerError", RequiresForumAccount);
SendOrderTo(newConn, "ServerError", RequiresAuthentication);
DropClient(newConn);
}
else if (blacklisted || notWhitelisted)
@@ -687,7 +687,7 @@ namespace OpenRA.Server
if (Type == ServerType.Dedicated && (Settings.RequireAuthentication || Settings.ProfileIDWhitelist.Length > 0))
{
Log.Write("server", $"Rejected connection from {newConn.EndPoint}; Not authenticated.");
SendOrderTo(newConn, "ServerError", RequiresForumAccount);
SendOrderTo(newConn, "ServerError", RequiresAuthentication);
DropClient(newConn);
}
else

View File

@@ -20,11 +20,11 @@ namespace OpenRA.Traits
{
[TranslationReference]
[Desc("Descriptive label for the fog checkbox in the lobby.")]
public readonly string FogCheckboxLabel = "fog-of-war.label";
public readonly string FogCheckboxLabel = "checkbox-fog-of-war.label";
[TranslationReference]
[Desc("Tooltip description for the fog checkbox in the lobby.")]
public readonly string FogCheckboxDescription = "fog-of-war.description";
public readonly string FogCheckboxDescription = "checkbox-fog-of-war.description";
[Desc("Default value of the fog checkbox in the lobby.")]
public readonly bool FogCheckboxEnabled = true;
@@ -40,11 +40,11 @@ namespace OpenRA.Traits
[TranslationReference]
[Desc("Descriptive label for the explored map checkbox in the lobby.")]
public readonly string ExploredMapCheckboxLabel = "explored-map.label";
public readonly string ExploredMapCheckboxLabel = "checkbox-explored-map.label";
[TranslationReference]
[Desc("Tooltip description for the explored map checkbox in the lobby.")]
public readonly string ExploredMapCheckboxDescription = "explored-map.description";
public readonly string ExploredMapCheckboxDescription = "checkbox-explored-map.description";
[Desc("Default value of the explore map checkbox in the lobby.")]
public readonly bool ExploredMapCheckboxEnabled = false;

View File

@@ -23,7 +23,7 @@ namespace OpenRA.Mods.Common.Commands
public class ChatCommands : INotifyChat
{
[TranslationReference("name")]
const string InvalidCommand = "invalid-command";
const string InvalidCommand = "notification-invalid-command";
public Dictionary<string, IChatCommand> Commands { get; }

View File

@@ -24,19 +24,19 @@ namespace OpenRA.Mods.Common.Commands
public class DebugVisualizationCommands : IChatCommand, IWorldLoaded
{
[TranslationReference]
const string CombatGeometryDescription = "combat-geometry-description";
const string CombatGeometryDescription = "description-combat-geometry";
[TranslationReference]
const string RenderGeometryDescription = "render-geometry-description";
const string RenderGeometryDescription = "description-render-geometry";
[TranslationReference]
const string ScreenMapOverlayDescription = "screen-map-overlay-description";
const string ScreenMapOverlayDescription = "description-screen-map-overlay";
[TranslationReference]
const string DepthBufferDescription = "depth-buffer-description";
const string DepthBufferDescription = "description-depth-buffer";
[TranslationReference]
const string ActorTagsOverlayDescripition = "actor-tags-overlay-description";
const string ActorTagsOverlayDescripition = "description-actor-tags-overlay";
readonly IDictionary<string, (string Description, Action<DebugVisualizations, DeveloperMode> Handler)> commandHandlers = new Dictionary<string, (string Description, Action<DebugVisualizations, DeveloperMode> Handler)>
{

View File

@@ -25,55 +25,55 @@ namespace OpenRA.Mods.Common.Commands
public class DevCommands : IChatCommand, IWorldLoaded
{
[TranslationReference]
const string CheatsDisabled = "cheats-disabled";
const string CheatsDisabled = "notification-cheats-disabled";
[TranslationReference]
const string InvalidCashAmount = "invalid-cash-amount";
const string InvalidCashAmount = "notification-invalid-cash-amount";
[TranslationReference]
const string ToggleVisiblityDescription = "toggle-visibility";
const string ToggleVisiblityDescription = "description-toggle-visibility";
[TranslationReference]
const string GiveCashDescription = "give-cash";
const string GiveCashDescription = "description-give-cash";
[TranslationReference]
const string GiveCashAllDescription = "give-cash-all";
const string GiveCashAllDescription = "description-give-cash-all";
[TranslationReference]
const string InstantBuildingDescription = "instant-building";
const string InstantBuildingDescription = "description-instant-building";
[TranslationReference]
const string BuildAnywhereDescription = "build-anywhere";
const string BuildAnywhereDescription = "description-build-anywhere";
[TranslationReference]
const string UnlimitedPowerDescription = "unlimited-power";
const string UnlimitedPowerDescription = "description-unlimited-power";
[TranslationReference]
const string EnableTechDescription = "enable-tech";
const string EnableTechDescription = "description-enable-tech";
[TranslationReference]
const string FastChargeDescription = "fast-charge";
const string FastChargeDescription = "description-fast-charge";
[TranslationReference]
const string DevCheatAllDescription = "dev-cheat-all";
const string DevCheatAllDescription = "description-dev-cheat-all";
[TranslationReference]
const string DevCrashDescription = "dev-crash";
const string DevCrashDescription = "description-dev-crash";
[TranslationReference]
const string LevelUpActorDescription = "levelup-actor";
const string LevelUpActorDescription = "description-levelup-actor";
[TranslationReference]
const string PlayerExperienceDescription = "player-experience";
const string PlayerExperienceDescription = "description-player-experience";
[TranslationReference]
const string PowerOutageDescription = "power-outage";
const string PowerOutageDescription = "description-power-outage";
[TranslationReference]
const string KillSelectedActorsDescription = "kill-selected-actors";
const string KillSelectedActorsDescription = "description-kill-selected-actors";
[TranslationReference]
const string DisposeSelectedActorsDescription = "dispose-selected-actors";
const string DisposeSelectedActorsDescription = "description-dispose-selected-actors";
readonly IDictionary<string, (string Description, Action<string, World> Handler)> commandHandlers = new Dictionary<string, (string, Action<string, World>)>
{

View File

@@ -22,13 +22,13 @@ namespace OpenRA.Mods.Common.Commands
public class HelpCommand : IChatCommand, IWorldLoaded
{
[TranslationReference]
const string AvailableCommands = "available-commands";
const string AvailableCommands = "notification-available-commands";
[TranslationReference]
const string NoDescription = "no-description";
const string NoDescription = "description-no-description";
[TranslationReference]
const string HelpDescription = "help-description";
const string HelpDescription = "description-help-description";
readonly Dictionary<string, string> helpDescriptions;

View File

@@ -21,10 +21,10 @@ namespace OpenRA.Mods.Common.Commands
public class PlayerCommands : IChatCommand, IWorldLoaded
{
[TranslationReference]
const string PauseDescription = "pause-description";
const string PauseDescription = "description-pause-description";
[TranslationReference]
const string SurrenderDescription = "surrender-description";
const string SurrenderDescription = "description-surrender-description";
World world;

View File

@@ -25,133 +25,133 @@ namespace OpenRA.Mods.Common.Server
public class LobbyCommands : ServerTrait, IInterpretCommand, INotifyServerStart, INotifyServerEmpty, IClientJoined
{
[TranslationReference]
const string CustomRules = "custom-rules";
const string CustomRules = "notification-custom-rules";
[TranslationReference]
const string OnlyHostStartGame = "only-only-host-start-game";
const string OnlyHostStartGame = "notification-admin-start-game";
[TranslationReference]
const string NoStartUntilRequiredSlotsFull = "no-start-until-required-slots-full";
const string NoStartUntilRequiredSlotsFull = "notification-no-start-until-required-slots-full";
[TranslationReference]
const string NoStartWithoutPlayers = "no-start-without-players";
const string NoStartWithoutPlayers = "notification-no-start-without-players";
[TranslationReference]
const string TwoHumansRequired = "two-humans-required";
const string TwoHumansRequired = "notification-two-humans-required";
[TranslationReference]
const string InsufficientEnabledSpawnPoints = "insufficient-enabled-spawnPoints";
const string InsufficientEnabledSpawnPoints = "notification-insufficient-enabled-spawn-points";
[TranslationReference("command")]
const string MalformedCommand = "malformed-command";
const string MalformedCommand = "notification-malformed-command";
[TranslationReference]
const string KickNone = "kick-none";
const string KickNone = "notification-kick-none";
[TranslationReference]
const string NoKickGameStarted = "no-kick-game-started";
const string NoKickGameStarted = "notification-no-kick-game-started";
[TranslationReference("admin", "player")]
const string Kicked = "kicked";
const string Kicked = "notification-kicked";
[TranslationReference("admin", "player")]
const string TempBan = "temp-ban";
const string TempBan = "notification-temp-ban";
[TranslationReference]
const string NoTransferAdmin = "only-host-transfer-admin";
const string NoTransferAdmin = "notification-admin-transfer-admin";
[TranslationReference]
const string EmptySlot = "empty-slot";
const string EmptySlot = "notification-empty-slot";
[TranslationReference("admin", "player")]
const string MoveSpectators = "move-spectators";
const string MoveSpectators = "notification-move-spectators";
[TranslationReference("player", "name")]
const string Nick = "nick";
const string Nick = "notification-nick-changed";
[TranslationReference]
const string StateUnchangedReady = "state-unchanged-ready";
const string StateUnchangedReady = "notification-state-unchanged-ready";
[TranslationReference("command")]
const string StateUnchangedGameStarted = "state-unchanged-game-started";
const string StateUnchangedGameStarted = "notification-state-unchanged-game-started";
[TranslationReference("faction")]
const string InvalidFactionSelected = "invalid-faction-selected";
const string InvalidFactionSelected = "notification-invalid-faction-selected";
[TranslationReference("factions")]
const string SupportedFactions = "supported-factions";
const string SupportedFactions = "notification-supported-factions";
[TranslationReference]
const string RequiresHost = "requires-host";
const string RequiresHost = "notification-requires-host";
[TranslationReference]
const string InvalidBotSlot = "invalid-bot-slot";
const string InvalidBotSlot = "notification-invalid-bot-slot";
[TranslationReference]
const string InvalidBotType = "invalid-bot-type";
const string InvalidBotType = "notification-invalid-bot-type";
[TranslationReference]
const string HostChangeMap = "only-host-change-map";
const string HostChangeMap = "notification-admin-change-map";
[TranslationReference]
const string UnknownMap = "unknown-map";
const string UnknownMap = "notification-unknown-map";
[TranslationReference]
const string SearchingMap = "searching-map";
const string SearchingMap = "notification-searching-map";
[TranslationReference]
const string NotAdmin = "only-host-change-configuration";
const string NotAdmin = "notification-admin-change-configuration";
[TranslationReference]
const string InvalidConfigurationCommand = "invalid-configuration-command";
const string InvalidConfigurationCommand = "notification-invalid-configuration-command";
[TranslationReference("option")]
const string OptionLocked = "option-locked";
const string OptionLocked = "notification-option-locked";
[TranslationReference("player", "map")]
const string ChangedMap = "changed-map";
const string ChangedMap = "notification-changed-map";
[TranslationReference]
const string MapBotsDisabled = "map-bots-disabled";
const string MapBotsDisabled = "notification-map-bots-disabled";
[TranslationReference("player", "name", "value")]
const string ValueChanged = "value-changed";
const string ValueChanged = "notification-option-changed";
[TranslationReference]
const string NoMoveSpectators = "only-host-move-spectators";
const string NoMoveSpectators = "notification-admin-move-spectators";
[TranslationReference]
const string AdminOption = "admin-option";
const string AdminOption = "notification-admin-option";
[TranslationReference("raw")]
const string NumberTeams = "number-teams";
const string NumberTeams = "notification-error-number-teams";
[TranslationReference]
const string AdminClearSpawn = "admin-clear-spawn";
const string AdminClearSpawn = "notification-admin-clear-spawn";
[TranslationReference]
const string SpawnOccupied = "spawn-occupied";
const string SpawnOccupied = "notification-spawn-occupied";
[TranslationReference]
const string SpawnLocked = "spawn-locked";
const string SpawnLocked = "notification-spawn-locked";
[TranslationReference]
const string AdminLobbyInfo = "admin-lobby-info";
const string AdminLobbyInfo = "notification-admin-lobby-info";
[TranslationReference]
const string InvalidLobbyInfo = "invalid-lobby-info";
const string InvalidLobbyInfo = "notification-invalid-lobby-info";
[TranslationReference]
const string AdminKick = "admin-kick";
const string AdminKick = "notification-admin-kick";
[TranslationReference]
const string SlotClosed = "slot-closed";
const string SlotClosed = "notification-slot-closed";
[TranslationReference("player")]
const string NewAdmin = "new-admin";
const string NewAdmin = "notification-new-admin";
[TranslationReference]
const string YouWereKicked = "you-were-kicked";
const string YouWereKicked = "notification-you-were-kicked";
readonly IDictionary<string, Func<S, Connection, Session.Client, string, bool>> commandHandlers = new Dictionary<string, Func<S, Connection, Session.Client, string, bool>>
{

View File

@@ -31,22 +31,22 @@ namespace OpenRA.Mods.Common.Server
const int RateLimitInterval = 1000;
[TranslationReference]
const string NoPortForward = "no-port-forward";
const string NoPortForward = "notification-no-port-forward";
[TranslationReference]
const string BlacklistedTitle = "blacklisted-title";
const string BlacklistedTitle = "notification-blacklisted-server-name";
[TranslationReference]
const string InvalidErrorCode = "invalid-error-code";
const string InvalidErrorCode = "notification-invalid-error-code";
[TranslationReference]
const string Connected = "master-server-connected";
const string Connected = "notification-master-server-connected";
[TranslationReference]
const string Error = "master-server-error";
const string Error = "notification-master-server-error";
[TranslationReference]
const string GameOffline = "game-offline";
const string GameOffline = "notification-game-offline";
static readonly Beacon LanGameBeacon;
static readonly Dictionary<int, string> MasterServerErrors = new Dictionary<int, string>()

View File

@@ -19,16 +19,16 @@ namespace OpenRA.Mods.Common.Server
public class PlayerPinger : ServerTrait, ITick
{
[TranslationReference]
const string PlayerDropped = "player-dropped";
const string PlayerDropped = "notification-player-dropped";
[TranslationReference("player")]
const string ConnectionProblems = "connection-problems";
const string ConnectionProblems = "notification-connection-problems";
[TranslationReference("player")]
const string Timeout = "timeout";
const string Timeout = "notification-timeout-dropped";
[TranslationReference("player", "timeout")]
const string TimeoutIn = "timeout-in";
const string TimeoutIn = "notification-timeout-dropped-in";
static readonly int PingInterval = 5000; // Ping every 5 seconds
static readonly int ConnReportInterval = 20000; // Report every 20 seconds

View File

@@ -22,11 +22,11 @@ namespace OpenRA.Mods.Common.Traits
{
[TranslationReference]
[Desc("Descriptive label for the developer mode checkbox in the lobby.")]
public readonly string CheckboxLabel = "debug-menu.label";
public readonly string CheckboxLabel = "checkbox-debug-menu.label";
[TranslationReference]
[Desc("Tooltip description for the developer mode checkbox in the lobby.")]
public readonly string CheckboxDescription = "debug-menu.description";
public readonly string CheckboxDescription = "checkbox-debug-menu.description";
[Desc("Default value of the developer mode checkbox in the lobby.")]
public readonly bool CheckboxEnabled = false;
@@ -75,7 +75,7 @@ namespace OpenRA.Mods.Common.Traits
public class DeveloperMode : IResolveOrder, ISync, INotifyCreated, IUnlocksRenderPlayer
{
[TranslationReference("cheat", "player", "suffix")]
const string CheatUsed = "cheat-used";
const string CheatUsed = "notification-cheat-used";
readonly DeveloperModeInfo info;
public bool Enabled { get; private set; }

View File

@@ -31,7 +31,7 @@ namespace OpenRA.Mods.Common.Traits
const string CommandName = "custom-terrain";
[TranslationReference]
const string CommandDescription = "custom-terrain-debug-overlay-description";
const string CommandDescription = "description-custom-terrain-debug-overlay";
public bool Enabled;

View File

@@ -34,7 +34,7 @@ namespace OpenRA.Mods.Common.Traits
const string CommandName = "triggers";
[TranslationReference]
const string CommandDescription = "cell-trigger-overlay-description";
const string CommandDescription = "description-cell-triggers-overlay";
bool enabled;

View File

@@ -23,13 +23,13 @@ namespace OpenRA.Mods.Common.Traits
public class ColorPickerManagerInfo : TraitInfo<ColorPickerManager>, IRulesetLoaded
{
[TranslationReference]
const string PlayerColorTerrain = "player-color-terrain";
const string PlayerColorTerrain = "notification-player-color-terrain";
[TranslationReference]
const string PlayerColorPlayer = "player-color-player";
const string PlayerColorPlayer = "notification-player-color-player";
[TranslationReference]
const string InvalidPlayerColor = "invalid-player-color";
const string InvalidPlayerColor = "notification-invalid-player-color";
[Desc("Minimum and maximum saturation levels that are valid for use.")]
public readonly float[] HsvSaturationRange = { 0.3f, 0.95f };

View File

@@ -23,11 +23,11 @@ namespace OpenRA.Mods.Common.Traits
{
[TranslationReference]
[Desc("Descriptive label for the crates checkbox in the lobby.")]
public readonly string CheckboxLabel = "crates.label";
public readonly string CheckboxLabel = "checkbox-crates.label";
[TranslationReference]
[Desc("Tooltip description for the crates checkbox in the lobby.")]
public readonly string CheckboxDescription = "crates.description";
public readonly string CheckboxDescription = "checkbox-crates.description";
[Desc("Default value of the crates checkbox in the lobby.")]
public readonly bool CheckboxEnabled = true;

View File

@@ -29,7 +29,7 @@ namespace OpenRA.Mods.Common.Traits
const string CommandName = "exits-overlay";
[TranslationReference]
const string CommandDescription = "exits-debug-overlay-description";
const string CommandDescription = "description-exits-overlay";
public readonly SpriteFont Font;
public readonly ExitsDebugOverlayManagerInfo Info;

View File

@@ -37,7 +37,7 @@ namespace OpenRA.Mods.Common.Traits
const string CommandName = "hpf";
[TranslationReference]
const string CommandDescription = "hpf-overlay-description";
const string CommandDescription = "description-hpf-debug-overlay";
readonly HierarchicalPathFinderOverlayInfo info;
readonly SpriteFont font;

View File

@@ -20,11 +20,11 @@ namespace OpenRA.Mods.Common.Traits
{
[TranslationReference]
[Desc("Descriptive label for the ally build radius checkbox in the lobby.")]
public readonly string AllyBuildRadiusCheckboxLabel = "ally-build-radius.label";
public readonly string AllyBuildRadiusCheckboxLabel = "checkbox-ally-build-radius.label";
[TranslationReference]
[Desc("Tooltip description for the ally build radius checkbox in the lobby.")]
public readonly string AllyBuildRadiusCheckboxDescription = "ally-build-radius.description";
public readonly string AllyBuildRadiusCheckboxDescription = "checkbox-ally-build-radius.description";
[Desc("Default value of the ally build radius checkbox in the lobby.")]
public readonly bool AllyBuildRadiusCheckboxEnabled = true;
@@ -40,11 +40,11 @@ namespace OpenRA.Mods.Common.Traits
[TranslationReference]
[Desc("Tooltip description for the build radius checkbox in the lobby.")]
public readonly string BuildRadiusCheckboxLabel = "build-radius.label";
public readonly string BuildRadiusCheckboxLabel = "checkbox-build-radius.label";
[TranslationReference]
[Desc("Tooltip description for the build radius checkbox in the lobby.")]
public readonly string BuildRadiusCheckboxDescription = "build-radius.description";
public readonly string BuildRadiusCheckboxDescription = "checkbox-build-radius.description";
[Desc("Default value of the build radius checkbox in the lobby.")]
public readonly bool BuildRadiusCheckboxEnabled = true;

View File

@@ -20,11 +20,11 @@ namespace OpenRA.Mods.Common.Traits
{
[TranslationReference]
[Desc("Descriptive label for the creeps checkbox in the lobby.")]
public readonly string CheckboxLabel = "map-creeps.label";
public readonly string CheckboxLabel = "dropdown-map-creeps.label";
[TranslationReference]
[Desc("Tooltip description for the creeps checkbox in the lobby.")]
public readonly string CheckboxDescription = "map-creeps.description";
public readonly string CheckboxDescription = "dropdown-map-creeps.description";
[Desc("Default value of the creeps checkbox in the lobby.")]
public readonly bool CheckboxEnabled = true;

View File

@@ -21,11 +21,11 @@ namespace OpenRA.Mods.Common.Traits
{
[TranslationReference]
[Desc("Descriptive label for the short game checkbox in the lobby.")]
public readonly string ShortGameCheckboxLabel = "short-game.label";
public readonly string ShortGameCheckboxLabel = "checkbox-short-game.label";
[TranslationReference]
[Desc("Tooltip description for the short game checkbox in the lobby.")]
public readonly string ShortGameCheckboxDescription = "short-game.description";
public readonly string ShortGameCheckboxDescription = "checkbox-short-game.description";
[Desc("Default value of the short game checkbox in the lobby.")]
public readonly bool ShortGameCheckboxEnabled = true;
@@ -41,11 +41,11 @@ namespace OpenRA.Mods.Common.Traits
[TranslationReference]
[Desc("Descriptive label for the tech level option in the lobby.")]
public readonly string TechLevelDropdownLabel = "tech-level.label";
public readonly string TechLevelDropdownLabel = "dropdown-tech-level.label";
[TranslationReference]
[Desc("Tooltip description for the tech level option in the lobby.")]
public readonly string TechLevelDropdownDescription = "tech-level.description";
public readonly string TechLevelDropdownDescription = "dropdown-tech-level.description";
[Desc("Default tech level.")]
public readonly string TechLevel = "unrestricted";
@@ -61,11 +61,11 @@ namespace OpenRA.Mods.Common.Traits
[TranslationReference]
[Desc("Tooltip description for the game speed option in the lobby.")]
public readonly string GameSpeedDropdownLabel = "game-speed.label";
public readonly string GameSpeedDropdownLabel = "dropdown-game-speed.label";
[TranslationReference]
[Desc("Description of the game speed option in the lobby.")]
public readonly string GameSpeedDropdownDescription = "game-speed.description";
public readonly string GameSpeedDropdownDescription = "dropdown-game-speed.description";
[Desc("Default game speed (leave empty to use the default defined in mod.yaml).")]
public readonly string GameSpeed = null;

View File

@@ -27,11 +27,11 @@ namespace OpenRA.Mods.Common.Traits
[TranslationReference]
[Desc("Descriptive label for the spawn positions checkbox in the lobby.")]
public readonly string SeparateTeamSpawnsCheckboxLabel = "separate-team-spawns.label";
public readonly string SeparateTeamSpawnsCheckboxLabel = "checkbox-separate-team-spawns.label";
[TranslationReference]
[Desc("Tooltip description for the spawn positions checkbox in the lobby.")]
public readonly string SeparateTeamSpawnsCheckboxDescription = "separate-team-spawns.description";
public readonly string SeparateTeamSpawnsCheckboxDescription = "checkbox-separate-team-spawns.description";
[Desc("Default value of the spawn positions checkbox in the lobby.")]
public readonly bool SeparateTeamSpawnsCheckboxEnabled = true;

View File

@@ -42,7 +42,7 @@ namespace OpenRA.Mods.Common.Traits
const string CommandName = "path-debug";
[TranslationReference]
const string CommandDescription = "path-debug-description";
const string CommandDescription = "description-path-debug-overlay";
sealed class Record : PathSearch.IRecorder, IEnumerable<(CPos Source, CPos Destination, int CostSoFar, int EstimatedRemainingCost)>
{

View File

@@ -26,11 +26,11 @@ namespace OpenRA.Mods.Common.Traits
[TranslationReference]
[Desc("Descriptive label for the starting units option in the lobby.")]
public readonly string DropdownLabel = "starting-units.label";
public readonly string DropdownLabel = "dropdown-starting-units.label";
[TranslationReference]
[Desc("Tooltip description for the starting units option in the lobby.")]
public readonly string DropdownDescription = "starting-units.description";
public readonly string DropdownDescription = "dropdown-starting-units.description";
[Desc("Prevent the starting units option from being changed in the lobby.")]
public readonly bool DropdownLocked = false;

View File

@@ -27,7 +27,7 @@ namespace OpenRA.Mods.Common.Traits
const string CommandName = "terrain-geometry";
[TranslationReference]
const string CommandDescription = "terrain-geometry-overlay";
const string CommandDescription = "description-terrain-geometry-overlay";
public bool Enabled;

View File

@@ -23,11 +23,11 @@ namespace OpenRA.Mods.Common.Traits
{
[TranslationReference]
[Desc("Label that will be shown for the time limit option in the lobby.")]
public readonly string TimeLimitLabel = "time-limit.label";
public readonly string TimeLimitLabel = "dropdown-time-limit.label";
[TranslationReference]
[Desc("Tooltip description that will be shown for the time limit option in the lobby.")]
public readonly string TimeLimitDescription = "time-limit.description";
public readonly string TimeLimitDescription = "dropdown-time-limit.description";
[Desc("Time Limit options that will be shown in the lobby dropdown. Values are in minutes.")]
public readonly int[] TimeLimitOptions = { 0, 10, 20, 30, 40, 60, 90 };
@@ -77,10 +77,10 @@ namespace OpenRA.Mods.Common.Traits
}
[TranslationReference]
const string NoTimeLimit = "no-time-limit";
const string NoTimeLimit = "options-time-limit.no-limit";
[TranslationReference("minutes")]
const string TimeLimitOption = "time-limit-options";
const string TimeLimitOption = "options-time-limit.options";
IEnumerable<LobbyOption> ILobbyOptions.LobbyOptions(MapPreview map)
{
@@ -102,7 +102,7 @@ namespace OpenRA.Mods.Common.Traits
public class TimeLimitManager : INotifyTimeLimit, ITick, IWorldLoaded
{
[TranslationReference]
const string TimeLimitExpired = "time-limit-expired";
const string TimeLimitExpired = "notification-time-limit-expired";
readonly TimeLimitManagerInfo info;
readonly int ticksPerSecond;

View File

@@ -35,10 +35,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
}
[TranslationReference("length")]
const string LengthInSeconds = "length-in-seconds";
const string LengthInSeconds = "label-length-in-seconds";
[TranslationReference]
const string AllPackages = "all-packages";
const string AllPackages = "label-all-packages";
readonly string[] allowedExtensions;
readonly string[] allowedSpriteExtensions;

View File

@@ -18,7 +18,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class ConnectionLogic : ChromeLogic
{
[TranslationReference("endpoint")]
const string ConnectingToEndpoint = "connecting-to-endpoint";
const string ConnectingToEndpoint = "label-connecting-to-endpoint";
readonly Action onConnect;
readonly Action onAbort;
@@ -87,16 +87,16 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class ConnectionFailedLogic : ChromeLogic
{
[TranslationReference("target")]
const string CouldNotConnectToTarget = "could-not-connect-to-target";
const string CouldNotConnectToTarget = "label-could-not-connect-to-target";
[TranslationReference]
const string UnknownError = "unknown-error";
const string UnknownError = "label-unknown-error";
[TranslationReference]
const string PasswordRequired = "password-required";
const string PasswordRequired = "label-password-required";
[TranslationReference]
const string ConnectionFailed = "connection-failed";
const string ConnectionFailed = "label-connection-failed";
readonly PasswordFieldWidget passwordField;
bool passwordOffsetAdjusted;
@@ -171,7 +171,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class ConnectionSwitchModLogic : ChromeLogic
{
[TranslationReference]
const string ModSwitchFailed = "mod-switch-failed";
const string ModSwitchFailed = "notification-mod-switch-failed";
[ObjectCreator.UseCtor]
public ConnectionSwitchModLogic(Widget widget, OrderManager orderManager, NetworkConnection connection, Action onAbort, Action<string> onRetry)

View File

@@ -21,13 +21,13 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class ActorEditLogic : ChromeLogic
{
[TranslationReference]
const string DuplicateActorId = "duplicate-actor-id";
const string DuplicateActorId = "label-duplicate-actor-id";
[TranslationReference]
const string EnterActorId = "enter-actor-id";
const string EnterActorId = "label-actor-id";
[TranslationReference]
const string Owner = "owner";
const string Owner = "label-actor-owner";
// Error states define overlapping bits to simplify panel reflow logic
[Flags]

View File

@@ -21,8 +21,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic
{
public class ActorSelectorLogic : CommonSelectorLogic
{
[TranslationReference]
const string Type = "type";
[TranslationReference("actorType")]
const string ActorTypeTooltip = "label-actor-type";
class ActorSelectorActor
{
@@ -115,8 +115,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic
if (tooltip != null)
searchTerms.Add(tooltip.Name);
var type = modData.Translation.GetString(Type);
var tooltipText = (tooltip == null ? $"{type}: " : tooltip.Name + $"\n{type}: ") + a.Name;
var actorType = modData.Translation.GetString(ActorTypeTooltip, Translation.Arguments("actorType", a.Name));
var tooltipText = tooltip == null ? actorType : tooltip.Name + $"\n{actorType}";
allActorsTemp.Add(new ActorSelectorActor(a, editorData.Categories, searchTerms.ToArray(), tooltipText));
}

View File

@@ -20,16 +20,16 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public abstract class CommonSelectorLogic : ChromeLogic
{
[TranslationReference]
const string None = "none";
const string None = "options-common-selector.none";
[TranslationReference]
const string SearchResults = "search-results";
const string SearchResults = "options-common-selector.search-results";
[TranslationReference]
const string All = "all";
const string All = "options-common-selector.all";
[TranslationReference]
const string Multiple = "multiple";
const string Multiple = "options-common-selector.multiple";
protected readonly Widget Widget;
protected readonly ModData ModData;

View File

@@ -43,34 +43,34 @@ namespace OpenRA.Mods.Common.Widgets.Logic
}
[TranslationReference]
const string SaveMapFailedTitle = "save-map-failed-title";
const string SaveMapFailedTitle = "dialog-save-map-failed.title";
[TranslationReference]
const string SaveMapFailedPrompt = "save-map-failed-prompt";
const string SaveMapFailedPrompt = "dialog-save-map-failed.prompt";
[TranslationReference]
const string SaveMapFailedAccept = "save-map-failed-accept";
const string SaveMapFailedAccept = "dialog-save-map-failed.confirm";
[TranslationReference]
const string Unpacked = "unpacked";
const string Unpacked = "label-unpacked-map";
[TranslationReference]
const string OverwriteMapFailedTitle = "overwrite-map-failed-title";
const string OverwriteMapFailedTitle = "dialog-overwrite-map-failed.title";
[TranslationReference]
const string OverwriteMapFailedPrompt = "overwrite-map-failed-prompt";
const string OverwriteMapFailedPrompt = "dialog-overwrite-map-failed.prompt";
[TranslationReference]
const string SaveMapFailedConfirm = "overwrite-map-failed-confirm";
const string SaveMapFailedConfirm = "dialog-overwrite-map-failed.confirm";
[TranslationReference]
const string OverwriteMapOutsideEditTitle = "overwrite-map-outside-edit-title";
const string OverwriteMapOutsideEditTitle = "dialog-overwrite-map-outside-edit.title";
[TranslationReference]
const string OverwriteMapOutsideEditPrompt = "overwrite-map-outside-edit-prompt";
const string OverwriteMapOutsideEditPrompt = "dialog-overwrite-map-outside-edit.prompt";
[TranslationReference]
const string SaveMapMapOutsideConfirm = "overwrite-map-outside-edit-confirm";
const string SaveMapMapOutsideConfirm = "dialog-overwrite-map-outside-edit.confirm";
[ObjectCreator.UseCtor]
public SaveMapLogic(Widget widget, ModData modData, Action<string> onSave, Action onExit,

View File

@@ -21,43 +21,43 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class GameSaveBrowserLogic : ChromeLogic
{
[TranslationReference]
const string RenameSaveTitle = "rename-save-title";
const string RenameSaveTitle = "dialog-rename-save.title";
[TranslationReference]
const string RenameSavePrompt = "rename-save-prompt";
const string RenameSavePrompt = "dialog-rename-save.prompt";
[TranslationReference]
const string RenameSaveAccept = "rename-save-accept";
const string RenameSaveAccept = "dialog-rename-save.confirm";
[TranslationReference]
const string DeleteSaveTitle = "delete-save-title";
const string DeleteSaveTitle = "dialog-delete-save.title";
[TranslationReference("save")]
const string DeleteSavePrompt = "delete-save-prompt";
const string DeleteSavePrompt = "dialog-delete-save.prompt";
[TranslationReference]
const string DeleteSaveAccept = "delete-save-accept";
const string DeleteSaveAccept = "dialog-delete-save.confirm";
[TranslationReference]
const string DeleteAllSavesTitle = "delete-all-saves-title";
const string DeleteAllSavesTitle = "dialog-delete-all-saves.title";
[TranslationReference("count")]
const string DeleteAllSavesPrompt = "delete-all-saves-prompt";
const string DeleteAllSavesPrompt = "dialog-delete-all-saves.prompt";
[TranslationReference]
const string DeleteAllSavesAccept = "delete-all-saves-accept";
const string DeleteAllSavesAccept = "dialog-delete-all-saves.confirm";
[TranslationReference("savePath")]
const string SaveDeletionFailed = "save-deletion-failed";
const string SaveDeletionFailed = "notification-save-deletion-failed";
[TranslationReference]
const string OverwriteSaveTitle = "overwrite-save-title";
const string OverwriteSaveTitle = "dialog-overwrite-save.title";
[TranslationReference("file")]
const string OverwriteSavePrompt = "overwrite-save-prompt";
const string OverwriteSavePrompt = "dialog-overwrite-save.prompt";
[TranslationReference]
const string OverwriteSaveAccpet = "overwrite-save-accept";
const string OverwriteSaveAccpet = "dialog-overwrite-save.confirm";
readonly Widget panel;
readonly ScrollPanelWidget gameList;

View File

@@ -23,19 +23,19 @@ namespace OpenRA.Mods.Common.Widgets.Logic
class GameInfoLogic : ChromeLogic
{
[TranslationReference]
const string Objectives = "objectives";
const string Objectives = "menu-game-info.objectives";
[TranslationReference]
const string Briefing = "briefing";
const string Briefing = "menu-game-info.briefing";
[TranslationReference]
const string Options = "options";
const string Options = "menu-game-info.options";
[TranslationReference]
const string Debug = "debug";
const string Debug = "menu-game-info.debug";
[TranslationReference]
const string Chat = "chat";
const string Chat = "menu-game-info.chat";
readonly World world;
readonly ModData modData;

View File

@@ -20,13 +20,13 @@ namespace OpenRA.Mods.Common.Widgets.Logic
class GameInfoObjectivesLogic : ChromeLogic
{
[TranslationReference]
const string InProgress = "in-progress";
const string InProgress = "label-mission-in-progress";
[TranslationReference]
const string Accomplished = "accomplished";
const string Accomplished = "label-mission-accomplished";
[TranslationReference]
const string Failed = "failed";
const string Failed = "label-mission-failed";
readonly ContainerWidget template;

View File

@@ -23,40 +23,40 @@ namespace OpenRA.Mods.Common.Widgets.Logic
class GameInfoStatsLogic : ChromeLogic
{
[TranslationReference]
const string Unmute = "unmute";
const string Unmute = "label-unmute-player";
[TranslationReference]
const string Mute = "mute";
const string Mute = "label-mute-player";
[TranslationReference]
const string Accomplished = "accomplished";
const string Accomplished = "label-mission-accomplished";
[TranslationReference]
const string Failed = "failed";
const string Failed = "label-mission-failed";
[TranslationReference]
const string InProgress = "in-progress";
const string InProgress = "label-mission-in-progress";
[TranslationReference("team")]
const string TeamNumber = "team-number";
const string TeamNumber = "label-team-name";
[TranslationReference]
const string NoTeam = "no-team";
const string NoTeam = "label-no-team";
[TranslationReference]
const string Spectators = "spectators";
const string Spectators = "label-spectators";
[TranslationReference]
const string Gone = "gone";
const string Gone = "label-client-state-disconnected";
[TranslationReference("player")]
const string KickTitle = "kick-title";
const string KickTitle = "dialog-kick.title";
[TranslationReference]
const string KickPrompt = "kick-prompt";
const string KickPrompt = "dialog-kick.prompt";
[TranslationReference]
const string KickAccept = "kick-accept";
const string KickAccept = "dialog-kick.confirm";
[ObjectCreator.UseCtor]
public GameInfoStatsLogic(Widget widget, ModData modData, World world, OrderManager orderManager, WorldRenderer worldRenderer, Action<bool> hideMenu)

View File

@@ -19,16 +19,16 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class GameTimerLogic : ChromeLogic
{
[TranslationReference]
const string Paused = "paused";
const string Paused = "label-paused";
[TranslationReference]
const string MaxSpeed = "max-speed";
const string MaxSpeed = "label-max-speed";
[TranslationReference("percentage")]
const string Speed = "speed";
const string Speed = "label-replay-speed";
[TranslationReference("percentage")]
const string Complete = "complete";
const string Complete = "label-replay-complete";
[ObjectCreator.UseCtor]
public GameTimerLogic(Widget widget, ModData modData, OrderManager orderManager, World world)

View File

@@ -18,7 +18,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class IngameCashCounterLogic : ChromeLogic
{
[TranslationReference("usage", "capacity")]
const string SiloUsage = "silo-usage";
const string SiloUsage = "label-silo-usage";
const float DisplayFracPerFrame = .07f;
const int DisplayDeltaPerFrame = 37;

View File

@@ -24,16 +24,16 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class IngameChatLogic : ChromeLogic, INotificationHandler<TextNotification>
{
[TranslationReference]
const string Team = "team";
const string TeamChat = "button-team-chat";
[TranslationReference]
const string All = "all";
const string GeneralChat = "button-general-chat";
[TranslationReference("seconds")]
const string ChatAvailability = "chat-availability";
const string ChatAvailability = "label-chat-availability";
[TranslationReference]
const string ChatDisabled = "chat-disabled";
const string ChatDisabled = "label-chat-disabled";
readonly Ruleset modRules;
readonly World world;
@@ -70,8 +70,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic
var disableTeamChat = alwaysDisabled || (world.LocalPlayer != null && !players.Any(p => p.IsAlliedWith(world.LocalPlayer)));
var teamChat = !disableTeamChat;
var teamMessage = modData.Translation.GetString(Team);
var allMessage = modData.Translation.GetString(All);
var teamMessage = modData.Translation.GetString(TeamChat);
var allMessage = modData.Translation.GetString(GeneralChat);
chatDisabled = modData.Translation.GetString(ChatDisabled);

View File

@@ -22,100 +22,100 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class IngameMenuLogic : ChromeLogic
{
[TranslationReference]
const string Leave = "leave";
const string Leave = "menu-ingame.leave";
[TranslationReference]
const string AbortMission = "abort-mission";
const string AbortMission = "menu-ingame.abort";
[TranslationReference]
const string LeaveMissionTitle = "leave-mission-title";
const string LeaveMissionTitle = "dialog-leave-mission.title";
[TranslationReference]
const string LeaveMissionPrompt = "leave-mission-prompt";
const string LeaveMissionPrompt = "dialog-leave-mission.prompt";
[TranslationReference]
const string LeaveMissionAccept = "leave-mission-accept";
const string LeaveMissionAccept = "dialog-leave-mission.confirm";
[TranslationReference]
const string LeaveMissionCancel = "leave-mission-cancel";
const string LeaveMissionCancel = "dialog-leave-mission.cancel";
[TranslationReference]
const string RestartButton = "restart-button";
const string RestartButton = "menu-ingame.restart";
[TranslationReference]
const string RestartMissionTitle = "restart-mission-title";
const string RestartMissionTitle = "dialog-restart-mission.title";
[TranslationReference]
const string RestartMissionPrompt = "restart-mission-prompt";
const string RestartMissionPrompt = "dialog-restart-mission.prompt";
[TranslationReference]
const string RestartMissionAccept = "restart-mission-accept";
const string RestartMissionAccept = "dialog-restart-mission.confirm";
[TranslationReference]
const string RestartMissionCancel = "restart-mission-cancel";
const string RestartMissionCancel = "dialog-restart-mission.cancel";
[TranslationReference]
const string SurrenderButton = "surrender-button";
const string SurrenderButton = "menu-ingame.surrender";
[TranslationReference]
const string SurrenderTitle = "surrender-title";
const string SurrenderTitle = "dialog-surrender.title";
[TranslationReference]
const string SurrenderPrompt = "surrender-prompt";
const string SurrenderPrompt = "dialog-surrender.prompt";
[TranslationReference]
const string SurrenderAccept = "surrender-accept";
const string SurrenderAccept = "dialog-surrender.confirm";
[TranslationReference]
const string SurrenderCancel = "surrender-cancel";
const string SurrenderCancel = "dialog-surrender.cancel";
[TranslationReference]
const string LoadGameButton = "load-game-button";
const string LoadGameButton = "menu-ingame.load-game";
[TranslationReference]
const string SaveGameButton = "save-game-button";
const string SaveGameButton = "menu-ingame.save-game";
[TranslationReference]
const string MusicButton = "music-button";
const string MusicButton = "menu-ingame.music";
[TranslationReference]
const string SettingsButton = "settings-button";
const string SettingsButton = "menu-ingame.settings";
[TranslationReference]
const string ReturnToMap = "return-to-map";
const string ReturnToMap = "menu-ingame.return-to-map";
[TranslationReference]
const string Resume = "resume";
const string Resume = "menu-ingame.resume";
[TranslationReference]
const string SaveMapButton = "save-map-button";
const string SaveMapButton = "menu-ingame.save-map";
[TranslationReference]
const string ErrorMaxPlayerTitle = "error-max-player-title";
const string ErrorMaxPlayerTitle = "dialog-error-max-player.title";
[TranslationReference("players", "max")]
const string ErrorMaxPlayerPrompt = "error-max-player-prompt";
const string ErrorMaxPlayerPrompt = "dialog-error-max-player.prompt";
[TranslationReference]
const string ErrorMaxPlayerAccept = "error-max-player-accept";
const string ErrorMaxPlayerAccept = "dialog-error-max-player.confirm";
[TranslationReference]
const string ExitMapButton = "exit-map-button";
const string ExitMapButton = "menu-ingame.exit-map";
[TranslationReference]
const string ExitMapEditorTitle = "exit-map-editor-title";
const string ExitMapEditorTitle = "dialog-exit-map-editor.title";
[TranslationReference]
const string ExitMapEditorPromptUnsaved = "exit-map-editor-prompt-unsaved";
const string ExitMapEditorPromptUnsaved = "dialog-exit-map-editor.prompt-unsaved";
[TranslationReference]
const string ExitMapEditorPromptDeleted = "exit-map-editor-prompt-deleted";
const string ExitMapEditorPromptDeleted = "dialog-exit-map-editor.prompt-deleted";
[TranslationReference]
const string ExitMapEditorAnywayConfirm = "exit-map-editor-confirm-anyway";
const string ExitMapEditorAnywayConfirm = "dialog-exit-map-editor.confirm-anyway";
[TranslationReference]
const string ExitMapEditorConfirm = "exit-map-editor-confirm";
const string ExitMapEditorConfirm = "dialog-exit-map-editor.confirm";
readonly Widget menu;
readonly Widget buttonContainer;

View File

@@ -18,10 +18,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class IngamePowerBarLogic : ChromeLogic
{
[TranslationReference("usage", "capacity")]
const string PowerUsage = "power-usage";
const string PowerUsage = "label-power-usage";
[TranslationReference]
const string Infinite = "infinite-power";
const string Infinite = "label-infinite-power";
[ObjectCreator.UseCtor]
public IngamePowerBarLogic(Widget widget, ModData modData, World world)

View File

@@ -18,10 +18,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class IngamePowerCounterLogic : ChromeLogic
{
[TranslationReference("usage", "capacity")]
const string PowerUsage = "power-usage";
const string PowerUsage = "label-power-usage";
[TranslationReference]
const string Infinite = "infinite-power";
const string Infinite = "label-infinite-power";
[ObjectCreator.UseCtor]
public IngamePowerCounterLogic(Widget widget, ModData modData, World world)

View File

@@ -18,7 +18,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class IngameSiloBarLogic : ChromeLogic
{
[TranslationReference("usage", "capacity")]
const string SiloUsage = "silo-usage";
const string SiloUsage = "label-silo-usage";
[ObjectCreator.UseCtor]
public IngameSiloBarLogic(Widget widget, ModData modData, World world)

View File

@@ -24,22 +24,22 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class ObserverShroudSelectorLogic : ChromeLogic
{
[TranslationReference]
const string CameraOptionAllPlayers = "camera-option-all-players";
const string CameraOptionAllPlayers = "options-shroud-selector.all-players";
[TranslationReference]
const string CameraOptionDisableShroud = "camera-option-disable-shroud";
const string CameraOptionDisableShroud = "options-shroud-selector.disable-shroud";
[TranslationReference]
const string CameraOptionOther = "camera-option-other";
const string CameraOptionOther = "options-shroud-selector.other";
[TranslationReference]
const string Players = "players";
const string Players = "label-players";
[TranslationReference("team")]
const string TeamNumber = "team-number";
const string TeamNumber = "label-team-name";
[TranslationReference]
const string NoTeam = "no-team";
const string NoTeam = "label-no-team";
readonly CameraOption combined, disableShroud;
readonly IOrderedEnumerable<IGrouping<int, CameraOption>> teams;

View File

@@ -28,37 +28,37 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class ObserverStatsLogic : ChromeLogic
{
[TranslationReference]
const string InformationNone = "information-none";
const string InformationNone = "options-observer-stats.none";
[TranslationReference]
const string Basic = "basic";
const string Basic = "options-observer-stats.basic";
[TranslationReference]
const string Economy = "economy";
const string Economy = "options-observer-stats.economy";
[TranslationReference]
const string Production = "production";
const string Production = "options-observer-stats.production";
[TranslationReference]
const string SupportPowers = "support-powers";
const string SupportPowers = "options-observer-stats.support-powers";
[TranslationReference]
const string Combat = "combat";
const string Combat = "options-observer-stats.combat";
[TranslationReference]
const string Army = "army";
const string Army = "options-observer-stats.army";
[TranslationReference]
const string EarningsGraph = "earnings-graph";
const string EarningsGraph = "options-observer-stats.earnings-graph";
[TranslationReference]
const string ArmyGraph = "army-graph";
const string ArmyGraph = "options-observer-stats.army-graph";
[TranslationReference("team")]
const string TeamNumber = "team-number";
const string TeamNumber = "label-team-name";
[TranslationReference]
const string NoTeam = "no-team";
const string NoTeam = "label-no-team";
readonly ContainerWidget basicStatsHeaders;
readonly ContainerWidget economyStatsHeaders;

View File

@@ -19,7 +19,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class WorldTooltipLogic : ChromeLogic
{
[TranslationReference]
const string UnrevealedTerrain = "unrevealed-terrain";
const string UnrevealedTerrain = "label-unrevealed-terrain";
[ObjectCreator.UseCtor]
public WorldTooltipLogic(Widget widget, ModData modData, World world, TooltipContainerWidget tooltipContainer, ViewportControllerWidget viewport)

View File

@@ -24,37 +24,37 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class DownloadPackageLogic : ChromeLogic
{
[TranslationReference("title")]
const string Downloading = "downloading";
const string Downloading = "label-downloading";
[TranslationReference]
const string FetchingMirrorList = "fetching-mirror-list";
const string FetchingMirrorList = "label-fetching-mirror-list";
[TranslationReference]
const string UnknownHost = "unknown-host";
const string UnknownHost = "label-unknown-host";
[TranslationReference("host", "received", "suffix")]
const string DownloadingFrom = "downloading-from";
const string DownloadingFrom = "label-downloading-from";
[TranslationReference("host", "received", "total", "suffix", "progress")]
const string DownloadingFromProgress = "downloading-from-progress";
const string DownloadingFromProgress = "label-downloading-from-progress";
[TranslationReference]
const string VerifyingArchive = "verifying-archive";
const string VerifyingArchive = "label-verifying-archive";
[TranslationReference]
const string ArchiveValidationFailed = "archive-validation-failed";
const string ArchiveValidationFailed = "label-archive-validation-failed";
[TranslationReference]
const string Extracting = "extracting";
const string Extracting = "label-extracting-archive";
[TranslationReference("entry")]
const string ExtractingEntry = "extracting-entry";
const string ExtractingEntry = "label-extracting-archive-entry";
[TranslationReference]
const string ArchiveExtractionFailed = "archive-extraction-failed";
const string ArchiveExtractionFailed = "label-archive-extraction-failed";
[TranslationReference]
const string MirrorSelectionFailed = "mirror-selection-failed";
const string MirrorSelectionFailed = "label-mirror-selection-failed";
static readonly string[] SizeSuffixes = { "bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB" };

View File

@@ -22,61 +22,61 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class InstallFromSourceLogic : ChromeLogic
{
[TranslationReference]
const string DetectingSources = "detecting-sources";
const string DetectingSources = "label-detecting-sources";
[TranslationReference]
const string CheckingSources = "checking-sources";
const string CheckingSources = "label-checking-sources";
[TranslationReference("title")]
const string SearchingSourceFor = "searching-source-for";
const string SearchingSourceFor = "label-searching-source-for";
[TranslationReference]
const string ContentPackageInstallation = "content-package-installation";
const string ContentPackageInstallation = "label-content-package-installation";
[TranslationReference]
const string GameSources = "game-sources";
const string GameSources = "label-game-sources";
[TranslationReference]
const string DigitalInstalls = "digital-installs";
const string DigitalInstalls = "label-digital-installs";
[TranslationReference]
const string GameContentNotFound = "game-content-not-found";
const string GameContentNotFound = "label-game-content-not-found";
[TranslationReference]
const string AlternativeContentSources = "alternative-content-sources";
const string AlternativeContentSources = "label-alternative-content-sources";
[TranslationReference]
const string InstallingContent = "installing-content";
const string InstallingContent = "label-installing-content";
[TranslationReference("filename")]
public const string CopyingFilename = "copying-filename";
public const string CopyingFilename = "label-copying-filename";
[TranslationReference("filename", "progress")]
public const string CopyingFilenameProgress = "copying-filename-progress";
public const string CopyingFilenameProgress = "label-copying-filename-progress";
[TranslationReference]
const string InstallationFailed = "installation-failed";
const string InstallationFailed = "label-installation-failed";
[TranslationReference]
const string CheckInstallLog = "check-install-log";
const string CheckInstallLog = "label-check-install-log";
[TranslationReference("filename")]
public const string Extracing = "extracting-filename";
public const string Extracing = "label-extracting-filename";
[TranslationReference("filename", "progress")]
public const string ExtracingProgress = "extracting-filename-progress";
public const string ExtracingProgress = "label-extracting-filename-progress";
[TranslationReference]
public const string Continue = "continue";
public const string Continue = "button-continue";
[TranslationReference]
const string Cancel = "cancel";
const string Cancel = "button-cancel";
[TranslationReference]
const string Retry = "retry";
const string Retry = "button-retry";
[TranslationReference]
const string Back = "back";
const string Back = "button-back";
// Hide percentage indicators for files smaller than 25 MB
public const int ShowPercentageThreshold = 26214400;

View File

@@ -21,7 +21,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class ModContentLogic : ChromeLogic
{
[TranslationReference]
const string ManualInstall = "manual-install";
const string ManualInstall = "button-manual-install";
readonly ModData modData;
readonly ModContent content;

View File

@@ -21,10 +21,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class ModContentPromptLogic : ChromeLogic
{
[TranslationReference]
const string Continue = "continue";
const string Continue = "button-continue";
[TranslationReference]
const string Quit = "quit";
const string Quit = "button-quit";
readonly ModContent content;
bool requiredContentInstalled;

View File

@@ -22,10 +22,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
const int IntroductionVersion = 1;
[TranslationReference]
const string Classic = "classic";
const string Classic = "options-control-scheme.classic";
[TranslationReference]
const string Modern = "modern";
const string Modern = "options-control-scheme.modern";
readonly string classic;
readonly string modern;

View File

@@ -17,7 +17,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
class KickClientLogic : ChromeLogic
{
[TranslationReference("player")]
const string KickClient = "kick-client";
const string KickClient = "dialog-kick-client.prompt";
[ObjectCreator.UseCtor]
public KickClientLogic(ModData modData, Widget widget, string clientName, Action<bool> okPressed, Action cancelPressed)

View File

@@ -17,7 +17,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
class KickSpectatorsLogic : ChromeLogic
{
[TranslationReference("count")]
const string KickSpectators = "kick-spectators";
const string KickSpectators = "dialog-kick-spectators.prompt";
[ObjectCreator.UseCtor]
public KickSpectatorsLogic(ModData modData, Widget widget, int clientCount, Action okPressed, Action cancelPressed)

View File

@@ -23,40 +23,40 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class LobbyLogic : ChromeLogic, INotificationHandler<TextNotification>
{
[TranslationReference]
const string Add = "add";
const string Add = "options-slot-admin.add-bots";
[TranslationReference]
const string Remove = "remove";
const string Remove = "options-slot-admin.remove-bots";
[TranslationReference]
const string ConfigureBots = "configure-bots";
const string ConfigureBots = "options-slot-admin.configure-bots";
[TranslationReference("count")]
const string NumberTeams = "n-teams";
const string NumberTeams = "options-slot-admin.teams-count";
[TranslationReference]
const string HumanVsBots = "humans-vs-bots";
const string HumanVsBots = "options-slot-admin.humans-vs-bots";
[TranslationReference]
const string FreeForAll = "free-for-all";
const string FreeForAll = "options-slot-admin.free-for-all";
[TranslationReference]
const string ConfigureTeams = "configure-teams";
const string ConfigureTeams = "options-slot-admin.configure-teams";
[TranslationReference]
const string Back = "back";
const string Back = "button-back";
[TranslationReference]
const string Team = "team";
const string TeamChat = "button-team-chat";
[TranslationReference]
const string All = "all";
const string GeneralChat = "button-general-chat";
[TranslationReference("seconds")]
const string ChatAvailability = "chat-availability";
const string ChatAvailability = "label-chat-availability";
[TranslationReference]
const string ChatDisabled = "chat-disabled";
const string ChatDisabled = "label-chat-disabled";
static readonly Action DoNothing = () => { };
@@ -454,8 +454,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic
}
var chatMode = lobby.Get<ButtonWidget>("CHAT_MODE");
var team = modData.Translation.GetString(Team);
var all = modData.Translation.GetString(All);
var team = modData.Translation.GetString(TeamChat);
var all = modData.Translation.GetString(GeneralChat);
chatMode.GetText = () => teamChat ? team : all;
chatMode.OnClick = () => teamChat ^= true;
chatMode.IsDisabled = () => disableTeamChat || !chatEnabled;

View File

@@ -21,7 +21,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class LobbyOptionsLogic : ChromeLogic
{
[TranslationReference]
const string NotAvailable = "not-available";
const string NotAvailable = "label-not-available";
readonly ModData modData;
readonly ScrollPanelWidget panel;

View File

@@ -24,19 +24,19 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public static class LobbyUtils
{
[TranslationReference]
const string Open = "open";
const string Open = "options-lobby-slot.open";
[TranslationReference]
const string Closed = "closed";
const string Closed = "options-lobby-slot.closed";
[TranslationReference]
const string Bots = "bots";
const string Bots = "options-lobby-slot.bots";
[TranslationReference]
const string BotsDisabled = "bots-disabled";
const string BotsDisabled = "options-lobby-slot.bots-disabled";
[TranslationReference]
const string Slot = "slot";
const string Slot = "options-lobby-slot.slot";
class SlotDropDownOption
{

View File

@@ -20,22 +20,22 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class MapPreviewLogic : ChromeLogic
{
[TranslationReference]
const string Connecting = "connecting";
const string Connecting = "label-connecting";
[TranslationReference("size")]
const string Downloading = "downloading-map";
const string Downloading = "label-downloading-map";
[TranslationReference("size", "progress")]
const string DownloadingPercentage = "downloading-map-progress";
const string DownloadingPercentage = "label-downloading-map-progress";
[TranslationReference]
const string RetryInstall = "retry-install";
const string RetryInstall = "button-retry-install";
[TranslationReference]
const string RetrySearch = "retry-search";
const string RetrySearch = "button-retry-search";
[TranslationReference("author")]
const string CreatedBy = "created-by";
const string CreatedBy = "label-created-by";
readonly int blinkTickLength = 10;
bool installHighlighted;

View File

@@ -18,13 +18,13 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class SpawnSelectorTooltipLogic : ChromeLogic
{
[TranslationReference]
const string DisabledSpawn = "disabled-spawn";
const string DisabledSpawn = "label-disabled-spawn";
[TranslationReference]
const string AvailableSpawn = "available-spawn";
const string AvailableSpawn = "label-available-spawn";
[TranslationReference("team")]
const string TeamNumber = "team-number";
const string TeamNumber = "label-team-name";
readonly CachedTransform<int, string> teamMessage;

View File

@@ -23,13 +23,13 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class MainMenuLogic : ChromeLogic
{
[TranslationReference]
const string LoadingNews = "loading-news";
const string LoadingNews = "label-loading-news";
[TranslationReference("message")]
const string NewsRetrivalFailed = "news-retrival-failed";
const string NewsRetrivalFailed = "label-news-retrival-failed";
[TranslationReference("message")]
const string NewsParsingFailed = "news-parsing-failed";
const string NewsParsingFailed = "label-news-parsing-failed";
protected enum MenuType { Main, Singleplayer, Extras, MapEditor, StartupPrompts, None }

View File

@@ -19,55 +19,55 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class MapChooserLogic : ChromeLogic
{
[TranslationReference]
const string AllMaps = "all-maps";
const string AllMaps = "label-all-maps";
[TranslationReference]
const string NoMatches = "no-matches";
const string NoMatches = "label-no-matches";
[TranslationReference("players")]
const string Players = "player-players";
const string Players = "label-player-count";
[TranslationReference("author")]
const string CreatedBy = "created-by";
const string CreatedBy = "label-created-by";
[TranslationReference]
const string MapSizeHuge = "map-size-huge";
const string MapSizeHuge = "label-map-size-huge";
[TranslationReference]
const string MapSizeLarge = "map-size-large";
const string MapSizeLarge = "label-map-size-large";
[TranslationReference]
const string MapSizeMedium = "map-size-medium";
const string MapSizeMedium = "label-map-size-medium";
[TranslationReference]
const string MapSizeSmall = "map-size-small";
const string MapSizeSmall = "label-map-size-small";
[TranslationReference("map")]
const string MapDeletionFailed = "map-deletion-failed";
const string MapDeletionFailed = "notification-map-deletion-failed";
[TranslationReference]
const string DeleteMapTitle = "delete-map-title";
const string DeleteMapTitle = "dialog-delete-map.title";
[TranslationReference("title")]
const string DeleteMapPrompt = "delete-map-prompt";
const string DeleteMapPrompt = "dialog-delete-map.prompt";
[TranslationReference]
const string DeleteMapAccept = "delete-map-accept";
const string DeleteMapAccept = "dialog-delete-map.confirm";
[TranslationReference]
const string DeleteAllMapsTitle = "delete-all-maps-title";
const string DeleteAllMapsTitle = "dialog-delete-all-maps.title";
[TranslationReference]
const string DeleteAllMapsPrompt = "delete-all-maps-prompt";
const string DeleteAllMapsPrompt = "dialog-delete-all-maps.prompt";
[TranslationReference]
const string DeleteAllMapsAccept = "delete-all-maps-accept";
const string DeleteAllMapsAccept = "dialog-delete-all-maps.confirm";
[TranslationReference]
const string OrderMapsByPlayers = "order-maps-players";
const string OrderMapsByPlayers = "options-order-maps.player-count";
[TranslationReference]
const string OrderMapsByDate = "order-maps-date";
const string OrderMapsByDate = "options-order-maps.date";
readonly string allMaps;

View File

@@ -26,22 +26,22 @@ namespace OpenRA.Mods.Common.Widgets.Logic
enum PlayingVideo { None, Info, Briefing, GameStart }
[TranslationReference]
const string NoVideoTitle = "no-video-title";
const string NoVideoTitle = "dialog-no-video.title";
[TranslationReference]
const string NoVideoPrompt = "no-video-prompt";
const string NoVideoPrompt = "dialog-no-video.prompt";
[TranslationReference]
const string NoVideoCancel = "no-video-cancel";
const string NoVideoCancel = "dialog-no-video.cancel";
[TranslationReference]
const string CantPlayTitle = "cant-play-title";
const string CantPlayTitle = "dialog-cant-play-video.title";
[TranslationReference]
const string CantPlayPrompt = "cant-play-prompt";
const string CantPlayPrompt = "dialog-cant-play-video.prompt";
[TranslationReference]
const string CantPlayCancel = "cant-play-cancel";
const string CantPlayCancel = "dialog-cant-play-video.cancel";
readonly ModData modData;
readonly Action onStart;

View File

@@ -19,10 +19,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class MusicPlayerLogic : ChromeLogic
{
[TranslationReference]
const string SoundMuted = "sound-muted";
const string SoundMuted = "label-sound-muted";
[TranslationReference]
const string NoSongPlaying = "no-song-playing";
const string NoSongPlaying = "label-no-song-playing";
readonly ScrollPanelWidget musicList;
readonly ScrollItemWidget itemTemplate;

View File

@@ -19,10 +19,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class MuteHotkeyLogic : SingleHotkeyBaseLogic
{
[TranslationReference]
const string AudioMuted = "audio-muted";
const string AudioMuted = "label-audio-muted";
[TranslationReference]
const string AudioUnmuted = "audio-unmuted";
const string AudioUnmuted = "label-audio-unmuted";
readonly ModData modData;

View File

@@ -132,10 +132,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class RegisteredProfileTooltipLogic : ChromeLogic
{
[TranslationReference]
const string LoadingPlayerProfile = "loading-player-profile";
const string LoadingPlayerProfile = "label-loading-player-profile";
[TranslationReference]
const string LoadingPlayerProfileFailed = "loading-player-profile-failed";
const string LoadingPlayerProfileFailed = "label-loading-player-profile-failed";
readonly PlayerDatabase playerDatabase;
PlayerProfile profile;

View File

@@ -26,82 +26,82 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class ReplayBrowserLogic : ChromeLogic
{
[TranslationReference("time")]
const string Duration = "duration";
const string Duration = "label-duration";
[TranslationReference]
const string Singleplayer = "singleplayer";
const string Singleplayer = "options-replay-type.singleplayer";
[TranslationReference]
const string Multiplayer = "multiplayer";
const string Multiplayer = "options-replay-type.multiplayer";
[TranslationReference]
const string Today = "today";
const string Today = "options-replay-date.today";
[TranslationReference]
const string LastWeek = "last-week";
const string LastWeek = "options-replay-date.last-week";
[TranslationReference]
const string LastFortnight = "last-fortnight";
const string LastFortnight = "options-replay-date.last-fortnight";
[TranslationReference]
const string LastMonth = "last-month";
const string LastMonth = "options-replay-date.last-month";
[TranslationReference]
const string ReplayDurationVeryShort = "replay-duration-very-short";
const string ReplayDurationVeryShort = "options-replay-duration.very-short";
[TranslationReference]
const string ReplayDurationShort = "replay-duration-short";
const string ReplayDurationShort = "options-replay-duration.short";
[TranslationReference]
const string ReplayDurationMedium = "replay-duration-medium";
const string ReplayDurationMedium = "options-replay-duration.medium";
[TranslationReference]
const string ReplayDurationLong = "replay-duration-long";
const string ReplayDurationLong = "options-replay-duration.long";
[TranslationReference]
const string RenameReplayTitle = "rename-replay-title";
const string RenameReplayTitle = "dialog-rename-replay.title";
[TranslationReference]
const string RenameReplayPrompt = "rename-replay-prompt";
const string RenameReplayPrompt = "dialog-rename-replay.prompt";
[TranslationReference]
const string RenameReplayAccept = "rename-replay-accept";
const string RenameReplayAccept = "dialog-rename-replay.confirm";
[TranslationReference]
const string DeleteReplayTitle = "delete-replay-title";
const string DeleteReplayTitle = "dialog-delete-replay.title";
[TranslationReference("replay")]
const string DeleteReplayPrompt = "delete-replay-prompt";
const string DeleteReplayPrompt = "dialog-delete-replay.prompt";
[TranslationReference]
const string DeleteReplayAccept = "delete-replay-accept";
const string DeleteReplayAccept = "dialog-delete-replay.confirm";
[TranslationReference]
const string DeleteAllReplaysTitle = "delete-all-replays-title";
const string DeleteAllReplaysTitle = "dialog-delete-all-replays.title";
[TranslationReference("count")]
const string DeleteAllReplaysPrompt = "delete-all-replays-prompt";
const string DeleteAllReplaysPrompt = "dialog-delete-all-replays.prompt";
[TranslationReference]
const string DeleteAllReplaysAccept = "delete-all-replays-accept";
const string DeleteAllReplaysAccept = "dialog-delete-all-replays.confirm";
[TranslationReference("file")]
const string ReplayDeletionFailed = "replay-deletion-failed";
const string ReplayDeletionFailed = "notification-replay-deletion-failed";
[TranslationReference]
const string Players = "players";
const string Players = "label-players";
[TranslationReference("team")]
const string TeamNumber = "team-number";
const string TeamNumber = "label-team-name";
[TranslationReference]
const string NoTeam = "no-team";
const string NoTeam = "label-no-team";
[TranslationReference]
const string Victory = "victory";
const string Victory = "options-winstate.victory";
[TranslationReference]
const string Defeat = "defeat";
const string Defeat = "options-winstate.defeat";
static Filter filter = new Filter();

View File

@@ -18,28 +18,28 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public static class ReplayUtils
{
[TranslationReference]
const string IncompatibleReplayTitle = "incompatible-replay-title";
const string IncompatibleReplayTitle = "dialog-incompatible-replay.title";
[TranslationReference]
const string IncompatibleReplayPrompt = "incompatible-replay-prompt";
const string IncompatibleReplayPrompt = "dialog-incompatible-replay.prompt";
[TranslationReference]
const string IncompatibleReplayAccept = "incompatible-replay-accept";
const string IncompatibleReplayAccept = "dialog-incompatible-replay.confirm";
[TranslationReference]
const string UnknownVersion = "incompatible-replay-unknown-version";
const string UnknownVersion = "dialog-incompatible-replay.prompt-unknown-version";
[TranslationReference]
const string UnknownMod = "incompatible-replay-unknown-mod";
const string UnknownMod = "dialog-incompatible-replay.prompt-unknown-mod";
[TranslationReference("mod")]
const string UnvailableMod = "incompatible-replay-unavailable-mod";
const string UnvailableMod = "dialog-incompatible-replay.prompt-unavailable-mod";
[TranslationReference("version")]
const string IncompatibleVersion = "incompatible-replay-incompatible-version";
const string IncompatibleVersion = "dialog-incompatible-replay.prompt-incompatible-version";
[TranslationReference("map")]
const string UnvailableMap = "incompatible-replay-unavailable-map";
const string UnvailableMap = "dialog-incompatible-replay.prompt-unavailable-map";
static readonly Action DoNothing = () => { };

View File

@@ -20,37 +20,37 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class ServerCreationLogic : ChromeLogic
{
[TranslationReference]
const string InternetServerNatA = "internet-server-nat-A";
const string InternetServerNatA = "label-internet-server-nat-A";
[TranslationReference]
const string InternetServerNatBenabled = "internet-server-nat-B-enabled";
const string InternetServerNatBenabled = "label-internet-server-nat-B-enabled";
[TranslationReference]
const string InternetServerNatBnotSupported = "internet-server-nat-B-not-supported";
const string InternetServerNatBnotSupported = "label-internet-server-nat-B-not-supported";
[TranslationReference]
const string InternetServerNatBdisabled = "internet-server-nat-B-disabled";
const string InternetServerNatBdisabled = "label-internet-server-nat-B-disabled";
[TranslationReference]
const string InternetServerNatC = "internet-server-nat-C";
const string InternetServerNatC = "label-internet-server-nat-C";
[TranslationReference]
const string LocalServer = "local-server";
const string LocalServer = "label-local-server";
[TranslationReference("port")]
const string ServerCreationFailedPrompt = "server-creation-failed-prompt";
const string ServerCreationFailedPrompt = "dialog-server-creation-failed.prompt";
[TranslationReference]
const string ServerCreationFailedPortUsed = "server-creation-failed-port-used";
const string ServerCreationFailedPortUsed = "dialog-server-creation-failed.prompt-port-used";
[TranslationReference("message", "code")]
const string ServerCreationFailedError = "server-creation-failed-error";
const string ServerCreationFailedError = "dialog-server-creation-failed.prompt-error";
[TranslationReference]
const string ServerCreationFailedTitle = "server-creation-failed-title";
const string ServerCreationFailedTitle = "dialog-server-creation-failed.title";
[TranslationReference]
const string ServerCreationFailedCancel = "server-creation-failed-cancel";
const string ServerCreationFailedCancel = "dialog-server-creation-failed.cancel";
readonly Widget panel;
readonly ModData modData;

View File

@@ -26,67 +26,67 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class ServerListLogic : ChromeLogic
{
[TranslationReference]
const string SearchStatusFailed = "search-status-failed";
const string SearchStatusFailed = "label-search-status-failed";
[TranslationReference]
const string SearchStatusNoGames = "search-status-no-games";
const string SearchStatusNoGames = "label-search-status-no-games";
[TranslationReference("players")]
const string PlayersOnline = "players-online";
const string PlayersOnline = "label-players-online-count";
[TranslationReference]
const string NoServerSelected = "no-server-selected";
const string NoServerSelected = "label-no-server-selected";
[TranslationReference]
const string MapStatusSearching = "map-status-searching";
const string MapStatusSearching = "label-map-status-searching";
[TranslationReference]
const string MapClassificationUnknown = "map-classification-unknown";
const string MapClassificationUnknown = "label-map-classification-unknown";
[TranslationReference("players")]
const string PlayersLabel = "players-label";
const string PlayersLabel = "label-players-count";
[TranslationReference("bots")]
const string BotsLabel = "bots-label";
const string BotsLabel = "label-bots-count";
[TranslationReference("spectators")]
const string SpectatorsLabel = "spectators-label";
const string SpectatorsLabel = "label-spectators-count";
[TranslationReference]
const string Players = "players";
const string Players = "label-players";
[TranslationReference("team")]
const string TeamNumber = "team-number";
const string TeamNumber = "label-team-name";
[TranslationReference]
const string NoTeam = "no-team";
const string NoTeam = "label-no-team";
[TranslationReference]
const string Spectators = "spectators";
const string Spectators = "label-spectators";
[TranslationReference("players")]
const string OtherPlayers = "n-other-players";
const string OtherPlayers = "label-other-players-count";
[TranslationReference]
const string Playing = "playing";
const string Playing = "label-playing";
[TranslationReference]
const string Waiting = "waiting";
const string Waiting = "label-waiting";
[TranslationReference("minutes")]
const string InProgress = "in-progress-for";
const string InProgress = "label-in-progress-for";
[TranslationReference]
const string PasswordProtected = "password-protected";
const string PasswordProtected = "label-password-protected";
[TranslationReference]
const string WaitingForPlayers = "waiting-for-players";
const string WaitingForPlayers = "label-waiting-for-players";
[TranslationReference]
const string ServerShuttingDown = "server-shutting-down";
const string ServerShuttingDown = "label-server-shutting-down";
[TranslationReference]
const string UnknownServerState = "unknown-server-state";
const string UnknownServerState = "label-unknown-server-state";
readonly string noServerSelected;
readonly string mapStatusSearching;

View File

@@ -23,46 +23,46 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class DisplaySettingsLogic : ChromeLogic
{
[TranslationReference]
const string Close = "close";
const string Close = "options-camera.close";
[TranslationReference]
const string Medium = "medium";
const string Medium = "options-camera.medium";
[TranslationReference]
const string Far = "far";
const string Far = "options-camera.far";
[TranslationReference]
const string Furthest = "furthest";
const string Furthest = "options-camera.furthest";
[TranslationReference]
const string Windowed = "windowed";
const string Windowed = "options-display-mode.windowed";
[TranslationReference]
const string LegacyFullscreen = "legacy-fullscreen";
const string LegacyFullscreen = "options-display-mode.legacy-fullscreen";
[TranslationReference]
const string Fullscreen = "fullscreen";
const string Fullscreen = "options-display-mode.fullscreen";
[TranslationReference("number")]
const string Display = "display";
const string Display = "label-video-display-index";
[TranslationReference]
const string Standard = "standard";
const string Standard = "options-status-bars.standard";
[TranslationReference]
const string ShowOnDamage = "show-on-damage";
const string ShowOnDamage = "options-status-bars.show-on-damage";
[TranslationReference]
const string AlwaysShow = "always-show";
const string AlwaysShow = "options-status-bars.always-show";
[TranslationReference]
const string Automatic = "automatic";
const string Automatic = "options-target-lines.automatic";
[TranslationReference]
const string Manual = "manual";
const string Manual = "options-target-lines.manual";
[TranslationReference]
const string Disabled = "disabled";
const string Disabled = "options-target-lines.disabled";
static readonly int OriginalVideoDisplay;
static readonly WindowMode OriginalGraphicsMode;

View File

@@ -18,37 +18,37 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class InputSettingsLogic : ChromeLogic
{
[TranslationReference]
const string Classic = "classic";
const string Classic = "options-control-scheme.classic";
[TranslationReference]
const string Modern = "modern";
const string Modern = "options-control-scheme.modern";
[TranslationReference]
const string Disabled = "disabled";
const string Disabled = "options-mouse-scroll-type.disabled";
[TranslationReference]
const string Standard = "standard";
const string Standard = "options-mouse-scroll-type.standard";
[TranslationReference]
const string Inverted = "inverted";
const string Inverted = "options-mouse-scroll-type.inverted";
[TranslationReference]
const string Joystick = "joystick";
const string Joystick = "options-mouse-scroll-type.joystick";
[TranslationReference]
const string Alt = "alt";
const string Alt = "options-zoom-modifier.alt";
[TranslationReference]
const string Ctrl = "ctrl";
const string Ctrl = "options-zoom-modifier.ctrl";
[TranslationReference]
const string Meta = "meta";
const string Meta = "options-zoom-modifier.meta";
[TranslationReference]
const string Shift = "shift";
const string Shift = "options-zoom-modifier.shift";
[TranslationReference]
const string None = "none";
const string None = "options-zoom-modifier.none";
static InputSettingsLogic() { }

View File

@@ -20,37 +20,37 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class SettingsLogic : ChromeLogic
{
[TranslationReference]
const string SettingsSaveTitle = "settings-save-title";
const string SettingsSaveTitle = "dialog-settings-save.title";
[TranslationReference]
const string SettingsSavePrompt = "settings-save-prompt";
const string SettingsSavePrompt = "dialog-settings-save.prompt";
[TranslationReference]
const string SettingsSaveCancel = "settings-save-cancel";
const string SettingsSaveCancel = "dialog-settings-save.cancel";
[TranslationReference]
const string RestartTitle = "restart-title";
const string RestartTitle = "dialog-settings-restart.title";
[TranslationReference]
const string RestartPrompt = "restart-prompt";
const string RestartPrompt = "dialog-settings-restart.prompt";
[TranslationReference]
const string RestartAccept = "restart-accept";
const string RestartAccept = "dialog-settings-restart.confirm";
[TranslationReference]
const string RestartCancel = "restart-cancel";
const string RestartCancel = "dialog-settings-restart.cancel";
[TranslationReference("panel")]
const string ResetTitle = "reset-title";
const string ResetTitle = "dialog-settings-reset.title";
[TranslationReference]
const string ResetPrompt = "reset-prompt";
const string ResetPrompt = "dialog-settings-reset.prompt";
[TranslationReference]
const string ResetAccept = "reset-accept";
const string ResetAccept = "dialog-settings-reset.confirm";
[TranslationReference]
const string ResetCancel = "reset-cancel";
const string ResetCancel = "dialog-settings-reset.cancel";
readonly Dictionary<string, Func<bool>> leavePanelActions = new Dictionary<string, Func<bool>>();
readonly Dictionary<string, Action> resetPanelActions = new Dictionary<string, Action>();

View File

@@ -1,22 +1,24 @@
## Player
low = Low
medium = Medium
no-powers = No Powers
unrestricted = Unrestricted
options-tech-level =
.low = Low
.medium = Medium
.no-powers = No Powers
.unrestricted = Unrestricted
redeployable-mcvs =
checkbox-redeployable-mcvs =
.label = Redeployable MCVs
.description = Allow undeploying Construction Yard
stealth-deliveries =
checkbox-stealth-deliveries =
.label = Stealth Deliveries
.description = Nod's delivery plane is cloaked
## World
mcv-only = MCV Only
light-support = Light Support
heavy-support = Heavy Support
options-starting-units =
.mcv-only = MCV Only
.light-support = Light Support
.heavy-support = Heavy Support
map-creeps =
dropdown-map-creeps =
.label = Creep Actors
.description = Hostile forces spawn on the battlefield

View File

@@ -256,27 +256,27 @@ GameSpeeds:
DefaultSpeed: default
Speeds:
slowest:
Name: slowest
Name: options-game-speed.slowest
Timestep: 80
OrderLatency: 2
slower:
Name: slower
Name: options-game-speed.slower
Timestep: 50
OrderLatency: 3
default:
Name: normal
Name: options-game-speed.normal
Timestep: 40
OrderLatency: 3
fast:
Name: fast
Name: options-game-speed.fast
Timestep: 35
OrderLatency: 4
faster:
Name: faster
Name: options-game-speed.faster
Timestep: 30
OrderLatency: 4
fastest:
Name: fastest
Name: options-game-speed.fastest
Timestep: 20
OrderLatency: 6

View File

@@ -42,15 +42,15 @@ Player:
FogCheckboxDisplayOrder: 3
LobbyPrerequisiteCheckbox@GLOBALFACTUNDEPLOY:
ID: factundeploy
Label: redeployable-mcvs.label
Description: redeployable-mcvs.description
Label: checkbox-redeployable-mcvs.label
Description: checkbox-redeployable-mcvs.description
Enabled: True
DisplayOrder: 7
Prerequisites: global-factundeploy
LobbyPrerequisiteCheckbox@GLOBALC17STEALTH:
ID: C17-Stealth
Label: stealth-deliveries.label
Description: stealth-deliveries.description
Label: checkbox-stealth-deliveries.label
Description: checkbox-stealth-deliveries.description
Enabled: False
DisplayOrder: 8
Prerequisites: global-C17-stealth
@@ -58,19 +58,19 @@ Player:
FrozenActorLayer:
PlaceBeacon:
ProvidesTechPrerequisite@low:
Name: low
Name: options-tech-level.low
Prerequisites: techlevel.low
Id: low
ProvidesTechPrerequisite@medium:
Name: medium
Name: options-tech-level.medium
Prerequisites: techlevel.low, techlevel.medium
Id: medium
ProvidesTechPrerequisite@nosuper:
Name: no-powers
Name: options-tech-level.no-powers
Prerequisites: techlevel.low, techlevel.medium, techlevel.high
Id: nopowers
ProvidesTechPrerequisite@all:
Name: unrestricted
Name: options-tech-level.unrestricted
Prerequisites: techlevel.low, techlevel.medium, techlevel.high, techlevel.superweapons
Id: unrestricted
GrantConditionOnPrerequisiteManager:

View File

@@ -208,42 +208,42 @@ World:
CreateMapPlayers:
StartingUnits@mcvonly:
Class: none
ClassName: mcv-only
ClassName: options-starting-units.mcv-only
Factions: gdi, nod
BaseActor: mcv
StartingUnits@defaultgdia:
Class: light
ClassName: light-support
ClassName: options-starting-units.light-support
Factions: gdi
BaseActor: mcv
SupportActors: e1,e1,e1,e1,e1,e3,e3,jeep
StartingUnits@defaultnoda:
Class: light
ClassName: light-support
ClassName: options-starting-units.light-support
Factions: nod
BaseActor: mcv
SupportActors: e1,e1,e1,e1,e1,e1,e3,e3,bggy
StartingUnits@heavynoda:
Class: heavy
ClassName: heavy-support
ClassName: options-starting-units.heavy-support
Factions: nod
BaseActor: mcv
SupportActors: e1,e1,e1,e1,e3,e3,ltnk,ltnk,ftnk
StartingUnits@heavynodb:
Class: heavy
ClassName: heavy-support
ClassName: options-starting-units.heavy-support
Factions: nod
BaseActor: mcv
SupportActors: e1,e1,e1,e1,e1,e3,e3,e3,ftnk,ftnk
StartingUnits@heavygdia:
Class: heavy
ClassName: heavy-support
ClassName: options-starting-units.heavy-support
Factions: gdi
BaseActor: mcv
SupportActors: e1,e1,e1,e1,e3,e3,jeep,mtnk,mtnk
StartingUnits@heavygdib:
Class: heavy
ClassName: heavy-support
ClassName: options-starting-units.heavy-support
Factions: gdi
BaseActor: mcv
SupportActors: e1,e1,e1,e1,e1,e2,e2,e2,e3,e3,apc,mtnk

File diff suppressed because it is too large Load Diff

View File

@@ -1,18 +1,20 @@
## Player
low = Low
medium = Medium
no-powers = No Powers
unrestricted = Unrestricted
options-tech-level =
.low = Low
.medium = Medium
.no-powers = No Powers
.unrestricted = Unrestricted
automatic-concrete =
checkbox-automatic-concrete =
.label = Automatic Concrete
.description = Concrete foundations are automatically created beneath buildings
## World
map-worms =
dropdown-map-worms =
.label = Worms
.description = Worms roam the map and devour unprepared forces
mcv-only = MCV Only
light-support = Light Support
heavy-support = Heavy Support
options-starting-units =
.mcv-only = MCV Only
.light-support = Light Support
.heavy-support = Heavy Support

View File

@@ -232,27 +232,27 @@ GameSpeeds:
DefaultSpeed: default
Speeds:
slowest:
Name: slowest
Name: options-game-speed.slowest
Timestep: 80
OrderLatency: 2
slower:
Name: slower
Name: options-game-speed.slower
Timestep: 50
OrderLatency: 3
default:
Name: normal
Name: options-game-speed.normal
Timestep: 40
OrderLatency: 3
fast:
Name: fast
Name: options-game-speed.fast
Timestep: 35
OrderLatency: 4
faster:
Name: faster
Name: options-game-speed.faster
Timestep: 30
OrderLatency: 4
fastest:
Name: fastest
Name: options-game-speed.fastest
Timestep: 20
OrderLatency: 6

View File

@@ -126,8 +126,8 @@ Player:
FogCheckboxDisplayOrder: 3
LobbyPrerequisiteCheckbox@AUTOCONCRETE:
ID: autoconcrete
Label: automatic-concrete.label
Description: automatic-concrete.description
Label: checkbox-automatic-concrete.label
Description: checkbox-automatic-concrete.description
Enabled: False
DisplayOrder: 7
Prerequisites: global-auto-concrete
@@ -158,19 +158,19 @@ Player:
Prerequisite: player.smuggler
Factions: smuggler
ProvidesTechPrerequisite@low:
Name: low
Name: options-tech-level.low
Prerequisites: techlevel.low
Id: low
ProvidesTechPrerequisite@medium:
Name: medium
Name: options-tech-level.medium
Prerequisites: techlevel.low, techlevel.medium
Id: medium
ProvidesTechPrerequisite@nosuper:
Name: no-powers
Name: options-tech-level.no-powers
Prerequisites: techlevel.low, techlevel.medium, techlevel.high
Id: nopowers
ProvidesTechPrerequisite@all:
Name: unrestricted
Name: options-tech-level.unrestricted
Prerequisites: techlevel.low, techlevel.medium, techlevel.high, techlevel.superweapons
Id: unrestricted
EnemyWatcher:

View File

@@ -157,8 +157,8 @@ World:
Type: SandCrater
Sequence: sandcraters
MapCreeps:
CheckboxLabel: map-worms.label
CheckboxDescription: map-worms.description
CheckboxLabel: dropdown-map-worms.label
CheckboxDescription: dropdown-map-worms.description
CheckboxDisplayOrder: 5
SpawnMapActors:
MapBuildRadius:
@@ -173,12 +173,12 @@ World:
SeparateTeamSpawnsCheckboxDisplayOrder: 6
StartingUnits@mcv:
Class: none
ClassName: mcv-only
ClassName: options-starting-units.mcv-only
BaseActor: mcv
Factions: atreides, ordos, harkonnen
StartingUnits@lightatreides:
Class: light
ClassName: light-support
ClassName: options-starting-units.light-support
Factions: atreides
BaseActor: mcv
SupportActors: light_inf, light_inf, light_inf, trooper, grenadier, trike, quad
@@ -186,7 +186,7 @@ World:
OuterSupportRadius: 5
StartingUnits@lightharkonnen:
Class: light
ClassName: light-support
ClassName: options-starting-units.light-support
Factions: harkonnen
BaseActor: mcv
SupportActors: light_inf, light_inf, light_inf, trooper, trooper, trike, quad
@@ -194,7 +194,7 @@ World:
OuterSupportRadius: 5
StartingUnits@lightordos:
Class: light
ClassName: light-support
ClassName: options-starting-units.light-support
Factions: ordos
BaseActor: mcv
SupportActors: light_inf, light_inf, light_inf, trooper, engineer, raider, quad
@@ -202,7 +202,7 @@ World:
OuterSupportRadius: 5
StartingUnits@heavyatreides:
Class: heavy
ClassName: heavy-support
ClassName: options-starting-units.heavy-support
Factions: atreides
BaseActor: mcv
SupportActors: light_inf, light_inf, light_inf, trooper, grenadier, trike, combat_tank_a, missile_tank
@@ -210,7 +210,7 @@ World:
OuterSupportRadius: 5
StartingUnits@heavyharkonnen:
Class: heavy
ClassName: heavy-support
ClassName: options-starting-units.heavy-support
Factions: harkonnen
BaseActor: mcv
SupportActors: light_inf, light_inf, light_inf, trooper, engineer, quad, combat_tank_h, siege_tank
@@ -218,7 +218,7 @@ World:
OuterSupportRadius: 5
StartingUnits@heavyordos:
Class: heavy
ClassName: heavy-support
ClassName: options-starting-units.heavy-support
Factions: ordos
BaseActor: mcv
SupportActors: light_inf, light_inf, light_inf, trooper, engineer, raider, combat_tank_o, missile_tank

View File

@@ -1,23 +1,25 @@
## Player
infantry-only = Infantry Only
low = Low
medium = Medium
no-superweapons = No Superweapons
unrestricted = Unrestricted
options-tech-level =
.infantry-only = Infantry Only
.low = Low
.medium = Medium
.no-superweapons = No Superweapons
.unrestricted = Unrestricted
kill-bounties =
checkbox-kill-bounties =
.label = Kill Bounties
.description = Players receive cash bonuses when killing enemy units
redeployable-mcvs =
checkbox-redeployable-mcvs =
.label = Redeployable MCVs
.description = Allow undeploying Construction Yard
reusable-engineers =
checkbox-reusable-engineers =
.label = Reusable Engineers
.description = Engineers remain on the battlefield after capturing a structure
## World
mcv-only = MCV Only
light-support = Light Support
heavy-support = Heavy Support
options-starting-units =
.mcv-only = MCV Only
.light-support = Light Support
.heavy-support = Heavy Support

View File

@@ -258,27 +258,27 @@ GameSpeeds:
DefaultSpeed: default
Speeds:
slowest:
Name: slowest
Name: options-game-speed.slowest
Timestep: 80
OrderLatency: 2
slower:
Name: slower
Name: options-game-speed.slower
Timestep: 50
OrderLatency: 3
default:
Name: normal
Name: options-game-speed.normal
Timestep: 40
OrderLatency: 3
fast:
Name: fast
Name: options-game-speed.fast
Timestep: 35
OrderLatency: 4
faster:
Name: faster
Name: options-game-speed.faster
Timestep: 30
OrderLatency: 4
fastest:
Name: fastest
Name: options-game-speed.fastest
Timestep: 20
OrderLatency: 6

View File

@@ -125,22 +125,22 @@ Player:
FogCheckboxDisplayOrder: 3
LobbyPrerequisiteCheckbox@GLOBALBOUNTY:
ID: bounty
Label: kill-bounties.label
Description: kill-bounties.description
Label: checkbox-kill-bounties.label
Description: checkbox-kill-bounties.description
Enabled: False
DisplayOrder: 8
Prerequisites: global-bounty
LobbyPrerequisiteCheckbox@GLOBALFACTUNDEPLOY:
ID: factundeploy
Label: redeployable-mcvs.label
Description: redeployable-mcvs.description
Label: checkbox-redeployable-mcvs.label
Description: checkbox-redeployable-mcvs.description
Enabled: True
DisplayOrder: 7
Prerequisites: global-factundeploy
LobbyPrerequisiteCheckbox@REUSABLEENGINEERS:
ID: reusable-engineers
Label: reusable-engineers.label
Description: reusable-engineers.description
Label: checkbox-reusable-engineers.label
Description: checkbox-reusable-engineers.description
Enabled: False
DisplayOrder: 9
Prerequisites: global-reusable-engineers
@@ -151,23 +151,23 @@ Player:
PlayerStatistics:
PlaceBeacon:
ProvidesTechPrerequisite@infonly:
Name: infantry-only
Name: options-tech-level.infantry-only
Prerequisites: techlevel.infonly
Id: infantryonly
ProvidesTechPrerequisite@low:
Name: low
Name: options-tech-level.low
Prerequisites: techlevel.infonly, techlevel.low
Id: low
ProvidesTechPrerequisite@medium:
Name: medium
Name: options-tech-level.medium
Prerequisites: techlevel.infonly, techlevel.low, techlevel.medium
Id: medium
ProvidesTechPrerequisite@high:
Name: no-superweapons
Name: options-tech-level.no-superweapons
Prerequisites: techlevel.infonly, techlevel.low, techlevel.medium, techlevel.high
Id: nosuperweapons
ProvidesTechPrerequisite@unrestricted:
Name: unrestricted
Name: options-tech-level.unrestricted
Prerequisites: techlevel.infonly, techlevel.low, techlevel.medium, techlevel.high, techlevel.unrestricted
Id: unrestricted
GrantConditionOnPrerequisiteManager:

View File

@@ -228,12 +228,12 @@ World:
CreateMapPlayers:
StartingUnits@mcvonly:
Class: none
ClassName: mcv-only
ClassName: options-starting-units.mcv-only
Factions: allies, england, france, germany, soviet, russia, ukraine
BaseActor: mcv
StartingUnits@lightallies:
Class: light
ClassName: light-support
ClassName: options-starting-units.light-support
Factions: allies, england, france, germany
BaseActor: mcv
SupportActors: e1,e1,e1,e3,e3,jeep,1tnk
@@ -241,7 +241,7 @@ World:
OuterSupportRadius: 5
StartingUnits@lightsoviet:
Class: light
ClassName: light-support
ClassName: options-starting-units.light-support
Factions: soviet, russia, ukraine
BaseActor: mcv
SupportActors: e1,e1,e1,e3,e3,apc,ftrk
@@ -249,7 +249,7 @@ World:
OuterSupportRadius: 5
StartingUnits@heavyallies:
Class: heavy
ClassName: heavy-support
ClassName: options-starting-units.heavy-support
Factions: allies, england, france, germany
BaseActor: mcv
SupportActors: e1,e1,e1,e3,e3,jeep,1tnk,2tnk,2tnk,2tnk
@@ -257,7 +257,7 @@ World:
OuterSupportRadius: 5
StartingUnits@heavysoviet:
Class: heavy
ClassName: heavy-support
ClassName: options-starting-units.heavy-support
Factions: soviet, russia, ukraine
BaseActor: mcv
SupportActors: e1,e1,e1,e3,e3,apc,ftrk,3tnk,3tnk

View File

@@ -1,18 +1,21 @@
## Player
low = Low
medium = Medium
no-powers = No Powers
unrestricted = Unrestricted
options-tech-level =
.low = Low
.medium = Medium
.no-powers = No Powers
.unrestricted = Unrestricted
redeployable-mcvs =
checkbox-redeployable-mcvs =
.label = Redeployable MCVs
.description = Allow undeploying Construction Yard
## World
mcv-only = MCV Only
light = Light
heavy = Heavy
options-starting-units =
.mcv-only = MCV Only
.light = Light
.medium = Medium
.heavy = Heavy
map-creeps =
dropdown-map-creeps =
.label = Creep Actors
.description = Hostile forces spawn on the battlefield

View File

@@ -290,27 +290,27 @@ GameSpeeds:
DefaultSpeed: default
Speeds:
slowest:
Name: slowest
Name: options-game-speed.slowest
Timestep: 80
OrderLatency: 2
slower:
Name: slower
Name: options-game-speed.slower
Timestep: 50
OrderLatency: 3
default:
Name: normal
Name: options-game-speed.normal
Timestep: 40
OrderLatency: 3
fast:
Name: fast
Name: options-game-speed.fast
Timestep: 35
OrderLatency: 4
faster:
Name: faster
Name: options-game-speed.faster
Timestep: 30
OrderLatency: 4
fastest:
Name: fastest
Name: options-game-speed.fastest
Timestep: 20
OrderLatency: 6

View File

@@ -107,8 +107,8 @@ Player:
FogCheckboxDisplayOrder: 3
LobbyPrerequisiteCheckbox@GLOBALFACTUNDEPLOY:
ID: factundeploy
Label: redeployable-mcvs.label
Description: redeployable-mcvs.description
Label: checkbox-redeployable-mcvs.label
Description: checkbox-redeployable-mcvs.description
Enabled: True
DisplayOrder: 7
Prerequisites: global-factundeploy
@@ -127,19 +127,19 @@ Player:
ArrowSequence:
CircleSequence:
ProvidesTechPrerequisite@low:
Name: low
Name: options-tech-level.low
Prerequisites: techlevel.low
Id: low
ProvidesTechPrerequisite@medium:
Name: medium
Name: options-tech-level.medium
Prerequisites: techlevel.low, techlevel.medium
Id: medium
ProvidesTechPrerequisite@nosuper:
Name: no-powers
Name: options-tech-level.no-powers
Prerequisites: techlevel.low, techlevel.medium, techlevel.high
Id: nopowers
ProvidesTechPrerequisite@all:
Name: unrestricted
Name: options-tech-level.unrestricted
Prerequisites: techlevel.low, techlevel.medium, techlevel.high, techlevel.superweapons
Id: unrestricted
ResourceStorageWarning:

View File

@@ -307,12 +307,12 @@ World:
CreateMapPlayers:
StartingUnits@MCV:
Class: none
ClassName: mcv-only
ClassName: options-starting-units.mcv-only
Factions: gdi, nod
BaseActor: mcv
StartingUnits@light.gdi:
Class: light
ClassName: light
ClassName: options-starting-units.light
Factions: gdi
BaseActor: mcv
SupportActors: e1,e1,e1,smech
@@ -320,7 +320,7 @@ World:
OuterSupportRadius: 5
StartingUnits@light.nod:
Class: light
ClassName: light
ClassName: options-starting-units.light
Factions: nod
BaseActor: mcv
SupportActors: e1,e1,e1,bggy
@@ -328,7 +328,7 @@ World:
OuterSupportRadius: 5
StartingUnits@med.gdi:
Class: medium
ClassName: medium
ClassName: options-starting-units.medium
Factions: gdi
BaseActor: mcv
SupportActors: e1,e1,e2,e2,jumpjet,smech
@@ -336,7 +336,7 @@ World:
OuterSupportRadius: 5
StartingUnits@med.nod:
Class: medium
ClassName: medium
ClassName: options-starting-units.medium
Factions: nod
BaseActor: mcv
SupportActors: e1,e1,e3,e3,cyborg,bggy
@@ -344,7 +344,7 @@ World:
OuterSupportRadius: 5
StartingUnits@heavy.gdi:
Class: heavy
ClassName: heavy
ClassName: options-starting-units.heavy
Factions: gdi
BaseActor: mcv
SupportActors: e1,e1,e2,e2,jumpjet,smech,smech,mmch
@@ -352,7 +352,7 @@ World:
OuterSupportRadius: 5
StartingUnits@heavy.nod:
Class: heavy
ClassName: heavy
ClassName: options-starting-units.heavy
Factions: nod
BaseActor: mcv
SupportActors: e1,e1,e3,e3,cyborg,bggy,bike,ttnk