diff options
author | miozune <miozune@gmail.com> | 2022-08-15 19:04:05 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-15 12:04:05 +0200 |
commit | f753bc67e33c2e389ede0d0bec14e4d6ab900e74 (patch) | |
tree | 807acc8e07692c11c73014899c92c7b88a206235 /src/main/java/gregtech/api | |
parent | daf3c07a203860c9e5f1565fb9c66f4527c65fe0 (diff) | |
download | GT5-Unofficial-f753bc67e33c2e389ede0d0bec14e4d6ab900e74.tar.gz GT5-Unofficial-f753bc67e33c2e389ede0d0bec14e4d6ab900e74.tar.bz2 GT5-Unofficial-f753bc67e33c2e389ede0d0bec14e4d6ab900e74.zip |
Add localization to MC language list (#1260)
* Add localization to MC language list
* Revert workaround patches
Diffstat (limited to 'src/main/java/gregtech/api')
-rw-r--r-- | src/main/java/gregtech/api/util/GT_LanguageManager.java | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/src/main/java/gregtech/api/util/GT_LanguageManager.java b/src/main/java/gregtech/api/util/GT_LanguageManager.java index b134f3c726..d6cd1553eb 100644 --- a/src/main/java/gregtech/api/util/GT_LanguageManager.java +++ b/src/main/java/gregtech/api/util/GT_LanguageManager.java @@ -3,7 +3,6 @@ package gregtech.api.util; import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.relauncher.ReflectionHelper; import gregtech.api.GregTech_API; -import gregtech.api.enums.GT_Values; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -12,12 +11,9 @@ import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Property; import java.lang.reflect.Field; -import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; import static gregtech.api.enums.GT_Values.E; @@ -41,6 +37,19 @@ public class GT_LanguageManager { public static String[] FACES = {FACE_BOTTOM, FACE_TOP, FACE_LEFT, FACE_FRONT, FACE_RIGHT, FACE_BACK, FACE_NONE}; + private static Map<String, String> stringTranslateLanguageList = null; + + static { + try { + Field fieldStringTranslateLanguageList = ReflectionHelper.findField(net.minecraft.util.StringTranslate.class, "languageList", "field_74816_c"); + Field fieldStringTranslateInstance = ReflectionHelper.findField(net.minecraft.util.StringTranslate.class, "instance", "field_74817_a"); + //noinspection unchecked + stringTranslateLanguageList = (Map<String, String>) fieldStringTranslateLanguageList.get(fieldStringTranslateInstance.get(null)); + } catch (Exception e) { + e.printStackTrace(); + } + } + public static String addStringLocalization(String aKey, String aEnglish) { return addStringLocalization(aKey, aEnglish, true); @@ -52,6 +61,7 @@ public class GT_LanguageManager { aEnglish = writeToLangFile(aKey, aEnglish); if (!LANGMAP.containsKey(aKey)) { LANGMAP.put(aKey, aEnglish); + addToMCLangList(aKey, aEnglish); } } TEMPMAP.put(aKey.trim(), aEnglish); @@ -62,6 +72,7 @@ public class GT_LanguageManager { Property tProperty = sEnglishFile.get("LanguageFile", aKey, aEnglish); aEnglish = tProperty.getString(); LANGMAP.put(aKey, aEnglish); + addToMCLangList(aKey, aEnglish); } else aEnglish = LANGMAP.get(aKey); } return aEnglish; @@ -400,19 +411,9 @@ public class GT_LanguageManager { addStringLocalization(FACE_NONE, "None"); } - @SuppressWarnings("rawtypes, unchecked") - public static void propagateLocalizationServerSide() { - if (!GT_Values.GT.isServerSide()) - return; - try { - Field languageList = ReflectionHelper.findField(net.minecraft.util.StringTranslate.class, "languageList", "field_74816_c"); - Field instance = ReflectionHelper.findField(net.minecraft.util.StringTranslate.class, "instance", "field_74817_a"); - Object m = languageList.get(instance.get(null)); - if (!(m instanceof Map)) - return; - ((Map)m).putAll(LANGMAP); - } catch (Throwable ex) { - ex.printStackTrace(); + private static void addToMCLangList(String aKey, String aEnglish) { + if (stringTranslateLanguageList != null) { + stringTranslateLanguageList.put(aKey, aEnglish); } } } |