Dismiss Notice
Wynncraft, the Minecraft MMORPG. Play it now on your Minecraft client at (IP): play.wynncraft.com. No mods required! Click here for more info...
Dismiss Notice
Have some great ideas for Wynncraft? Join the official CT (content team) and help us make quests, builds, cinematics and much more!

Game Mechanics Text-Component-Based Client-Sided Localization

Discussion in 'General Suggestions' started by TheLMiffy1111, Dec 16, 2024.

?

Do you support?

  1. Yes

    24 vote(s)
    96.0%
  2. No

    1 vote(s)
    4.0%
  1. TheLMiffy1111

    TheLMiffy1111 Previous Leader Of A Revived Wynn Community

    Messages:
    633
    Likes Received:
    830
    Trophy Points:
    146
    Guild:
    Minecraft:
    This is an alternative way at tackling the localization problem, allowing the problem to be solved much easier.

    Currently, client-side mods that operate on text such as Voices of Wynn and WynnLang must match on text directly. This has problems though:
    1. Much of the content is one-time only, which causes the translations of these contents to be practically unverifiable.
    2. Every patch may contain changes to text, which, even if insignificant, will cause the client translations to fail.
    These problems cause any attempt at making a localization mod extremely infeasible, and so people have to rely on largely inaccurate machine translations to play the mackerel.

    To solve this problem, instead of directly sending text to clients, we can make full use of Minecraft's text component system and send translatable text components, using the resource pack or fallback for text. With this method, the client can use the resource pack to change text to whatever they want.

    Since translation fallback was added in 1.19.4 and WynnCraft is now using 1.20.5, it is now completely possible to not reveal secret information until someone encounters it and it is sent to the client. For non-secret information though, it is probably better to either completely use the resource pack instead, or release an official English-only translation resource pack, for ease of translation and avoiding the verifiability problem.

    Some examples and proposals, with the corresponding original text components extracted from the mackerel:
    Code:
    {
      "text": "[1/5] ",
      "extra": [
        {
          "text": "The Cook: "
        },
        {
          "text": "I can't believe what is happening to me."
        }
      ]
    }
    
    {
      "text": "[2/5] ",
      "extra": [
        {
          "text": "The Cook: "
        },
        {
          "text": "The King ordered me to bake cakes for all those new recruits!"
        }
      ]
    }
    
    {
      "text": "[3/5] ",
      "extra": [
        {
          "text": "The Cook: "
        },
        {
          "text": "Unfortunately, a Grook took my last cake, and I ran out of ingredients!"
        }
      ]
    }
    
    {
      "text": "[4/5] ",
      "extra": [
        {
          "text": "The Cook: "
        },
        {
          "text": "Now can you help..."
        }
      ]
    }
    
    {
      "text": "[5/5] ",
      "extra": [
        {
          "text": "The Cook: "
        },
        {
          "text": "That's the Grook! Go chase it down and get my cake back!"
        }
      ]
    }
    Code:
    {
      "text": "[1/5] ",
      "extra": [
        {
          "translate": "npc.the_cook",
          "fallback": "The Cook"
        },
        {
          "text": ": "
        },
        {
          "translate": "quest.cook_assistant.1.1",
          "fallback": "I can't believe what is happening to me."
        }
      ]
    }
    
    {
      "text": "[2/5] ",
      "extra": [
        {
          "translate": "npc.the_cook",
          "fallback": "The Cook"
        },
        {
          "text": ": "
        },
        {
          "translate": "quest.cook_assistant.1.2",
          "fallback": "The King ordered me to bake cakes for all those new recruits!"
        }
      ]
    }
    
    {
      "text": "[3/5] ",
      "extra": [
        {
          "translate": "npc.the_cook",
          "fallback": "The Cook"
        },
        {
          "text": ": "
        },
        {
          "translate": "quest.cook_assistant.1.3",
          "fallback": "Unfortunately, a Grook took my last cake, and I ran out of ingredients!"
        }
      ]
    }
    
    {
      "text": "[4/5] ",
      "extra": [
        {
          "translate": "npc.the_cook",
          "fallback": "The Cook"
        },
        {
          "text": ": "
        },
        {
          "translate": "quest.cook_assistant.1.4",
          "fallback": "Now can you help..."
        }
      ]
    }
    
    {
      "text": "[5/5] ",
      "extra": [
        {
          "translate": "npc.the_cook",
          "fallback": "The Cook"
        },
        {
          "text": ": "
        },
        {
          "translate": "quest.cook_assistant.1.5",
          "fallback": "That's the Grook! Go chase it down and get my cake back!"
        }
      ]
    }
    Code:
    {
      "custom_name": {
        "text": "Morrowind"
      },
      "lore": [
        ...,
        {
          "text": "One of many lost artifacts"
        },
        {
          "text": "from the legendary Wind"
        },
        {
          "text": "Fortress, the engraving"
        },
        {
          "text": "appears to be a cryptic clue"
        },
        {
          "text": "to where the Fortress fell."
        },
        {
          "text": "\"We shall be found among the"
        },
        {
          "text": "dark winds of the morrow.\""
        }
      ]
    }
    Code:
    {
      "custom_name": {
        "translate": "item.wand.morrowind",
        "fallback": "Morrowind"
      },
      "lore": [
        ...,
        {
          "translate": "item.wand.morrowind.lore.1",
          "fallback": "One of many lost artifacts"
        },
        {
          "translate": "item.wand.morrowind.lore.2",
          "fallback": "from the legendary Wind"
        },
        {
          "translate": "item.wand.morrowind.lore.3",
          "fallback": "Fortress, the engraving"
        },
        {
          "translate": "item.wand.morrowind.lore.4",
          "fallback": "appears to be a cryptic clue"
        },
        {
          "translate": "item.wand.morrowind.lore.5",
          "fallback": "to where the Fortress fell."
        },
        {
          "translate": "item.wand.morrowind.lore.6",
          "fallback": "\"We shall be found among the"
        },
        {
          "translate": "item.wand.morrowind.lore.7",
          "fallback": "dark winds of the morrow.\""
        }
      ]
    }
    
    Note that item lore may be slightly problematic as vanilla Minecraft does not and most likely will not handle newlines properly in item lore (see MC-269003), and thus translations may need to fit in the same number of lines used in English.
    Code:
    {
      "text": "Pink Sheep of Greatness"
    }
    Code:
    {
      "translate": "entity.pink_sheep_of_greatness",
      "fallback": "Pink Sheep of Greatness"
    }

    Addendum 1:
    With Fruma's new dialogue and text system, negative width spaces are heavily used to reset the text pointer back to the start of the string. In order to deal with this, the translation key system will require precomputing text width and add correct resetting spacing, in a separate translation key.
     
    Last edited: Mar 16, 2026
    Jbip, TrapinchO, Aya and 6 others like this.
  2. culpitisn'taword

    culpitisn'taword Well-Known Adventurer

    Messages:
    633
    Likes Received:
    506
    Trophy Points:
    77
    Interesting suggestion. I don't have the programming knowledge to know if it's feasible. Suppose you'll have to wait for CT to chime in (it's the Devs who'd know whether this is possible, and there's only 2 of them, neither active on Forums - they're probably overworked anyway).
     
  3. TheLMiffy1111

    TheLMiffy1111 Previous Leader Of A Revived Wynn Community

    Messages:
    633
    Likes Received:
    830
    Trophy Points:
    146
    Guild:
    Minecraft:
    Changed quest dialogue and item name/lore examples, and added a simple entity example
     
  4. TheLMiffy1111

    TheLMiffy1111 Previous Leader Of A Revived Wynn Community

    Messages:
    633
    Likes Received:
    830
    Trophy Points:
    146
    Guild:
    Minecraft:
    i need feedback
     
  5. TheLMiffy1111

    TheLMiffy1111 Previous Leader Of A Revived Wynn Community

    Messages:
    633
    Likes Received:
    830
    Trophy Points:
    146
    Guild:
    Minecraft:
    bump, this is important
     
  6. Spaghetti Man

    Spaghetti Man The Spaghetti Man

    Messages:
    280
    Likes Received:
    365
    Trophy Points:
    70
    Minecraft:
    I frankly have no idea how this works exactly because I have no experience in programming but it sounds like you're suggesting to add... auto-translated text to Wynncraft based on Minecraft's translations?
    I have no idea if this would even remotely work but if it does work then it would be a good idea to add as long as there's a clear warning that there could be translation errors.
     
  7. TheLMiffy1111

    TheLMiffy1111 Previous Leader Of A Revived Wynn Community

    Messages:
    633
    Likes Received:
    830
    Trophy Points:
    146
    Guild:
    Minecraft:
    Nah what I'm saying is basically:
    1. Add translation keys to everything so resource packs can be used to play WynnCraft in other languages
    2. Add an official English resource pack so we can make resource packs that make WynnCraft be in other languages
    See the official Minecraft wiki for more in-depth information

    Also people already play with auto-translated text btw
     
    Last edited: Mar 6, 2025
  8. UA_Frezze98

    UA_Frezze98 Newbie Adventurer

    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    2
    Это очень интересная идея, и я бы хотел, чтобы что-то подобное было реализовано.
     
  9. FocalSalt

    FocalSalt Owner of Focal's Workshop CHAMPION

    Messages:
    3
    Likes Received:
    1
    Trophy Points:
    45
    Guild:
    Minecraft:
    This idea is very cool idea, hope CT can watch this.
     
  10. ItsTikki

    ItsTikki living life in ritardando CHAMPION

    Messages:
    524
    Likes Received:
    173
    Trophy Points:
    62
    Minecraft:
    naur naur too much effort fruma needs to be released they need to patch game 50000x naurrr
     
  11. TheLMiffy1111

    TheLMiffy1111 Previous Leader Of A Revived Wynn Community

    Messages:
    633
    Likes Received:
    830
    Trophy Points:
    146
    Guild:
    Minecraft:
    i can't believe the forums is dead
     
  12. Elytry

    Elytry Making Builds & Needs to Chill

    Messages:
    1,422
    Likes Received:
    2,640
    Trophy Points:
    162
    Guild:
    Minecraft:
    DONT SAY THAT
     
  13. TheLMiffy1111

    TheLMiffy1111 Previous Leader Of A Revived Wynn Community

    Messages:
    633
    Likes Received:
    830
    Trophy Points:
    146
    Guild:
    Minecraft:
  14. culpitisn'taword

    culpitisn'taword Well-Known Adventurer

    Messages:
    633
    Likes Received:
    506
    Trophy Points:
    77
    I feel like a thread which is 80% 'Bump' probably counts as necroposting.
     
  15. Tzelofachad

    Tzelofachad The forums lurker.

    Messages:
    2,079
    Likes Received:
    1,541
    Trophy Points:
    115
    Guild:
    Minecraft:
    but its a good idea

    also um

    hi
     
  16. TheLMiffy1111

    TheLMiffy1111 Previous Leader Of A Revived Wynn Community

    Messages:
    633
    Likes Received:
    830
    Trophy Points:
    146
    Guild:
    Minecraft:
    it's important
     
  17. culpitisn'taword

    culpitisn'taword Well-Known Adventurer

    Messages:
    633
    Likes Received:
    506
    Trophy Points:
    77
    I think it's been seen at this point.
     
    Deusphage and Zaaz433 like this.
  18. TheLMiffy1111

    TheLMiffy1111 Previous Leader Of A Revived Wynn Community

    Messages:
    633
    Likes Received:
    830
    Trophy Points:
    146
    Guild:
    Minecraft:
    bump of importance
     
  19. culpitisn'taword

    culpitisn'taword Well-Known Adventurer

    Messages:
    633
    Likes Received:
    506
    Trophy Points:
    77
    Deusphage has liked my message. This means that your bumps are meaningless. CT knows. Bumping will accomplish nothing.
     
  20. Tzelofachad

    Tzelofachad The forums lurker.

    Messages:
    2,079
    Likes Received:
    1,541
    Trophy Points:
    115
    Guild:
    Minecraft:
    Let the man shout into the void, for it is a nobler cause than many of us may champion in our lifetimes, and those who have found such purpose are loath to abandon it until it is fulfilled.
     
    Elytry likes this.