diff --git a/CHANGELOG.md b/CHANGELOG.md index c79063c..ea35775 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ ### Changed +- Treat empty translation values (e.g. "") as incomplete - Update dependencies ### Fixed diff --git a/src/main/java/de/marhali/easyi18n/util/TranslationUtil.java b/src/main/java/de/marhali/easyi18n/util/TranslationUtil.java index f4f1b17..481f94b 100644 --- a/src/main/java/de/marhali/easyi18n/util/TranslationUtil.java +++ b/src/main/java/de/marhali/easyi18n/util/TranslationUtil.java @@ -48,7 +48,8 @@ public class TranslationUtil { * @return true if missing values were found otherwise false */ public static boolean isIncomplete(@NotNull TranslationValue value, @NotNull TranslationData data) { - return value.getLocaleContents().size() != data.getLocales().size(); + return value.getLocaleContents().size() != data.getLocales().size() + || value.getLocaleContents().stream().anyMatch(String::isEmpty); } /** diff --git a/src/test/java/util/TranslationUtilTest.java b/src/test/java/util/TranslationUtilTest.java new file mode 100644 index 0000000..0372c8c --- /dev/null +++ b/src/test/java/util/TranslationUtilTest.java @@ -0,0 +1,30 @@ +package util; + +import de.marhali.easyi18n.model.TranslationData; +import de.marhali.easyi18n.model.TranslationValue; +import de.marhali.easyi18n.util.TranslationUtil; +import org.junit.Assert; +import org.junit.Test; + +import java.util.Map; + +public class TranslationUtilTest { + @Test + public void isIncomplete() { + TranslationData data = new TranslationData(true); + + data.addLocale("de"); + data.addLocale("en"); + + TranslationValue complete = new TranslationValue(); + complete.setLocaleValues(Map.of("de", "deValue", "en", "enValue")); + Assert.assertFalse(TranslationUtil.isIncomplete(complete, data)); + + TranslationValue missingLocale = new TranslationValue("de", "deValue"); + Assert.assertTrue(TranslationUtil.isIncomplete(missingLocale, data)); + + TranslationValue emptyLocaleValue = new TranslationValue(); + emptyLocaleValue.setLocaleValues(Map.of("de", "deValue", "en", "")); + Assert.assertTrue(TranslationUtil.isIncomplete(emptyLocaleValue, data)); + } +}