Uploaded image for project: 'Minecraft: Java Edition'
  1. Minecraft: Java Edition
  2. MC-253269

The advancement progress indicator symbol within the advancements menu is untranslatable

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • 1.20.2 Pre-release 1
    • 1.19, 22w24a, 1.19.1 Pre-release 1, 1.19.1 Pre-release 2, 1.19.1 Pre-release 5, 1.19.1 Release Candidate 2, 1.19.1, 1.19.2, 22w43a, 22w45a, 1.19.3, 1.19.4, 1.20.1
    • Community Consensus
    • Internationalisation
    • Low

      The Bug:

      The advancement progress indicator symbol within the advancements menu is untranslatable.

      The "/" symbol that exists between the value of your current progress and required progress for advancements within the advancements menu is untranslatable and is missing a translation key.

      This is a problem because every other string throughout the game that contains the "/" symbol 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 Is the "/" symbol translatable?
      item.minecraft.bundle.fullness %s/%s This string is used within bundle tooltips to show the fullness of a bundle. Yes
      filled_map.level (Level %s/%s) This string is used within filled map tooltips to show the level of a filled map. Yes
      item.durability Durability: %s / %s This string is used within item tooltips to show the durability of an item. Yes
      sleep.players_sleeping %s/%s players sleeping This string is displayed within the action bar to show how many players are currently sleeping. Yes
      N/A %s/%s This string is used within the advancements menu to show your current progress and required progress for advancements. No

      Steps to Reproduce:

      1. Attempt to search for the existence of this string by using this search filter on the official Minecraft crowdin project.
      2. Take note as to whether or not the advancement progress indicator symbol within the advancements menu is untranslatable.

      Observed Behavior:

      The advancement progress indicator symbol within the advancements menu is untranslatable.

      Expected Behavior:

      The advancement progress indicator symbol within the advancements menu would be translatable.

      Code Analysis:

      Code analysis by Avoma can be found below.

      The following is based on a decompiled version of Minecraft 22w24a using Mojang mappings.

      net.minecraft.advancements.AdvancementProgress.java
      public class AdvancementProgress implements Comparable<AdvancementProgress> {
         ...
         @Nullable
         public String getProgressText() {
            if (this.criteria.isEmpty()) {
               return null;
            }
            int n = this.requirements.length;
            if (n <= 1) {
               return null;
            }
            int n2 = this.countCompletedRequirements();
            return n2 + "/" + n;
         }
         ...

      If we look at the above class, we can see that the advancement progress indicator symbol within the advancements menu is hardcoded, and as a result, is untranslatable. This is evident through the following line of code:

      return n2 + "/" + n;

            slicedlime [Mojang] slicedlime
            Avoma [Mod] Avoma
            Votes:
            4 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:
              CHK: