From cbb45bf49dc1394f0fd1c020d96d06454443ecb0 Mon Sep 17 00:00:00 2001 From: Rsl1122 Date: Sun, 23 Sep 2018 17:39:15 +0300 Subject: [PATCH] [Fix] Locale lang group replacement changes Changed the Lang that was being used to replace things on the html, now some of the Lang is no longer used. (CmdHelpLang, CommandLang, etc) GenericLang caused page breakage due to wrong replacements, so it is no longer used for replacement Affected issues: Fixes #706 --- .../djrapitops/plan/system/locale/Locale.java | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/Plan/src/main/java/com/djrapitops/plan/system/locale/Locale.java b/Plan/src/main/java/com/djrapitops/plan/system/locale/Locale.java index 3483cd1aa..baa310fc9 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/locale/Locale.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/locale/Locale.java @@ -1,14 +1,16 @@ package com.djrapitops.plan.system.locale; import com.djrapitops.plan.PlanPlugin; -import com.djrapitops.plan.system.locale.lang.Lang; +import com.djrapitops.plan.system.locale.lang.*; import com.djrapitops.plan.system.settings.Settings; import java.io.File; import java.io.IOException; import java.io.Serializable; +import java.util.Arrays; import java.util.HashMap; import java.util.List; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -71,10 +73,22 @@ public class Locale extends HashMap { String replaced = from; - // Longest first so that entries that contain each other don't partially replace. - List> entries = entrySet().stream().sorted( - (one, two) -> Integer.compare(two.getKey().getIdentifier().length(), one.getKey().getIdentifier().length()) - ).collect(Collectors.toList()); + Lang[][] langs = new Lang[][]{ + NetworkPageLang.values(), + PlayerPageLang.values(), + ServerPageLang.values(), + CommonHtmlLang.values() + }; + + List> entries = Arrays.stream(langs) + .flatMap(Arrays::stream) + .collect(Collectors.toMap(Function.identity(), this::get)) + .entrySet().stream() + // Longest first so that entries that contain each other don't partially replace. + .sorted((one, two) -> Integer.compare( + two.getKey().getIdentifier().length(), + one.getKey().getIdentifier().length() + )).collect(Collectors.toList()); for (Entry entry : entries) { String defaultValue = entry.getKey().getDefault();