From 5643237fb9ab88e82b0cacaa302d3d86eaa4677d Mon Sep 17 00:00:00 2001 From: cpw Date: Sun, 20 Jul 2014 10:46:22 -0400 Subject: [PATCH] Sorta revert 908491d5e7ac26becdac938f38cc90d6b9d73ce1 but merge assets into the map, rather than force overwriting. Fixes skyboy's comment. --- .../resources/LanguageManager.java.patch | 6 ++--- .../fml/common/registry/LanguageRegistry.java | 25 +++++++++++++------ 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/fml/patches/minecraft/net/minecraft/client/resources/LanguageManager.java.patch b/fml/patches/minecraft/net/minecraft/client/resources/LanguageManager.java.patch index a1ec97570..62003bd86 100644 --- a/fml/patches/minecraft/net/minecraft/client/resources/LanguageManager.java.patch +++ b/fml/patches/minecraft/net/minecraft/client/resources/LanguageManager.java.patch @@ -9,11 +9,11 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import java.io.IOException; -@@ -82,6 +84,7 @@ - arraylist.add(this.field_135048_c); +@@ -83,6 +85,7 @@ } -+ LanguageRegistry.instance().loadLanguageTable(field_135049_a.field_135032_a, this.field_135048_c); field_135049_a.func_135022_a(p_110549_1_, arraylist); ++ LanguageRegistry.instance().mergeLanguageTable(field_135049_a.field_135032_a, this.field_135048_c); StringTranslate.func_135063_a(field_135049_a.field_135032_a); } + diff --git a/fml/src/main/java/cpw/mods/fml/common/registry/LanguageRegistry.java b/fml/src/main/java/cpw/mods/fml/common/registry/LanguageRegistry.java index 640682380..d41728a4c 100644 --- a/fml/src/main/java/cpw/mods/fml/common/registry/LanguageRegistry.java +++ b/fml/src/main/java/cpw/mods/fml/common/registry/LanguageRegistry.java @@ -21,6 +21,7 @@ import java.net.URL; import java.util.Collections; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.Properties; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -153,19 +154,29 @@ public class LanguageRegistry */ @SuppressWarnings("unchecked") @Deprecated - public void loadLanguageTable(@SuppressWarnings("rawtypes") Map field_135032_a, String lang) + public void mergeLanguageTable(@SuppressWarnings("rawtypes") Map field_135032_a, String lang) { + Properties langPack=modLanguageData.get(lang); + if (langPack!=null) { + mergeWithoutOverwrite(langPack, field_135032_a); + } Properties usPack=modLanguageData.get("en_US"); if (usPack!=null) { - field_135032_a.putAll(usPack); + mergeWithoutOverwrite(usPack, field_135032_a); } - Properties langPack=modLanguageData.get(lang); - if (langPack==null) { - return; - } - field_135032_a.putAll(langPack); } + @Deprecated + private void mergeWithoutOverwrite(Map from, Map to) + { + for (Entry e : from.entrySet()) + { + if (!to.containsKey(e.getKey())) + { + to.put(e.getKey(),e.getValue()); + } + } + } /** * Deprecated for removal in 1.8. Use the assets lang system */