GTNewHorizons / GT-New-Horizons-Modpack

A big progressive questing modpack for Minecraft 1.7.10 balanced around the mod GregTech.
https://www.gtnewhorizons.com/
Other
1.01k stars 307 forks source link

Localize GT server side #8778

Closed boubou19 closed 2 years ago

boubou19 commented 3 years ago

Your GTNH Discord Username

boubou_19#2706

Your Pack Version

2.1.1.0

Your Proposal

My proposal is to localize GT server side as well.

Your Goal

It's needed because in opencomputer we get unlocalized names, and it's a real pain to parse the items from the gregtech lang file. It also takes a non neglictible amount of memory just to keep the localization table loaded in the computer. With the localization server side, all the item handling involving GT items will become way easier.

Your Vision

This will improve the pack as lately, opencomputers has gained more and more popularity, so removing this tedium could remove a lot of difficulty for players beginning with the mod.

Final Checklist

PoroCoco commented 2 years ago

To add more precision to it.

Right now with OC, for a block/item we can have :

This works fine for most if not every blocks in the game but for GregTech we have a few problems.

repo-alt commented 2 years ago

Apparently the issue was occasionally fixed by Mitch in rev. c25c1bce2dd620c2d39b77f33c57c1fc08b1ecb8

repo-alt commented 2 years ago

Ok, so as it turned out, the issue is still there and I investigated it. The problem is that net.minecraft.util.StringTranslate.replaceWith is client side only. So, GT is registering localizations server side in LanguageRegistry, but it is not propagated to StringTranslate and StatCollector (on the client it is done by the LanguageManager). The only solution I see so far is accessing StringTranslate.languageList via reflection server side, and stuffing the entries from LanguageRegistry there (either directly in GT_LanguageManager.addStringLocalization or later, because it looks like they are collected in GT_LanguageManager.LANGMAP)

Glease commented 2 years ago

or just get rid of this GT_LanguageManager and use the proper localization system.

repo-alt commented 2 years ago

The whole mess is caused by the metagenerated items, their localization is split in 2 parts, the items themselves and materials. It probably can be refactored but it's a major change, I'd rather not fix what is (mostly) not broken.

bombcar commented 2 years ago

The whole mess is caused by the metagenerated items, their localization is split in 2 parts, the items themselves and materials. It probably can be refactored but it's a major change, I'd rather not fix what is (mostly) not broken.

@mitchej123 this might be something to meditate upon for the materials rewrite