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

JSON text component / chat component error messages are not translatable

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • None
    • 1.19.4 Pre-release 2, 1.20.5, 1.20.6 Release Candidate 1, 1.20.6, 24w20a, 24w21b, 1.21 Pre-Release 1, 1.21 Pre-Release 2, 1.21 Pre-Release 4, 24w40a
    • Confirmed
    • Internationalisation
    • Important
    • Platform

      The bug

      When inputting a command with mistakes in the JSON text argument, the error in chat appears in English, no matter the language. Translators on Crowdin can't fix that, as the strings are not present in the Minecraft Translation project on the website.

      Steps to reproduce

      • Start Minecraft in an affected version.
      • Go to Settings - Language, and select a language other than English.
      • Create a new single-player world with the cheats option turned on.
      • Open up chat or place a command block and type in a /tellraw or a /title command using a JSON text component with errors as the text argument, for example:
        • /title @a title {"wrong":"JSON"}
        • /tellraw @a {"translate":"chat.type.advancement.task","with":"Wrong JSON"}
      • Press Enter in chat or activate the command block.
      • See the error message in chat or in the command block.
      • Go to https://crowdin.com/translate/minecraft/all/ and search for part of the text found in the error message

      Observed behaviour

      The error message starts with a translation of "Invalid Chat component", but continues in English. The untranslated part is absent from the Minecraft Translation project on Crowdin.

      Expected behaviour

      The error messages should be present in the Minecraft Translation project on Crowdin, and for the languages where that translation is provided, the errors message should be output in that language.

      List of untranslatable error messages

      • <-- [HERE] (in some contexts, even if command.context.here is translated)
        • /data get entity @a[limit=1] 1 {}
          
      • A score component needs at least a name and an objective
      • a boolean (%s) (found in the Source Code, as a returned value)
      • a number (%s) (found in the Source Code, as a returned value)
      • an array (%) (found in the Source Code, as a returned value)
      • an object (%s) (found in the Source Code, as a returned value)
      • Couldn't get field 'lineStart' for JsonReader
      • Couldn't get field 'pos' for JsonReader
      • Couldn't read position of JsonReader
      • Couldn't write %s (found in the Source Code, as an IllegalArgumentException)
      • Don't know how to serialize %s as a Component
      • Don't know how to turn %s into a Component
        • /title @a title {"wrong":"JSON"}
          
      • Empty at position %s: %s
        • /tellraw @s []
          
      • Expected ':' at line %s column %s path %s
        • /tellraw @s [{"hoverEvent"}]
          
      • Expected %s to be ..., was %s (found in the Source Code, as a JsonSyntaxException)
        • a string
        • an item
        • a Boolean
        • a Double
        • a Float
        • a Long
        • a Int
        • a Byte
        • a Character
        • a BigDecimal
        • a BigInteger
        • a Short
        • a JsonObject
        • a JsonArray
          • /tellraw @a {"translate":"chat.type.advancement.task","with":"Wrong JSON"}
            
      • Expected %s to be ..., was unknown string '%s' (found in the Source Code, as a JsonSyntaxException)
      • Item cannot be both damageable and stackable
        • /give @s apple[max_damage=999999999,max_stack_size=10]
          
      • JSON data was null or empty (found in the Source Code, as a JsonParseException)
      • Missing %s (found in the Source Code, as a JsonSyntaxException)
      • Missing field %s (found in the Source Code, as a JsonSyntaxException)
      • Missing %s, expected to find ... (found in the Source Code, as a JsonSyntaxException)
        • a string
        • an item
        • a Boolean
        • a Double
        • a Float
        • a Long
        • a Int
        • a Byte
        • a Character
        • a BigDecimal
        • a BigInteger
        • a Short
        • a JsonObject
        • a JsonArray
      • No key %s in MapLike[%s]
        • /particle minecraft:dust
          
      • Not a boolean (found in the Source Code, as a returned value)
      • Not a byte list (found in the Source Code, as a returned value)
      • Not a JSON object: %s; Not a json array: %s; Not a string: %s (might be related to the “Not a string” string below)
        • /give @s apple[minecraft:custom_name="1"]
          
      • Not a list (found in the Source Code, as a returned value)
      • Not a long list (found in the Source Code, as a returned value)
      • Not a map (found in the Source Code, as a returned value)
      • Not a number (found in the Source Code, as a returned value)
      • Not a string (found in the Source Code, as a returned value)
      • Not an int list (found in the Source Code, as a returned value)
      • Null (found in the Source Code, as a returned value)
      • null (json) (found in the Source Code, as a returned value)
      • null (missing) (found in the Source Code, as a returned value)
      • Unexpected empty array of components
      • Use JsonReader.setLenient(true) to accept malformed JSON at line %s column %s path %s
        • /tellraw @s [{"nbt":"textures.CAPE.url","storage":"base64:decode","clickEvent": {"action":"open_url","value":'\{"nbt":"textures.CAPE.url","storage":"base64:decode"}'}}]

      List of translatable error messages

       The following messages were affected but are now translatable

      • Can't parse particle options: %s
        • particle.invalidOptions

      Notes

      There are probably other types of errors with JSON text components that I'm not aware of. There is a high chance of them not being translatable either. If you find other error messages that are not translatable, please show them in the comments

      UPD: @bodakugga has found 7 error messages that seem to be not translatable

      UPD2: @Cybereggs1337 has found 2 more error messages that can be seen in component-error-messages.png

      UPD3: @Nethonos has found another error message that can be seen in particle-error-message.png

      UPD4: @Cybereggs1337 has found a lot of other untranslatable or potentially untranslatable messages

      Links

      Search filter for Don't know as in Don't know how to turn {"wrong":"JSON"} into a Component, with 0 results, demonstrating that the error message is not translatable
      Case-sensitive search filter for Expected as in Expected with to be a JsonArray, was "Wro...ON", with 21 result neither of which corresponds to the error message, demonstrating that the error message is not translatable

        1. component-error-messages.png
          96 kB
          Bilgesez Malay
        2. Crowdin_search_Dont_know.png
          6 kB
          Artiom Boyko
        3. Crowdin_search_Expected.png
          39 kB
          Artiom Boyko
        4. empty-at-position-percents.png
          96 kB
          Bilgesez Malay
        5. Example_error_messages.png
          149 kB
          Artiom Boyko
        6. image-2024-05-29-21-46-15-985.png
          111 kB
          Bilgesez Malay
        7. image-2024-05-29-21-48-02-627.png
          130 kB
          Bilgesez Malay
        8. image-2024-05-29-21-49-06-678.png
          130 kB
          Bilgesez Malay
        9. image-2024-05-29-21-51-17-607.png
          160 kB
          Bilgesez Malay
        10. proof-in-1.18.2-version.png
          151 kB
          Bilgesez Malay
        11. try-to-make-clickable-link-using-compound-instead-of-string.png
          91 kB
          Bilgesez Malay
        12. untranslated-HERE.png
          17 kB
          Bilgesez Malay

            Unassigned Unassigned
            _Almazik_ Artiom Boyko
            Votes:
            18 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              CHK: