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

    23 vote(s)
    100.0%
  2. No

    0 vote(s)
    0.0%
  1. TheLMiffy1111

    TheLMiffy1111 Previous Leader Of A Revived Wynn Community

    Messages:
    627
    Likes Received:
    826
    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"
    }
     
    Last edited: Mar 17, 2025
    Jbip, TrapinchO, Aya and 6 others like this.
  2. culpitisn'taword

    culpitisn'taword Well-Known Adventurer

    Messages:
    537
    Likes Received:
    388
    Trophy Points:
    52
    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:
    627
    Likes Received:
    826
    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:
    627
    Likes Received:
    826
    Trophy Points:
    146
    Guild:
    Minecraft:
    i need feedback
     
  5. TheLMiffy1111

    TheLMiffy1111 Previous Leader Of A Revived Wynn Community

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

    Spaghetti Man The Spaghetti Man

    Messages:
    245
    Likes Received:
    327
    Trophy Points:
    67
    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:
    627
    Likes Received:
    826
    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:
    354
    Likes Received:
    97
    Trophy Points:
    58
    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:
    627
    Likes Received:
    826
    Trophy Points:
    146
    Guild:
    Minecraft:
    i can't believe the forums is dead
     
  12. Elytry

    Elytry Spitballer of the Architects

    Messages:
    1,291
    Likes Received:
    2,478
    Trophy Points:
    151
    Guild:
    Minecraft:
    DONT SAY THAT
     
  13. TheLMiffy1111

    TheLMiffy1111 Previous Leader Of A Revived Wynn Community

    Messages:
    627
    Likes Received:
    826
    Trophy Points:
    146
    Guild:
    Minecraft:
  14. TheLMiffy1111

    TheLMiffy1111 Previous Leader Of A Revived Wynn Community

    Messages:
    627
    Likes Received:
    826
    Trophy Points:
    146
    Guild:
    Minecraft:
    bump of importance