aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api
diff options
context:
space:
mode:
authormiozune <miozune@gmail.com>2022-08-15 19:04:05 +0900
committerGitHub <noreply@github.com>2022-08-15 12:04:05 +0200
commitf753bc67e33c2e389ede0d0bec14e4d6ab900e74 (patch)
tree807acc8e07692c11c73014899c92c7b88a206235 /src/main/java/gregtech/api
parentdaf3c07a203860c9e5f1565fb9c66f4527c65fe0 (diff)
downloadGT5-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.java35
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);
}
}
}