From d0aff2f81660a93e138b50dfd429710fd4e5e3ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20Ha=C3=9Flinger?= Date: Wed, 10 Nov 2021 14:15:10 +0100 Subject: [PATCH] do not override data by locale iteration --- .../easyi18n/io/json/ModularizedJsonIOStrategy.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/marhali/easyi18n/io/json/ModularizedJsonIOStrategy.java b/src/main/java/de/marhali/easyi18n/io/json/ModularizedJsonIOStrategy.java index 391b73a..7e4d877 100644 --- a/src/main/java/de/marhali/easyi18n/io/json/ModularizedJsonIOStrategy.java +++ b/src/main/java/de/marhali/easyi18n/io/json/ModularizedJsonIOStrategy.java @@ -88,16 +88,18 @@ public class ModularizedJsonIOStrategy implements IOStrategy { continue; } - TranslationNode moduleNode = new TranslationNode(state.isSortKeys() - ? new TreeMap<>() - : new LinkedHashMap<>()); + String moduleName = module.getNameWithoutExtension(); + + TranslationNode moduleNode = data.getNode(moduleName) != null + ? data.getNode(moduleName) + : new TranslationNode(state.isSortKeys() ? new TreeMap<>() : new LinkedHashMap<>()); JsonObject tree = GSON.fromJson(new InputStreamReader(module.getInputStream(), module.getCharset()), JsonObject.class); JsonMapper.read(locale, tree, moduleNode); - data.getRootNode().setChildren(module.getNameWithoutExtension(), moduleNode); + data.getRootNode().setChildren(moduleName, moduleNode); } }