Skip to content

Internationalization#714

Open
ArikSquad wants to merge 18 commits intoSwofty-Developments:masterfrom
ArikSquad:feat/translations
Open

Internationalization#714
ArikSquad wants to merge 18 commits intoSwofty-Developments:masterfrom
ArikSquad:feat/translations

Conversation

@ArikSquad
Copy link
Contributor

@ArikSquad ArikSquad commented Feb 10, 2026

Implements HypixelTranslator for TranslatableComponent support.

Component Support Required

  • NPCs
  • Scoreboard
  • TablistModule
  • SkyblockItem

@vercel
Copy link

vercel bot commented Feb 10, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
hypixel-skyblock Ignored Ignored Feb 26, 2026 3:24pm

@Swofty-Developments Swofty-Developments changed the title Internalization Internationalization Feb 10, 2026
@Swofty-Developments Swofty-Developments mentioned this pull request Feb 17, 2026
Extract hardcoded UI strings into per-GUI .properties files:
- gui_auction (190 keys), gui_bazaar (232), gui_banker (55)
- gui_sbmenu (705), gui_museum (113), gui_rusty (50)
- gui_misc (351) covering anvil, reforge, minion, etc.
- gui_common (16) shared elements like Close/Go Back
- scoreboard (120), tablist (71), npcs (107)
- items (1714) all ItemType display names

Add I18n.string() helper for resolving translations to legacy
strings, supporting both locale-aware and default resolution.

Lore uses \n delimiters in single keys, {placeholder} for
dynamic values.
…essage format

Reorganize translation files into gui/ subdirectory for better structure.
Convert all legacy section sign color codes to MiniMessage tags across
all properties files (npcs, scoreboard, tablist, and all GUI files).
Add dialogueLines() methods to I18n for splitting pipe-delimited
translations into String arrays for NPC dialogue sequences.
Add string() overloads with Map<String,String> placeholder support.
Add DialogueSet.ofTranslation() factory methods to create dialogue
sets directly from translation keys.
Break the monolithic gui_misc.properties into dedicated files for each
GUI subsystem: anvil, enchantment, minion, reforge, profile, builder,
abiphone, coop, stash, and shop. Each file gets its own subsystem
prefix for clean translator resolution. Remaining small GUIs stay
in gui_misc.properties.
Add pipe-delimited NPC dialogue translations for all 7 region modules
(hub, thepark, dwarvenmines, spidersden, goldmine, deepcaverns, abiphone)
covering 84+ NPCs with 270+ dialogue entries. Add command translations
for 20 command classes with 163 keys covering friend, party, message,
moderation, and utility commands.
HypixelTranslator now eagerly loads all en_US keys at construction.
I18n.requireKey() throws IllegalStateException if a key is missing
from the default locale. All I18n.t(), string(), and dialogueLines()
methods validate keys on use, failing fast at startup if any
referenced key is absent from the English translation files.
Replace hardcoded dialogue strings with translation key references
in NPCBaker, NPCBanker, NPCArthur, NPCBartender, NPCAlchemist,
NPCAdventurer, NPCAuctionMaster, and NPCFarmerRigby.
Replace hardcoded sendMessage strings with I18n.string() calls in
FriendCommand, PartyCommand, MessageCommand, RankCommand, MuteCommand,
and BanCommand. Uses commands.properties for all player-facing text.
Replace all hardcoded UI strings across GUI Java files with I18n.string()
and I18n.lore() calls referencing keys from the properties files. Covers
banker, auction, bazaar, museum, rusty, builder, shop, stash, coop,
abiphone, profile, enchantment, reforge, minion, anvil, SBMenu and all
sub-GUIs (levels, bags, pets, skills, storage, recipes, profiles, quests).
@Swofty-Developments
Copy link
Owner

@ArikSquad review

@Swofty-Developments Swofty-Developments marked this pull request as ready for review February 26, 2026 09:15
Swofty-Developments and others added 6 commits February 26, 2026 20:28
Cross-referenced item materials from the pre-dynamic-generation ItemType
enum and vanilla Minecraft item mappings to populate the material field
for all items that were previously defaulting to BARRIER.
Replace all hardcoded strings in 8 scoreboard files with I18n.string()
calls using scoreboard.properties keys for all game modes.
Replace hardcoded strings in 20 tablist module files with I18n.string()
calls using tablist.properties keys for all areas and module headers.
Replace hardcoded strings in ItemLore.java with I18n.string() calls and
add items.lore.* entries to items.properties for item display names and
lore labels.
@ArikSquad
Copy link
Contributor Author

Looks fine

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants