mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-12-27 19:15:50 +01:00
Add Common Symbols transliteration
This commit is contained in:
parent
dcf2629854
commit
77450efb99
@ -1147,7 +1147,7 @@ public class GBApplication extends Application {
|
|||||||
|
|
||||||
if (oldVersion < 16) {
|
if (oldVersion < 16) {
|
||||||
// If transliteration was enabled for a device, migrate it to the per-language setting
|
// If transliteration was enabled for a device, migrate it to the per-language setting
|
||||||
final String defaultLanguagesIfEnabled = "extended_ascii,scandinavian,german,russian,hebrew,greek,ukranian,arabic,persian,latvian,lithuanian,polish,estonian,icelandic,czech,turkish,bengali,korean";
|
final String defaultLanguagesIfEnabled = "extended_ascii,common_symbols,scandinavian,german,russian,hebrew,greek,ukranian,arabic,persian,latvian,lithuanian,polish,estonian,icelandic,czech,turkish,bengali,korean";
|
||||||
try (DBHandler db = acquireDB()) {
|
try (DBHandler db = acquireDB()) {
|
||||||
final DaoSession daoSession = db.getDaoSession();
|
final DaoSession daoSession = db.getDaoSession();
|
||||||
final List<Device> activeDevices = DBHelper.getActiveDevices(daoSession);
|
final List<Device> activeDevices = DBHelper.getActiveDevices(daoSession);
|
||||||
|
@ -36,6 +36,7 @@ import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
|||||||
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.util.language.impl.ArabicTransliterator;
|
import nodomain.freeyourgadget.gadgetbridge.util.language.impl.ArabicTransliterator;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.util.language.impl.BengaliTransliterator;
|
import nodomain.freeyourgadget.gadgetbridge.util.language.impl.BengaliTransliterator;
|
||||||
|
import nodomain.freeyourgadget.gadgetbridge.util.language.impl.CommonSymbolsTransliterator;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.util.language.impl.CroatianTransliterator;
|
import nodomain.freeyourgadget.gadgetbridge.util.language.impl.CroatianTransliterator;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.util.language.impl.CzechTransliterator;
|
import nodomain.freeyourgadget.gadgetbridge.util.language.impl.CzechTransliterator;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.util.language.impl.EstonianTransliterator;
|
import nodomain.freeyourgadget.gadgetbridge.util.language.impl.EstonianTransliterator;
|
||||||
@ -63,6 +64,7 @@ public class LanguageUtils {
|
|||||||
private static final Map<String, Transliterator> TRANSLITERATORS_MAP = new HashMap<String, Transliterator>() {{
|
private static final Map<String, Transliterator> TRANSLITERATORS_MAP = new HashMap<String, Transliterator>() {{
|
||||||
put("arabic", new ArabicTransliterator());
|
put("arabic", new ArabicTransliterator());
|
||||||
put("bengali", new BengaliTransliterator());
|
put("bengali", new BengaliTransliterator());
|
||||||
|
put("common_symbols", new CommonSymbolsTransliterator());
|
||||||
put("croatian", new CroatianTransliterator());
|
put("croatian", new CroatianTransliterator());
|
||||||
put("czech", new CzechTransliterator());
|
put("czech", new CzechTransliterator());
|
||||||
put("estonian", new EstonianTransliterator());
|
put("estonian", new EstonianTransliterator());
|
||||||
|
@ -0,0 +1,38 @@
|
|||||||
|
/* Copyright (C) 2017-2023 Andreas Shimokawa, Aniruddha Adhikary, Daniele
|
||||||
|
Gobbetti, ivanovlev, kalaee, lazarosfs, McSym28, M. Hadi, Roi Greenberg,
|
||||||
|
Taavi Eomäe, Ted Stein, Thomas, Yaron Shahrabani, José Rebelo, Davis
|
||||||
|
Mosenkovs
|
||||||
|
|
||||||
|
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 <http://www.gnu.org/licenses/>. */
|
||||||
|
package nodomain.freeyourgadget.gadgetbridge.util.language.impl;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
import nodomain.freeyourgadget.gadgetbridge.util.language.SimpleTransliterator;
|
||||||
|
|
||||||
|
public class CommonSymbolsTransliterator extends SimpleTransliterator {
|
||||||
|
public CommonSymbolsTransliterator() {
|
||||||
|
super(new HashMap<Character, String>() {{
|
||||||
|
put('“', "\""); put('”', "\""); put('‟', "\""); put('„', "\""); put('‘', "'"); put('’', "'"); put('‛', "'"); put('‚', "'"); put('«', "<"); put('»', ">"); put('‹', "<"); put('›', ">");
|
||||||
|
put('©', "(c)"); put('®', "(r)"); put('™', "(tm)"); put('°', "*"); put('€', "EUR");
|
||||||
|
put('–', "-"); put('⸺', "-"); put('˗', "-"); put('ᐨ', "-"); put('‐', "-"); put('‑', "-"); put('‒', "-"); put('—', "-"); put('―', "-"); put('−', "-");
|
||||||
|
put('⎯', "-"); put('⏤', "-"); put('─', "-"); put('➖', "-"); put('⸻', "-"); put('ㅡ', "-"); put('ᅳ', "-"); put('ー', "-"); put('一', "-"); put('﹘', "-");
|
||||||
|
put('﹣', "-"); put('-', "-"); put('𑁋', "-"); put('𑁒', "-"); put('˜', "~"); put('⁓', "~"); put('∼', "~"); put('〜', "~"); put('〰', "~~"); put('~', "~");
|
||||||
|
put('⁰', "0"); put('¹', "1"); put('²', "2"); put('³', "3"); put('⁴', "4"); put('⁵', "5"); put('⁶', "6"); put('⁷', "7"); put('⁸', "8"); put('⁹', "9");
|
||||||
|
put('₀', "0"); put('₁', "1"); put('₂', "2"); put('₃', "3"); put('₄', "4"); put('₅', "5"); put('₆', "6"); put('₇', "7"); put('₈', "8"); put('₉', "9");
|
||||||
|
}});
|
||||||
|
}
|
||||||
|
}
|
@ -3072,6 +3072,7 @@
|
|||||||
<string-array name="pref_transliteration_languages">
|
<string-array name="pref_transliteration_languages">
|
||||||
<item>@string/arabic</item>
|
<item>@string/arabic</item>
|
||||||
<item>@string/bengali</item>
|
<item>@string/bengali</item>
|
||||||
|
<item>@string/common_symbols</item>
|
||||||
<item>@string/croatian</item>
|
<item>@string/croatian</item>
|
||||||
<item>@string/czech</item>
|
<item>@string/czech</item>
|
||||||
<item>@string/estonian</item>
|
<item>@string/estonian</item>
|
||||||
@ -3096,6 +3097,7 @@
|
|||||||
<string-array name="pref_transliteration_languages_values">
|
<string-array name="pref_transliteration_languages_values">
|
||||||
<item>arabic</item>
|
<item>arabic</item>
|
||||||
<item>bengali</item>
|
<item>bengali</item>
|
||||||
|
<item>common_symbols</item>
|
||||||
<item>croatian</item>
|
<item>croatian</item>
|
||||||
<item>czech</item>
|
<item>czech</item>
|
||||||
<item>estonian</item>
|
<item>estonian</item>
|
||||||
|
@ -989,6 +989,7 @@
|
|||||||
<string name="georgian">Georgian</string>
|
<string name="georgian">Georgian</string>
|
||||||
<string name="german">German</string>
|
<string name="german">German</string>
|
||||||
<string name="bengali">Bengali</string>
|
<string name="bengali">Bengali</string>
|
||||||
|
<string name="common_symbols">Common Symbols</string>
|
||||||
<string name="croatian">Croatian</string>
|
<string name="croatian">Croatian</string>
|
||||||
<string name="czech">Czech</string>
|
<string name="czech">Czech</string>
|
||||||
<string name="estonian">Estonian</string>
|
<string name="estonian">Estonian</string>
|
||||||
|
@ -189,6 +189,21 @@ public class LanguageUtilsTest extends TestBase {
|
|||||||
assertEquals("georgian transliteration failed", expected, output);
|
assertEquals("georgian transliteration failed", expected, output);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testStringTransliterateCommonSymbols() {
|
||||||
|
final Transliterator transliterator = LanguageUtils.getTransliterator("common_symbols");
|
||||||
|
|
||||||
|
String input = "© ® ™ ° « – » “ ” 〜 ² ³ ₅";
|
||||||
|
String output = transliterator.transliterate(input);
|
||||||
|
String expected = "(c) (r) (tm) * < - > \" \" ~ 2 3 5";
|
||||||
|
assertEquals("common symbols translation failed", expected, output);
|
||||||
|
|
||||||
|
input = "a©a b®b c™c d°d e«e f–f g»g h“h i”i j〜j k²k l³l m₅m";
|
||||||
|
output = transliterator.transliterate(input);
|
||||||
|
expected = "a(c)a b(r)b c(tm)c d*d e<e f-f g>g h\"h i\"i j~j k2k l3l m5m";
|
||||||
|
assertEquals("common symbols translation failed", expected, output);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testStringTransliterateCroatian() {
|
public void testStringTransliterateCroatian() {
|
||||||
final Transliterator transliterator = LanguageUtils.getTransliterator("croatian");
|
final Transliterator transliterator = LanguageUtils.getTransliterator("croatian");
|
||||||
|
Loading…
Reference in New Issue
Block a user