43 lines
1.8 KiB
Diff
43 lines
1.8 KiB
Diff
--- a/net/minecraft/util/text/translation/LanguageMap.java
|
|
+++ b/net/minecraft/util/text/translation/LanguageMap.java
|
|
@@ -26,21 +26,34 @@
|
|
private long field_150511_e;
|
|
|
|
public LanguageMap() {
|
|
- try {
|
|
InputStream inputstream = LanguageMap.class.getResourceAsStream("/assets/minecraft/lang/en_us.json");
|
|
+ injectLanguage(this, inputstream);
|
|
+ }
|
|
+
|
|
+ public static void injectLanguage(InputStream inputStream){
|
|
+ injectLanguage(field_197636_c, inputStream);
|
|
+ }
|
|
+
|
|
+ private static void injectLanguage(LanguageMap inst, InputStream inputStream){
|
|
+ final Map<String, String> map = parseLanguageFile(inputStream);
|
|
+ inst.field_74816_c.putAll(map);
|
|
+ inst.field_150511_e = System.currentTimeMillis();
|
|
+ }
|
|
+
|
|
+ private static Map<String, String> parseLanguageFile(InputStream inputstream) {
|
|
+ Map<String,String> languageList = Maps.newHashMap();
|
|
+ try {
|
|
JsonElement jsonelement = (JsonElement)(new Gson()).fromJson(new InputStreamReader(inputstream, StandardCharsets.UTF_8), JsonElement.class);
|
|
JsonObject jsonobject = JsonUtils.func_151210_l(jsonelement, "strings");
|
|
|
|
for(Entry<String, JsonElement> entry : jsonobject.entrySet()) {
|
|
String s = field_111053_a.matcher(JsonUtils.func_151206_a(entry.getValue(), entry.getKey())).replaceAll("%$1s");
|
|
- this.field_74816_c.put(entry.getKey(), s);
|
|
+ languageList.put(entry.getKey(), s);
|
|
}
|
|
-
|
|
- this.field_150511_e = Util.func_211177_b();
|
|
} catch (JsonParseException jsonparseexception) {
|
|
field_201045_a.error("Couldn't read strings from /assets/minecraft/lang/en_us.json", (Throwable)jsonparseexception);
|
|
}
|
|
-
|
|
+ return languageList;
|
|
}
|
|
|
|
public static LanguageMap func_74808_a() {
|