From d97dd4400dd24c69d4faddb4eda9f2e8ceda7508 Mon Sep 17 00:00:00 2001 From: Visne <39844191+Visne@users.noreply.github.com> Date: Fri, 21 May 2021 15:39:33 +0200 Subject: [PATCH] Implement fluent for some Menu files (#3893) --- Content.Client/Arcade/BlockGameMenu.cs | 38 ++++++------ .../Arcade/SpaceVillainArcadeMenu.cs | 12 ++-- .../Command/CommunicationsConsoleMenu.cs | 8 +-- .../Construction/ConstructionMenuPresenter.cs | 58 +++++++++++++++---- .../Configuration/ConfigurationMenu.cs | 4 +- .../GameObjects/Components/Wires/WiresMenu.cs | 4 +- Content.Client/Research/LatheQueueMenu.cs | 2 +- Resources/Locale/en-US/arcade/blockgame.ftl | 25 ++++++++ .../Locale/en-US/arcade/spacevillain.ftl | 6 ++ Resources/Locale/en-US/blockgame.ftl | 13 ----- .../en-US/construction/menu-presenter.ftl | 15 +++++ .../en-US/menu/communicationsconsole.ftl | 4 ++ Resources/Locale/en-US/menu/configuration.ftl | 2 + Resources/Locale/en-US/menu/lathequeue.ftl | 1 + Resources/Locale/en-US/menu/wires.ftl | 1 + 15 files changed, 134 insertions(+), 59 deletions(-) create mode 100644 Resources/Locale/en-US/arcade/blockgame.ftl create mode 100644 Resources/Locale/en-US/arcade/spacevillain.ftl delete mode 100644 Resources/Locale/en-US/blockgame.ftl create mode 100644 Resources/Locale/en-US/construction/menu-presenter.ftl create mode 100644 Resources/Locale/en-US/menu/communicationsconsole.ftl create mode 100644 Resources/Locale/en-US/menu/configuration.ftl create mode 100644 Resources/Locale/en-US/menu/lathequeue.ftl create mode 100644 Resources/Locale/en-US/menu/wires.ftl diff --git a/Content.Client/Arcade/BlockGameMenu.cs b/Content.Client/Arcade/BlockGameMenu.cs index a6ae907cfc..86982c5985 100644 --- a/Content.Client/Arcade/BlockGameMenu.cs +++ b/Content.Client/Arcade/BlockGameMenu.cs @@ -56,7 +56,7 @@ namespace Content.Client.Arcade public BlockGameMenu(BlockGameBoundUserInterface owner) { - Title = Loc.GetString("Nanotrasen Block Game"); + Title = Loc.GetString("blockgame-menu-title"); _owner = owner; MinSize = SetSize = (410, 490); @@ -160,7 +160,7 @@ namespace Content.Client.Arcade _newGameButton = new Button { - Text = Loc.GetString("New Game"), + Text = Loc.GetString("blockgame-menu-button-new-game"), TextAlign = Label.AlignMode.Center }; _newGameButton.OnPressed += (e) => @@ -172,7 +172,7 @@ namespace Content.Client.Arcade _scoreBoardButton = new Button { - Text = Loc.GetString("Scoreboard"), + Text = Loc.GetString("blockgame-menu-button-scoreboard"), TextAlign = Label.AlignMode.Center }; _scoreBoardButton.OnPressed += (e) => _owner.SendAction(BlockGamePlayerAction.ShowHighscores); @@ -182,7 +182,7 @@ namespace Content.Client.Arcade _unpauseButton = new Button { - Text = Loc.GetString("Unpause"), + Text = Loc.GetString("blockgame-menu-button-unpause"), TextAlign = Label.AlignMode.Center, Visible = false }; @@ -230,7 +230,7 @@ namespace Content.Client.Arcade VerticalAlignment = VAlignment.Center }; - gameOverMenuContainer.AddChild(new Label{Text = Loc.GetString("Gameover!"),Align = Label.AlignMode.Center}); + gameOverMenuContainer.AddChild(new Label{Text = Loc.GetString("blockgame-menu-msg-game-over"),Align = Label.AlignMode.Center}); gameOverMenuContainer.AddChild(new Control{MinSize = new Vector2(1,10)}); @@ -240,7 +240,7 @@ namespace Content.Client.Arcade _finalNewGameButton = new Button { - Text = Loc.GetString("New Game"), + Text = Loc.GetString("blockgame-menu-button-new-game"), TextAlign = Label.AlignMode.Center }; _finalNewGameButton.OnPressed += (e) => @@ -288,7 +288,7 @@ namespace Content.Client.Arcade VerticalAlignment = VAlignment.Center }; - menuContainer.AddChild(new Label{Text = Loc.GetString("Highscores")}); + menuContainer.AddChild(new Label{Text = Loc.GetString("blockgame-menu-label-highscores")}); menuContainer.AddChild(new Control{MinSize = new Vector2(1,10)}); var highScoreBox = new HBoxContainer(); @@ -308,7 +308,7 @@ namespace Content.Client.Arcade menuContainer.AddChild(new Control{MinSize = new Vector2(1,10)}); _highscoreBackButton = new Button { - Text = Loc.GetString("Back"), + Text = Loc.GetString("blockgame-menu-button-back"), TextAlign = Label.AlignMode.Center }; _highscoreBackButton.OnPressed += (e) => _owner.SendAction(BlockGamePlayerAction.Pause); @@ -403,7 +403,7 @@ namespace Content.Client.Arcade nextBlockPanel.AddChild(nextCenterContainer); grid.AddChild(nextBlockPanel); - grid.AddChild(new Label{Text = Loc.GetString("Next"), Align = Label.AlignMode.Center}); + grid.AddChild(new Label{Text = Loc.GetString("blockgame-menu-label-next"), Align = Label.AlignMode.Center}); return grid; } @@ -441,7 +441,7 @@ namespace Content.Client.Arcade holdBlockPanel.AddChild(holdCenterContainer); grid.AddChild(holdBlockPanel); - grid.AddChild(new Label{Text = Loc.GetString("Hold"), Align = Label.AlignMode.Center}); + grid.AddChild(new Label{Text = Loc.GetString("blockgame-menu-label-hold"), Align = Label.AlignMode.Center}); return grid; } @@ -509,7 +509,7 @@ namespace Content.Client.Arcade var globalPlacementText = globalPlacement == null ? "-" : $"#{globalPlacement}"; var localPlacementText = localPlacement == null ? "-" : $"#{localPlacement}"; _finalScoreLabel.Text = - Loc.GetString("blockgame-gameover-info", + Loc.GetString("blockgame-menu-gameover-info", ("global", globalPlacementText), ("local", localPlacementText), ("points", amount)); @@ -517,29 +517,29 @@ namespace Content.Client.Arcade public void UpdatePoints(int points) { - _pointsLabel.Text = Loc.GetString("blockgame-points-label", ("points", points)); + _pointsLabel.Text = Loc.GetString("blockgame-menu-label-points", ("points", points)); } public void UpdateLevel(int level) { - _levelLabel.Text = Loc.GetString("blockgame-level-label", ("level", level + 1)); + _levelLabel.Text = Loc.GetString("blockgame-menu-label-level", ("level", level + 1)); } public void UpdateHighscores(List localHighscores, List globalHighscores) { - var localHighscoreText = new StringBuilder(Loc.GetString("Station\n")); - var globalHighscoreText = new StringBuilder(Loc.GetString("Nanotrasen:\n")); + var localHighscoreText = new StringBuilder(Loc.GetString("blockgame-menu-text-station") + "\n"); + var globalHighscoreText = new StringBuilder(Loc.GetString("blockgame-menu-text-nanotrasen") + "\n"); for (var i = 0; i < 5; i++) { localHighscoreText.AppendLine(localHighscores.Count > i - ? Loc.GetString("#{0}: {1} - {2}", i + 1, localHighscores[i].Name, localHighscores[i].Score) - : Loc.GetString("#{0}: ??? - 0", i + 1)); + ? $"#{i + 1}: {localHighscores[i].Name} - {localHighscores[i].Score}" + : $"#{i + 1}: ??? - 0"); globalHighscoreText.AppendLine(globalHighscores.Count > i - ? Loc.GetString("#{0}: {1} - {2}", i + 1, globalHighscores[i].Name, globalHighscores[i].Score) - : Loc.GetString("#{0}: ??? - 0", i + 1)); + ? $"#{i + 1}: {globalHighscores[i].Name} - {globalHighscores[i].Score}" + : $"#{i + 1}: ??? - 0"); } _localHighscoresLabel.Text = localHighscoreText.ToString(); diff --git a/Content.Client/Arcade/SpaceVillainArcadeMenu.cs b/Content.Client/Arcade/SpaceVillainArcadeMenu.cs index 8d4a281fc0..058fcee145 100644 --- a/Content.Client/Arcade/SpaceVillainArcadeMenu.cs +++ b/Content.Client/Arcade/SpaceVillainArcadeMenu.cs @@ -21,13 +21,13 @@ namespace Content.Client.Arcade public SpaceVillainArcadeMenu(SpaceVillainArcadeBoundUserInterface owner) { MinSize = SetSize = (300, 225); - Title = Loc.GetString("Space Villain"); + Title = Loc.GetString("spacevillain-menu-title"); Owner = owner; var grid = new GridContainer {Columns = 1}; var infoGrid = new GridContainer {Columns = 3}; - infoGrid.AddChild(new Label{ Text = Loc.GetString("Player"), Align = Label.AlignMode.Center }); + infoGrid.AddChild(new Label{ Text = Loc.GetString("spacevillain-menu-label-player"), Align = Label.AlignMode.Center }); infoGrid.AddChild(new Label{ Text = "|", Align = Label.AlignMode.Center }); _enemyNameLabel = new Label{ Align = Label.AlignMode.Center}; infoGrid.AddChild(_enemyNameLabel); @@ -49,15 +49,15 @@ namespace Content.Client.Arcade var buttonGrid = new GridContainer {Columns = 3}; _gameButtons[0] = new ActionButton(Owner, SharedSpaceVillainArcadeComponent.PlayerAction.Attack) - {Text = Loc.GetString("ATTACK")}; + {Text = Loc.GetString("spacevillain-menu-button-attack")}; buttonGrid.AddChild(_gameButtons[0]); _gameButtons[1] = new ActionButton(Owner, SharedSpaceVillainArcadeComponent.PlayerAction.Heal) - {Text = Loc.GetString("HEAL")}; + {Text = Loc.GetString("spacevillain-menu-button-heal")}; buttonGrid.AddChild(_gameButtons[1]); _gameButtons[2] = new ActionButton(Owner, SharedSpaceVillainArcadeComponent.PlayerAction.Recharge) - {Text = Loc.GetString("RECHARGE")}; + {Text = Loc.GetString("spacevillain-menu-button-recharge")}; buttonGrid.AddChild(_gameButtons[2]); centerContainer = new CenterContainer(); @@ -65,7 +65,7 @@ namespace Content.Client.Arcade grid.AddChild(centerContainer); var newGame = new ActionButton(Owner, SharedSpaceVillainArcadeComponent.PlayerAction.NewGame) - {Text = Loc.GetString("New Game")}; + {Text = Loc.GetString("spacevillain-menu-button-new-game")}; grid.AddChild(newGame); Contents.AddChild(grid); diff --git a/Content.Client/Command/CommunicationsConsoleMenu.cs b/Content.Client/Command/CommunicationsConsoleMenu.cs index 880031f35e..dd60ac285f 100644 --- a/Content.Client/Command/CommunicationsConsoleMenu.cs +++ b/Content.Client/Command/CommunicationsConsoleMenu.cs @@ -24,12 +24,12 @@ namespace Content.Client.Command SetSize = MinSize = (600, 400); IoCManager.InjectDependencies(this); - Title = Loc.GetString("Communications Console"); + Title = Loc.GetString("communicationsconsole-menu-title"); Owner = owner; _messageInput = new LineEdit { - PlaceHolder = Loc.GetString("Announcement"), + PlaceHolder = Loc.GetString("communicationsconsole-menu-announcement-placeholder"), HorizontalExpand = true, SizeFlagsStretchRatio = 1 }; @@ -67,11 +67,11 @@ namespace Content.Client.Command if (!Owner.CountdownStarted) { _countdownLabel.SetMessage(""); - EmergencyShuttleButton.Text = Loc.GetString("Call emergency shuttle"); + EmergencyShuttleButton.Text = Loc.GetString("communicationsconsole-menu-call-shuttle"); return; } - EmergencyShuttleButton.Text = Loc.GetString("Recall emergency shuttle"); + EmergencyShuttleButton.Text = Loc.GetString("communicationsconsole-menu-recall-shuttle"); _countdownLabel.SetMessage($"Time remaining\n{Owner.Countdown.ToString()}s"); } diff --git a/Content.Client/Construction/ConstructionMenuPresenter.cs b/Content.Client/Construction/ConstructionMenuPresenter.cs index 09f9fde8fb..2ee0069caa 100644 --- a/Content.Client/Construction/ConstructionMenuPresenter.cs +++ b/Content.Client/Construction/ConstructionMenuPresenter.cs @@ -164,7 +164,7 @@ namespace Content.Client.Construction continue; } - if (!string.IsNullOrEmpty(category) && category != Loc.GetString("All")) + if (!string.IsNullOrEmpty(category) && category != Loc.GetString("construction-presenter-category-all")) { if (recipe.Category != category) continue; @@ -181,7 +181,7 @@ namespace Content.Client.Construction var uniqueCategories = new HashSet(); // hard-coded to show all recipes - uniqueCategories.Add(Loc.GetString("All")); + uniqueCategories.Add(Loc.GetString("construction-presenter-category-all")); foreach (var prototype in _prototypeManager.EnumeratePrototypes()) { @@ -242,8 +242,8 @@ namespace Content.Client.Construction if (firstNode) { stepList.AddItem(prototype.Type == ConstructionType.Item - ? Loc.GetString($"{stepNumber++}. To craft this item, you need:") - : Loc.GetString($"{stepNumber++}. To build this, first you need:")); + ? Loc.GetString($"construction-presenter-to-craft", ("step-number", stepNumber++)) + : Loc.GetString($"construction-presenter-to-build", ("step-number", stepNumber++))); } foreach (var step in edge.Steps) @@ -256,22 +256,37 @@ namespace Content.Client.Construction stepList.AddItem( !firstNode ? Loc.GetString( - "{0}. Add {1}x {2}.", stepNumber++, materialStep.Amount, materialStep.MaterialPrototype.Name) - : Loc.GetString(" {0}x {1}", materialStep.Amount, materialStep.MaterialPrototype.Name), icon); + "construction-presenter-material-step", + ("step-number", stepNumber++), + ("amount", materialStep.Amount), + ("material", materialStep.MaterialPrototype.Name)) + : Loc.GetString( + "construction-presenter-material-first-step", + ("amount", materialStep.Amount), + ("material", materialStep.MaterialPrototype.Name)), + icon); break; case ToolConstructionGraphStep toolStep: - stepList.AddItem(Loc.GetString("{0}. Use a {1}.", stepNumber++, toolStep.Tool.GetToolName()), icon); + stepList.AddItem(Loc.GetString( + "construction-presenter-tool-step", + ("step-number", stepNumber++), + ("tool", toolStep.Tool.GetToolName())), + icon); break; case ArbitraryInsertConstructionGraphStep arbitraryStep: - stepList.AddItem(Loc.GetString("{0}. Add {1}.", stepNumber++, arbitraryStep.Name), icon); + stepList.AddItem(Loc.GetString( + "construction-presenter-arbitrary-step", + ("step-number", stepNumber++), + ("name", arbitraryStep.Name)), + icon); break; case NestedConstructionGraphStep nestedStep: var parallelNumber = 1; - stepList.AddItem(Loc.GetString("{0}. In parallel...", stepNumber++)); + stepList.AddItem(Loc.GetString("construction-presenter-nested-step", ("step-number", stepNumber++))); foreach (var steps in nestedStep.Steps) { @@ -284,15 +299,34 @@ namespace Content.Client.Construction switch (subStep) { case MaterialConstructionGraphStep materialStep: - if (prototype.Type != ConstructionType.Item) stepList.AddItem(Loc.GetString(" {0}.{1}.{2}. Add {3}x {4}.", stepNumber, parallelNumber, subStepNumber++, materialStep.Amount, materialStep.MaterialPrototype.Name), icon); + if (prototype.Type != ConstructionType.Item) stepList.AddItem(Loc.GetString( + "construction-presenter-material-substep", + ("step-number", stepNumber), + ("parallel-number", parallelNumber), + ("substep-number", subStepNumber++), + ("amount", materialStep.Amount), + ("material", materialStep.MaterialPrototype.Name)), + icon); break; case ToolConstructionGraphStep toolStep: - stepList.AddItem(Loc.GetString(" {0}.{1}.{2}. Use a {3}.", stepNumber, parallelNumber, subStepNumber++, toolStep.Tool.GetToolName()), icon); + stepList.AddItem(Loc.GetString( + "construction-presenter-tool-substep", + ("step-number", stepNumber), + ("parallel-number", parallelNumber), + ("substep-number", subStepNumber++), + ("tool", toolStep.Tool.GetToolName())), + icon); break; case ArbitraryInsertConstructionGraphStep arbitraryStep: - stepList.AddItem(Loc.GetString(" {0}.{1}.{2}. Add {3}.", stepNumber, parallelNumber, subStepNumber++, arbitraryStep.Name), icon); + stepList.AddItem(Loc.GetString( + "construction-presenter-arbitrary-substep", + ("step-number", stepNumber), + ("parallel-number", parallelNumber), + ("substep-number", subStepNumber++), + ("name", arbitraryStep.Name)), + icon); break; } } diff --git a/Content.Client/GameObjects/Components/Configuration/ConfigurationMenu.cs b/Content.Client/GameObjects/Components/Configuration/ConfigurationMenu.cs index ea5acde10b..74f811074d 100644 --- a/Content.Client/GameObjects/Components/Configuration/ConfigurationMenu.cs +++ b/Content.Client/GameObjects/Components/Configuration/ConfigurationMenu.cs @@ -26,7 +26,7 @@ namespace Content.Client.GameObjects.Components.Configuration _inputs = new List<(string name, LineEdit input)>(); - Title = Loc.GetString("Device Configuration"); + Title = Loc.GetString("configuration-menu-device-title"); _baseContainer = new VBoxContainer { @@ -48,7 +48,7 @@ namespace Content.Client.GameObjects.Components.Configuration var confirmButton = new Button { - Text = Loc.GetString("Confirm"), + Text = Loc.GetString("configuration-menu-confirm"), HorizontalAlignment = HAlignment.Center, VerticalAlignment = VAlignment.Center }; diff --git a/Content.Client/GameObjects/Components/Wires/WiresMenu.cs b/Content.Client/GameObjects/Components/Wires/WiresMenu.cs index ca57b29a69..9d07afe5eb 100644 --- a/Content.Client/GameObjects/Components/Wires/WiresMenu.cs +++ b/Content.Client/GameObjects/Components/Wires/WiresMenu.cs @@ -147,14 +147,14 @@ namespace Content.Client.GameObjects.Components.Wires { (_nameLabel = new Label { - Text = Loc.GetString("Wires"), + Text = Loc.GetString("wires-menu-name-label"), FontOverride = font, FontColorOverride = StyleNano.NanoGold, VerticalAlignment = VAlignment.Center, }), (_serialLabel = new Label { - Text = Loc.GetString("DEAD-BEEF"), + Text = "DEAD-BEEF", FontOverride = fontSmall, FontColorOverride = Color.Gray, VerticalAlignment = VAlignment.Center, diff --git a/Content.Client/Research/LatheQueueMenu.cs b/Content.Client/Research/LatheQueueMenu.cs index d0cb71e0e3..1d065faa1d 100644 --- a/Content.Client/Research/LatheQueueMenu.cs +++ b/Content.Client/Research/LatheQueueMenu.cs @@ -23,7 +23,7 @@ namespace Content.Client.Research { Owner = owner; SetSize = MinSize = (300, 450); - Title = Loc.GetString("Lathe Queue"); + Title = Loc.GetString("lathequeue-menu-title"); var vBox = new VBoxContainer(); diff --git a/Resources/Locale/en-US/arcade/blockgame.ftl b/Resources/Locale/en-US/arcade/blockgame.ftl new file mode 100644 index 0000000000..11fd855840 --- /dev/null +++ b/Resources/Locale/en-US/arcade/blockgame.ftl @@ -0,0 +1,25 @@ + +### UI + +# Current game score +blockgame-menu-label-points = Points: {$points} + +# Current game level +blockgame-menu-label-level = Level: {$level} + +# Game over information of your round +blockgame-menu-gameover-info = Global: {$global} + Local: {$local} + Points: {$points} + +blockgame-menu-title = Nanotrasen Block Game +blockgame-menu-button-new-game = New Game +blockgame-menu-button-scoreboard = Scoreboard +blockgame-menu-button-unpause = Unpause +blockgame-menu-msg-game-over = Game over! +blockgame-menu-label-highscores = Highscores +blockgame-menu-button-back = Back +blockgame-menu-label-next = Next +blockgame-menu-label-hold = Hold +blockgame-menu-text-station = Station +blockgame-menu-text-nanotrasen = Nanotrasen diff --git a/Resources/Locale/en-US/arcade/spacevillain.ftl b/Resources/Locale/en-US/arcade/spacevillain.ftl new file mode 100644 index 0000000000..2feae12458 --- /dev/null +++ b/Resources/Locale/en-US/arcade/spacevillain.ftl @@ -0,0 +1,6 @@ +spacevillain-menu-title = Space Villain +spacevillain-menu-label-player = Player +spacevillain-menu-button-attack = ATTACK +spacevillain-menu-button-heal = HEAL +spacevillain-menu-button-recharge = RECHARGE +spacevillain-menu-button-new-game = New Game diff --git a/Resources/Locale/en-US/blockgame.ftl b/Resources/Locale/en-US/blockgame.ftl deleted file mode 100644 index d15bec7bae..0000000000 --- a/Resources/Locale/en-US/blockgame.ftl +++ /dev/null @@ -1,13 +0,0 @@ - -### UI - -# Current game score -blockgame-points-label = Points: {$points} - -# Current game level -blockgame-level-label = Level: {$level} - -# Game over information of your round -blockgame-gameover-info = Global: {$global} - Local: {$local} - Points: {$points} diff --git a/Resources/Locale/en-US/construction/menu-presenter.ftl b/Resources/Locale/en-US/construction/menu-presenter.ftl new file mode 100644 index 0000000000..30115fd8df --- /dev/null +++ b/Resources/Locale/en-US/construction/menu-presenter.ftl @@ -0,0 +1,15 @@ +construction-presenter-category-all = All +construction-presenter-to-craft = {$step-number}. To craft this item, you need: +construction-presenter-to-build = {$step-number}. To build this, first you need: + +construction-presenter-material-first-step = {$amount}x {$material} +construction-presenter-material-step = {$step-number}. Add {$amount}x {$material}. +construction-presenter-material-substep = {$step-number}.{$parallel-number}.{$substep-number}. Add {$amount}x {$material}. + +construction-presenter-tool-step = {$step-number}. Use a {$tool}. +construction-presenter-tool-substep = {$step-number}.{$parallel-number}.{$substep-number}. Use a {$tool}. + +construction-presenter-arbitrary-step = {$step-number}. Add {$name}. +construction-presenter-arbitrary-substep = {$step-number}.{$parallel-number}.{$substep-number}. Add {$name}. + +construction-presenter-nested-step = {$step-number}. In parallel... diff --git a/Resources/Locale/en-US/menu/communicationsconsole.ftl b/Resources/Locale/en-US/menu/communicationsconsole.ftl new file mode 100644 index 0000000000..b5437e869f --- /dev/null +++ b/Resources/Locale/en-US/menu/communicationsconsole.ftl @@ -0,0 +1,4 @@ +communicationsconsole-menu-title = Communications Console +communicationsconsole-menu-announcement-placeholder = Announcement +communicationsconsole-menu-call-shuttle = Call emergency shuttle +communicationsconsole-menu-recall-shuttle = Recall emergency shuttle diff --git a/Resources/Locale/en-US/menu/configuration.ftl b/Resources/Locale/en-US/menu/configuration.ftl new file mode 100644 index 0000000000..6cad83bcce --- /dev/null +++ b/Resources/Locale/en-US/menu/configuration.ftl @@ -0,0 +1,2 @@ +configuration-menu-confirm = Confirm +configuration-menu-device-title = Device Configuration diff --git a/Resources/Locale/en-US/menu/lathequeue.ftl b/Resources/Locale/en-US/menu/lathequeue.ftl new file mode 100644 index 0000000000..d67d4819cd --- /dev/null +++ b/Resources/Locale/en-US/menu/lathequeue.ftl @@ -0,0 +1 @@ +lathequeue-menu-title = Lathe Queue diff --git a/Resources/Locale/en-US/menu/wires.ftl b/Resources/Locale/en-US/menu/wires.ftl new file mode 100644 index 0000000000..df876a31e7 --- /dev/null +++ b/Resources/Locale/en-US/menu/wires.ftl @@ -0,0 +1 @@ +wires-menu-name-label = Wires