-
Bug
-
Resolution: Fixed
-
1.18.1, 1.18.2 Release Candidate 1, 1.18.2, 1.19 Pre-release 1, 1.19, 1.19.1, 1.19.2, 22w43a, 22w45a, 1.19.3, 1.19.4, 1.20.1
-
Confirmed
-
Internationalisation
-
Low
-
Platform
The Bug:
The "(" and ")" symbols used before and after the warning label within the language menu are untranslatable and are missing translation keys.
This is a problem because every other string throughout the game that contains parentheses is translatable, therefore introducing an inconsistency. Below, I've constructed a table to visually demonstrate how and why this is a valid internationalization issue and to show the inconsistency.
Translation Key | String | Context | Are parentheses translatable? |
---|---|---|---|
selectServer.hiddenAddress | (Hidden) | This string is used to show when a server address is hidden. | Yes |
menu.modded | (Modded) | This string is used within the title screen to show when your instance of Minecraft is modded. | Yes |
options.biomeBlendRadius.3 | 3x3 (Fast) | This string is used within the video settings menu to show the value of the biome blend radius option. | Yes |
multiplayer.status.no_connection | (no connection) | This string is used within the multiplayer menu to show when you have no connection to a server. | Yes |
pack.folderInfo | (Place pack files here) | This string is used within pack menus to show where to place packs. | Yes |
pack.incompatible.new | (Made for a newer version of Minecraft) | This string is used within pack menus to show that the desired pack is made for a newer version of Minecraft. | Yes |
pack.incompatible.old | (Made for an older version of Minecraft) | This string is used within pack menus to show that the desired pack is made for an older version of Minecraft. | Yes |
N/A | (Language translations may not be 100%% accurate) | This string is used within the language menu to warn players that language translations may not be fully accurate. | No |
Steps to Reproduce:
- Attempt to search for the existence of the string "(" by using this search filter, and the existence of the string ")" using this search filter, on the official Minecraft crowdin project.
- Take note as to whether or not the parentheses used before and after the warning label within the language menu are untranslatable.
Observed Behavior:
The parentheses used before and after the warning label within the language menu are untranslatable.
Expected Behavior:
The parentheses used before and after the warning label within the language menu would be translatable. To maintain consistency with other similar strings, the parentheses should be included within the "options.languageWarning" translatable text component.
Code Analysis:
Code analysis by Avoma can be found below.
The following is based on a decompiled version of Minecraft 1.18.1 using MCP-Reborn.
public class LanguageSelectScreen extends OptionsSubScreen { private static final Component WARNING_LABEL = (new TextComponent("(")).append(new TranslatableComponent("options.languageWarning")).append(")").withStyle(ChatFormatting.GRAY); ...
If we look at the above class, we can see that the parentheses used before and after the warning label within the language menu are hardcoded, and as a result, are untranslatable. This is evident through the following piece of code:
(new TextComponent("(")) ... append(")")