diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/language/LanguageUtils.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/language/LanguageUtils.java index 5adf2352b..02e4156a5 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/language/LanguageUtils.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/language/LanguageUtils.java @@ -56,6 +56,7 @@ import nodomain.freeyourgadget.gadgetbridge.util.language.impl.ScandinavianTrans import nodomain.freeyourgadget.gadgetbridge.util.language.impl.TurkishTransliterator; import nodomain.freeyourgadget.gadgetbridge.util.language.impl.UkranianTransliterator; import nodomain.freeyourgadget.gadgetbridge.util.language.impl.GeorgianTransliterator; +import nodomain.freeyourgadget.gadgetbridge.util.language.impl.CroatianTransliterator; public class LanguageUtils { private static final Logger LOG = LoggerFactory.getLogger(LanguageUtils.class); @@ -63,6 +64,7 @@ public class LanguageUtils { private static final Map TRANSLITERATORS_MAP = new HashMap() {{ put("arabic", new ArabicTransliterator()); put("bengali", new BengaliTransliterator()); + put("croatian", new CroatianTransliterator()); put("czech", new CzechTransliterator()); put("estonian", new EstonianTransliterator()); put("extended_ascii", new ExtendedAsciiTransliterator()); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/language/impl/CroatianTransliterator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/language/impl/CroatianTransliterator.java new file mode 100644 index 000000000..bee47f62b --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/language/impl/CroatianTransliterator.java @@ -0,0 +1,36 @@ +/* Copyright (C) 2017-2022 Andreas Shimokawa, Aniruddha Adhikary, Daniele + Gobbetti, ivanovlev, kalaee, lazarosfs, McSym28, M. Hadi, Roi Greenberg, + Taavi Eomäe, Ted Stein, Thomas, Yaron Shahrabani, José Rebelo + + This file is part of Gadgetbridge. + + Gadgetbridge is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Gadgetbridge is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . */ + package nodomain.freeyourgadget.gadgetbridge.util.language.impl; + + import java.util.HashMap; + + import nodomain.freeyourgadget.gadgetbridge.util.language.SimpleTransliterator; + + public class CroatianTransliterator extends SimpleTransliterator { + public CroatianTransliterator() { + super(new HashMap() {{ + put('Č', "C"); put('č', "c"); + put('Ć', "C"); put('ć', "c"); + put('Đ', "D"); put('đ', "d"); + put('Š', "S"); put('š', "s"); + put('Ž', "z"); put('ž', "z"); + }}); + } + } + \ No newline at end of file diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 75c69b02b..8b23f3045 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -2781,6 +2781,7 @@ @string/arabic @string/bengali + @string/croatian @string/czech @string/estonian @string/extended_ascii @@ -2803,6 +2804,7 @@ arabic bengali + croatian czech estonian extended_ascii diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3f663cd3b..37c000d2c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -918,6 +918,7 @@ Georgian German Bengali + Croatian Czech Estonian Extended ASCII diff --git a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/util/language/LanguageUtilsTest.java b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/util/language/LanguageUtilsTest.java index f1b2ca0fe..fe428818d 100644 --- a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/util/language/LanguageUtilsTest.java +++ b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/util/language/LanguageUtilsTest.java @@ -173,6 +173,16 @@ public class LanguageUtilsTest extends TestBase { assertEquals("georgian transliteration failed", expected, output); } + @Test + public void testStringTransliterateCroatian() { + final Transliterator transliterator = LanguageUtils.getTransliterator("croatian"); + + String input = "č ć đ š ž"; + String output = transliterator.transliterate(input); + String expected = "c c d s z"; + assertEquals("croatian transliteration failed", expected, output); + } + @Test public void testTransliterateOption() throws Exception { enableTransliteration(false); @@ -187,7 +197,7 @@ public class LanguageUtilsTest extends TestBase { SharedPreferences devicePrefs = GBApplication.getDeviceSpecificSharedPrefs(dummyGBDevice.getAddress()); SharedPreferences.Editor editor = devicePrefs.edit(); if (enable) { - editor.putString(PREF_TRANSLITERATION_LANGUAGES, "extended_ascii,scandinavian,german,russian,hebrew,greek,ukranian,arabic,persian,lithuanian,polish,estonian,icelandic,czech,turkish,bengali,korean,georgian"); + editor.putString(PREF_TRANSLITERATION_LANGUAGES, "extended_ascii,scandinavian,german,russian,hebrew,greek,ukranian,arabic,persian,lithuanian,polish,estonian,icelandic,czech,turkish,bengali,korean,georgian,croatian"); } else { editor.remove(PREF_TRANSLITERATION_LANGUAGES); }