diff --git a/.github/workflows/build-test-auto.yml b/.github/workflows/build-test-auto.yml index a887aa5f8f..cf589e0df1 100644 --- a/.github/workflows/build-test-auto.yml +++ b/.github/workflows/build-test-auto.yml @@ -11,6 +11,9 @@ on: pull_request: paths: - 'app/src/main/java**' + - 'app/src/main/assets/**' + - 'app/src/main/res/xml/**' + - 'app/src/test/**' workflow_dispatch: jobs: diff --git a/app/src/main/assets/layouts/symbols/symbols_br.txt b/app/src/main/assets/layouts/symbols/symbols_br.txt new file mode 100644 index 0000000000..ce4557d7f4 --- /dev/null +++ b/app/src/main/assets/layouts/symbols/symbols_br.txt @@ -0,0 +1,28 @@ +! +@ +# +$ +% ‰ +¨ ´ ` ~ ^ +& +* +( +) + +@ +# +$$$ +_ % ‰ +- – ⁻ — · ++ = ± ⁺ +( ⁽ < { [ +) ⁾ > } ] +/ \ | + +* † ‡ ★ +" +' +: +; +! +? diff --git a/app/src/main/assets/layouts/symbols/symbols_ch.txt b/app/src/main/assets/layouts/symbols/symbols_ch.txt new file mode 100644 index 0000000000..dd0359fa54 --- /dev/null +++ b/app/src/main/assets/layouts/symbols/symbols_ch.txt @@ -0,0 +1,28 @@ ++ +" +* +ç +% ‰ +& +/ +( +) += + +@ +# +$$$ +_ % ‰ +- – ⁻ — · ++ ± ⁺ +( ⁽ < { [ +) ⁾ > } ] +/ + +* † ‡ ★ +" +' +: +; +! +? diff --git a/app/src/main/assets/layouts/symbols/symbols_de.txt b/app/src/main/assets/layouts/symbols/symbols_de.txt new file mode 100644 index 0000000000..1447897a59 --- /dev/null +++ b/app/src/main/assets/layouts/symbols/symbols_de.txt @@ -0,0 +1,28 @@ +! +" +§ +$ +% ‰ +& +/ +( +) += + +@ +# +$$$ +_ % ‰ +- – ⁻ — · ++ ± ⁺ +( ⁽ < { [ +) ⁾ > } ] +/ + +* † ‡ ★ +" +' +: +; +! +? diff --git a/app/src/main/assets/layouts/symbols/symbols_es.txt b/app/src/main/assets/layouts/symbols/symbols_es.txt new file mode 100644 index 0000000000..744352a7c4 --- /dev/null +++ b/app/src/main/assets/layouts/symbols/symbols_es.txt @@ -0,0 +1,28 @@ +! +" +· +$ +% ‰ +& +/ +( +) += + +@ +# +$$$ +_ % ‰ +- – ⁻ — ++ ± ⁺ +( ⁽ < { [ +) ⁾ > } ] +/ + +* † ‡ ★ +" +' +: +; +! +? diff --git a/app/src/main/assets/layouts/symbols/symbols_iso.txt b/app/src/main/assets/layouts/symbols/symbols_iso.txt new file mode 100644 index 0000000000..941da525f6 --- /dev/null +++ b/app/src/main/assets/layouts/symbols/symbols_iso.txt @@ -0,0 +1,28 @@ +! +" +# +$ +% ‰ +& +/ +( +) += + +@ +# +$$$ +_ % ‰ +- – ⁻ — · ++ ± ⁺ +( ⁽ < { [ +) ⁾ > } ] +/ + +* † ‡ ★ +" +' +: +; +! +? diff --git a/app/src/main/assets/layouts/symbols/symbols_it.txt b/app/src/main/assets/layouts/symbols/symbols_it.txt new file mode 100644 index 0000000000..529a1cc46b --- /dev/null +++ b/app/src/main/assets/layouts/symbols/symbols_it.txt @@ -0,0 +1,28 @@ +! +" +£ +$ +% ‰ +& +/ +( +) += + +@ +# +$$$ +_ % ‰ +- – ⁻ — · ++ ± ⁺ +( ⁽ < { [ +) ⁾ > } ] +/ + +* † ‡ ★ +" +' +: +; +! +? diff --git a/app/src/main/assets/layouts/symbols/symbols_nordic.txt b/app/src/main/assets/layouts/symbols/symbols_nordic.txt new file mode 100644 index 0000000000..5079aaa526 --- /dev/null +++ b/app/src/main/assets/layouts/symbols/symbols_nordic.txt @@ -0,0 +1,28 @@ +! +" +# +¤ +% ‰ +& +/ +( +) += + +@ +# +$$$ +_ % ‰ +- – ⁻ — · ++ ± ⁺ +( ⁽ < { [ +) ⁾ > } ] +/ + +* † ‡ ★ +" +' +: +; +! +? diff --git a/app/src/main/assets/layouts/symbols/symbols_tr.txt b/app/src/main/assets/layouts/symbols/symbols_tr.txt new file mode 100644 index 0000000000..92ea5ce804 --- /dev/null +++ b/app/src/main/assets/layouts/symbols/symbols_tr.txt @@ -0,0 +1,28 @@ +! +' +^ ++ +% ‰ +& +/ +( +) += + +@ +# +$$$ +_ % ‰ +- – ⁻ — · ++ ± ⁺ +( ⁽ < { [ +) ⁾ > } ] +/ + +* † ‡ ★ +" +' +: +; +! +? diff --git a/app/src/main/assets/layouts/symbols/symbols_uk.txt b/app/src/main/assets/layouts/symbols/symbols_uk.txt new file mode 100644 index 0000000000..0cad291772 --- /dev/null +++ b/app/src/main/assets/layouts/symbols/symbols_uk.txt @@ -0,0 +1,28 @@ +! +" +£ +$ +% ‰ +^ +& +* +( +) + +@ +# +$$$ +_ % ‰ +- – ⁻ — · ++ = ± ⁺ +( ⁽ < { [ +) ⁾ > } ] +/ \ | + +* † ‡ ★ +" +' +: +; +! +? diff --git a/app/src/main/java/helium314/keyboard/latin/AppUpgrade.kt b/app/src/main/java/helium314/keyboard/latin/AppUpgrade.kt index b95df8f798..51d7d7bab0 100644 --- a/app/src/main/java/helium314/keyboard/latin/AppUpgrade.kt +++ b/app/src/main/java/helium314/keyboard/latin/AppUpgrade.kt @@ -696,6 +696,46 @@ private object AppUpgrade { remove("narrow_key_gaps") } } + if (oldVersion <= 4004) { + // region-specific SYMBOLS layouts were added to many subtypes in method.xml; extend + // stored subtype prefs the same way so they keep matching the resource subtypes, and + // so existing additional subtypes of these locales get the regional symbols page too + val regionalSymbols = mapOf( + "de" to "symbols_de", "de-DE" to "symbols_de", + "de-CH" to "symbols_ch", "fr-CH" to "symbols_ch", "it-CH" to "symbols_ch", + "sv" to "symbols_nordic", "da" to "symbols_nordic", "nb" to "symbols_nordic", + "fi" to "symbols_nordic", "et-EE" to "symbols_nordic", + "en-GB" to "symbols_uk", + "es" to "symbols_es", "ca" to "symbols_es", "gl-ES" to "symbols_es", "eu-ES" to "symbols_es", + "it" to "symbols_it", + "is" to "symbols_iso", "pt-PT" to "symbols_iso", "es-419" to "symbols_iso", + "es-US" to "symbols_iso", "hr" to "symbols_iso", "sr-Latn" to "symbols_iso", "sl" to "symbols_iso", + "sr" to "symbols_iso", + "pt-BR" to "symbols_br", + "tr" to "symbols_tr", + ) + fun SettingsSubtype.withRegionalSymbols(): SettingsSubtype { + val regional = regionalSymbols[locale.toLanguageTag()] ?: return this + if (layoutName(LayoutType.SYMBOLS) != null) return this // explicitly chosen symbols layout, keep it + return withLayout(LayoutType.SYMBOLS, regional) + } + listOf(Settings.PREF_ENABLED_SUBTYPES, Settings.PREF_ADDITIONAL_SUBTYPES).forEach { key -> + if (!prefs.contains(key)) return@forEach + val value = prefs.getString(key, "")!! + val new = value.split(Separators.SETS).filter { it.isNotEmpty() } + .joinToString(Separators.SETS) { it.toSettingsSubtype().withRegionalSymbols().toPref() } + if (new != value) prefs.edit { putString(key, new) } + } + (prefs.all.keys.filter { it.startsWith(Settings.PREF_SAVED_APP_SUBTYPE_PREFIX) } + Settings.PREF_SELECTED_SUBTYPE).forEach { key -> + if (!prefs.contains(key)) return@forEach + val value = prefs.getString(key, "")!! + if (value.isEmpty()) return@forEach + val new = value.toSettingsSubtype().withRegionalSymbols().toPref() + if (new != value) prefs.edit { putString(key, new) } + } + // subtypes were already loaded from the not-yet-migrated prefs in SubtypeSettings.init + SubtypeSettings.reloadEnabledSubtypes(context) + } upgradeToolbarPrefs(prefs) LayoutUtilsCustom.onLayoutFileChanged() // just to be sure prefs.edit { putInt(Settings.PREF_VERSION_CODE, BuildConfig.VERSION_CODE) } diff --git a/app/src/main/java/helium314/keyboard/latin/settings/Defaults.kt b/app/src/main/java/helium314/keyboard/latin/settings/Defaults.kt index d2086574a0..b5099c9975 100644 --- a/app/src/main/java/helium314/keyboard/latin/settings/Defaults.kt +++ b/app/src/main/java/helium314/keyboard/latin/settings/Defaults.kt @@ -78,7 +78,7 @@ object Defaults { const val PREF_LANGUAGE_SWITCH_KEY = "internal" const val PREF_SHOW_EMOJI_KEY = false const val PREF_VARIABLE_TOOLBAR_DIRECTION = true - const val PREF_ADDITIONAL_SUBTYPES = "de${Separators.SET}${ExtraValue.KEYBOARD_LAYOUT_SET}=MAIN:qwerty${Separators.SETS}" + + const val PREF_ADDITIONAL_SUBTYPES = "de${Separators.SET}${ExtraValue.KEYBOARD_LAYOUT_SET}=MAIN:qwerty|SYMBOLS:symbols_de${Separators.SETS}" + "fr${Separators.SET}${ExtraValue.KEYBOARD_LAYOUT_SET}=MAIN:qwertz${Separators.SETS}" + "hu${Separators.SET}${ExtraValue.KEYBOARD_LAYOUT_SET}=MAIN:qwerty" const val PREF_ENABLE_SPLIT_KEYBOARD = false diff --git a/app/src/main/java/helium314/keyboard/latin/utils/SubtypeSettings.kt b/app/src/main/java/helium314/keyboard/latin/utils/SubtypeSettings.kt index d37d8842a4..ca8a2e652a 100644 --- a/app/src/main/java/helium314/keyboard/latin/utils/SubtypeSettings.kt +++ b/app/src/main/java/helium314/keyboard/latin/utils/SubtypeSettings.kt @@ -78,7 +78,7 @@ object SubtypeSettings { val match = enabledFromSettings.firstOrNull { !it.isAdditionalSubtype(context.prefs()) && it.locale == subtype.locale() - && it.mainLayoutName() == subtype.mainLayoutNameOrQwerty() + && (it.mainLayoutName() ?: SubtypeLocaleUtils.QWERTY) == subtype.mainLayoutNameOrQwerty() } // the match is done on locale and main layout name, like in loadEnabledSubtypes if (match == null || !removeEnabledSubtype(prefs, match)) { @@ -103,13 +103,27 @@ object SubtypeSettings { val subtype = enabledSubtypes.firstOrNull { it.toSettingsSubtype() == selectedSubtype } if (subtype != null) { return subtype - } else if (enabledSubtypes.isNotEmpty()) { - Log.w(TAG, "selected subtype $selectedSubtype / ${prefs.getString(Settings.PREF_SELECTED_SUBTYPE, Defaults.PREF_SELECTED_SUBTYPE)} not found") } - if (enabledSubtypes.isNotEmpty()) + // the stored selected subtype may be stale when extra values of a resource subtype + // changed in method.xml, so match on locale and main layout like loadEnabledSubtypes + // does, and heal the pref so exact matching works again (prefer resource subtypes, + // because a stale pref that gets here is a resource subtype serialization) + val sameLocaleAndLayout = enabledSubtypes.filter { + it.locale() == selectedSubtype.locale + && it.mainLayoutNameOrQwerty() == (selectedSubtype.mainLayoutName() ?: SubtypeLocaleUtils.QWERTY) + } + val fuzzyMatch = sameLocaleAndLayout.firstOrNull { !isAdditionalSubtype(it) } ?: sameLocaleAndLayout.firstOrNull() + if (fuzzyMatch != null) { + setSelectedSubtype(prefs, fuzzyMatch) + return fuzzyMatch + } + if (enabledSubtypes.isNotEmpty()) { + Log.w(TAG, "selected subtype $selectedSubtype / ${prefs.getString(Settings.PREF_SELECTED_SUBTYPE, Defaults.PREF_SELECTED_SUBTYPE)} not found") return enabledSubtypes.first() + } val defaultSubtypes = getDefaultEnabledSubtypes() - return defaultSubtypes.firstOrNull { it.locale() == selectedSubtype.locale && it.mainLayoutName() == it.mainLayoutName() } + return defaultSubtypes.firstOrNull { it.locale() == selectedSubtype.locale && it.mainLayoutNameOrQwerty() == (selectedSubtype.mainLayoutName() ?: SubtypeLocaleUtils.QWERTY) } + ?: defaultSubtypes.firstOrNull { it.locale() == selectedSubtype.locale } ?: defaultSubtypes.firstOrNull { it.locale().language == selectedSubtype.locale.language } ?: defaultSubtypes.first() } @@ -250,6 +264,7 @@ object SubtypeSettings { private fun loadEnabledSubtypes(context: Context) { val prefs = context.prefs() val settingsSubtypes = createSettingsSubtypes(prefs.getString(Settings.PREF_ENABLED_SUBTYPES, Defaults.PREF_ENABLED_SUBTYPES)!!) + val stale = mutableMapOf() for (settingsSubtype in settingsSubtypes) { if (settingsSubtype.isAdditionalSubtype(prefs)) { enabledSubtypes.add(settingsSubtype.toAdditionalSubtype()) @@ -278,6 +293,15 @@ object SubtypeSettings { } enabledSubtypes.add(subtype) + if (subtype.toSettingsSubtype() != settingsSubtype) + stale[settingsSubtype] = subtype.toSettingsSubtype() + } + if (stale.isNotEmpty()) { + // extra values of a resource subtype changed in method.xml (e.g. a SYMBOLS layout was + // added) -> store the current serialization, because exact-match consumers like + // getSelectedSubtype and changeAdditionalSubtype would keep working on stale strings + val current = createSettingsSubtypes(prefs.getString(Settings.PREF_ENABLED_SUBTYPES, Defaults.PREF_ENABLED_SUBTYPES)!!) + prefs.edit { putString(Settings.PREF_ENABLED_SUBTYPES, createPrefSubtypes(current.map { stale[it] ?: it })) } } } diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 4a9b5e7ec1..c4774e0dc1 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -192,6 +192,15 @@ Selecciona les tecles de la barra d\'eines del porta-retalls Tanca l\'historial del porta-retalls Símbols (Àrab) + Símbols (Alemany) + Símbols (Nòrdic) + Símbols (Britànic) + Símbols (Espanyol) + Símbols (Italià) + Símbols (ISO) + Símbols (Brasiler) + Símbols (Turc) + Símbols (Suís) Símbols Carrega Mostra més lletres amb signes diacrítics a l\'ampliació diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 7ad9c03a53..c2f52a79fc 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -234,6 +234,15 @@ Afrundet Funktionelle taster (stor skærm) Symboler (arabisk) + Symboler (tysk) + Symboler (nordisk) + Symboler (britisk) + Symboler (spansk) + Symboler (italiensk) + Symboler (ISO) + Symboler (brasiliansk) + Symboler (tyrkisk) + Symboler (schweizisk) Valg af emoji i emoji-visning Valg af post i udklipsholderens historik Tryk på enter eller mellemrum efter andre taster i symbolvisning diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index cb4edb1040..50a1467a38 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -275,6 +275,15 @@ %s (experimentell) Symbole Symbole (arabisch) + Symbole (deutsch) + Symbole (nordisch) + Symbole (britisch) + Symbole (spanisch) + Symbole (italienisch) + Symbole (ISO) + Symbole (brasilianisch) + Symbole (türkisch) + Symbole (schweizerisch) Telefon Telefonsymbole Zahlen diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 299e042d8a..19f6accb43 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -257,6 +257,15 @@ Utiliza los números del idioma en lugar de los latinos Seleccionar origen de los símbolos Símbolos (Árabe) + Símbolos (Alemán) + Símbolos (Nórdico) + Símbolos (Británico) + Símbolos (Español) + Símbolos (Italiano) + Símbolos (ISO) + Símbolos (Brasileño) + Símbolos (Turco) + Símbolos (Suizo) Teléfono Símbolos del teléfono Teclado numérico diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index 54444c24e8..fa998d26c8 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -276,6 +276,15 @@ Versioon Numbriklahvistik (rõhtne) Sümbolid (araabia keele jaoks) + Sümbolid (saksa) + Sümbolid (Põhjamaade) + Sümbolid (briti) + Sümbolid (hispaania) + Sümbolid (itaalia) + Sümbolid (ISO) + Sümbolid (Brasiilia) + Sümbolid (türgi) + Sümbolid (Šveitsi) Sümbolid Hologrammi valge Numbriklahvistik diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 6a82cbe162..1fe56a0b5e 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -317,6 +317,15 @@ Funktionäppäimet (symbolit) Funktionäppäimet (lisää symboleja) Symbolit + Symbolit (saksalainen) + Symbolit (pohjoismainen) + Symbolit (brittiläinen) + Symbolit (espanjalainen) + Symbolit (italialainen) + Symbolit (ISO) + Symbolit (brasilialainen) + Symbolit (turkkilainen) + Symbolit (sveitsiläinen) Lisää symboleja Puhelinsymbolit Numeronäppäimistö diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 37d296421c..64558df03c 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -286,6 +286,15 @@ Nouveau dictionnaire: Balayage horizontal de la barre d\'espace Pavé numérique (paysage) Symboles (Arabe) + Symboles (Allemand) + Symboles (Nordique) + Symboles (Britannique) + Symboles (Espagnol) + Symboles (Italien) + Symboles (ISO) + Symboles (Brésilien) + Symboles (Turc) + Symboles (Suisse) Symboles du pavé téléphonique Chiffres Pavé numérique diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 9dc8041afc..a4750671ee 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -283,6 +283,15 @@ Mostar características que igual non coñeces Símbolos Símbolos (Arábigo) + Símbolos (Alemán) + Símbolos (Nórdico) + Símbolos (Británico) + Símbolos (Español) + Símbolos (Italiano) + Símbolos (ISO) + Símbolos (Brasileiro) + Símbolos (Turco) + Símbolos (Suízo) Teléfono Símbolos do teléfono Números diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index c7747b750e..7dff854d52 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -301,6 +301,15 @@ Funkcionalne tipke (više simbola) Simboli Simboli (arapski) + Simboli (njemački) + Simboli (nordijski) + Simboli (britanski) + Simboli (španjolski) + Simboli (talijanski) + Simboli (ISO) + Simboli (brazilski) + Simboli (turski) + Simboli (švicarski) Više simbola Telefonski raspored Simboli telefona diff --git a/app/src/main/res/values-is/strings.xml b/app/src/main/res/values-is/strings.xml index 0f1b189f2c..d9e9376e38 100644 --- a/app/src/main/res/values-is/strings.xml +++ b/app/src/main/res/values-is/strings.xml @@ -187,6 +187,15 @@ Tákn Setja bakgrunnsmynd Tákn (arabísk) + Tákn (þýsk) + Tákn (norræn) + Tákn (bresk) + Tákn (spænsk) + Tákn (ítölsk) + Tákn (ISO) + Tákn (brasilísk) + Tákn (tyrknesk) + Tákn (svissnesk) Fleiri tákn Símatákn Talnaborð diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index bfe332da54..16f0a74d82 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -281,6 +281,15 @@ %s (sperimentale) Simboli Simboli (arabo) + Simboli (tedesco) + Simboli (nordico) + Simboli (britannico) + Simboli (spagnolo) + Simboli (italiano) + Simboli (ISO) + Simboli (brasiliano) + Simboli (turco) + Simboli (svizzero) Telefono Numeri Tastierino numerico (orizzontale) diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index b2fe633d84..f90104a61c 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -185,6 +185,15 @@ enhetsbeskyttet lagring Symboler Symboler (Arabisk) + Symboler (Tysk) + Symboler (Nordisk) + Symboler (Britisk) + Symboler (Spansk) + Symboler (Italiensk) + Symboler (ISO) + Symboler (Brasiliansk) + Symboler (Tyrkisk) + Symboler (Sveitsisk) Flere symboler Telefon Telefonsymboler diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 925007d378..1c6e07554c 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -189,6 +189,15 @@ Bodemafstand schaal Aangepaste lay-out %s verwijderen? Symbolen (Arabisch) + Symbolen (Duits) + Symbolen (Noords) + Symbolen (Brits) + Symbolen (Spaans) + Symbolen (Italiaans) + Symbolen (ISO) + Symbolen (Braziliaans) + Symbolen (Turks) + Symbolen (Zwitsers) Aangepast Horizontaal veeggebaar over spatiebalk Klembordgeschiedenis sluiten diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index eb3802398c..ddac09a456 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -218,6 +218,15 @@ Toque para editar o layout bruto Símbolos Símbolos (Árabe) + Símbolos (Alemão) + Símbolos (Nórdico) + Símbolos (Britânico) + Símbolos (Espanhol) + Símbolos (Italiano) + Símbolos (ISO) + Símbolos (Brasileiro) + Símbolos (Turco) + Símbolos (Suíço) Mais símbolos Telefone Símbolos de telefone diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index b4346c83b9..fcddc690a8 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -286,6 +286,15 @@ Teclas funcionais (Mais símbolos) Símbolos Símbolos (Árabe) + Símbolos (Alemão) + Símbolos (Nórdico) + Símbolos (Britânico) + Símbolos (Espanhol) + Símbolos (Italiano) + Símbolos (ISO) + Símbolos (Brasileiro) + Símbolos (Turco) + Símbolos (Suíço) Símbolos de telefone Telemóvel Numpad diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index cf50c91a4a..54ffbbe7c7 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -142,6 +142,15 @@ Ställ in bakgrundsbild Symboler Symboler (arabiska) + Symboler (tyska) + Symboler (nordiska) + Symboler (brittiska) + Symboler (spanska) + Symboler (italienska) + Symboler (ISO) + Symboler (brasilianska) + Symboler (turkiska) + Symboler (schweiziska) Telefonsymboler Se på GitHub Spara logg diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index d8a48f5f63..deb937dfa0 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -175,6 +175,15 @@ İşlevsel tuşlar (Semboller) İşlevsel tuşlar (Daha fazla sembol) Semboller (Arapça) + Semboller (Almanca) + Semboller (İskandinav) + Semboller (Birleşik Krallık) + Semboller (İspanyolca) + Semboller (İtalyanca) + Semboller (ISO) + Semboller (Brezilya) + Semboller (Türkçe) + Semboller (İsviçre) Daha fazla sembol Telefon Telefon sembolleri diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index dc29125207..0049807e98 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -532,6 +532,24 @@ language, hence "No language". --> Symbols Symbols (Arabic) + + Symbols (German) + + Symbols (Nordic) + + Symbols (UK) + + Symbols (Spanish) + + Symbols (Italian) + + Symbols (ISO) + + Symbols (Brazilian) + + Symbols (Turkish) + + Symbols (Swiss) More symbols diff --git a/app/src/main/res/xml/method.xml b/app/src/main/res/xml/method.xml index cd1067b2b2..5fb7b96af0 100644 --- a/app/src/main/res/xml/method.xml +++ b/app/src/main/res/xml/method.xml @@ -54,7 +54,7 @@ android:imeSubtypeLocale="en_GB" android:languageTag="en-GB" android:imeSubtypeMode="keyboard" - android:imeSubtypeExtraValue="TrySuppressingImeSwitcher,AsciiCapable,SupportTouchPositionCorrection,EmojiCapable" + android:imeSubtypeExtraValue="KeyboardLayoutSet=SYMBOLS:symbols_uk,TrySuppressingImeSwitcher,AsciiCapable,SupportTouchPositionCorrection,EmojiCapable" android:isAsciiCapable="true" /> @@ -868,7 +868,7 @@ android:imeSubtypeLocale="nb" android:languageTag="nb" android:imeSubtypeMode="keyboard" - android:imeSubtypeExtraValue="KeyboardLayoutSet=MAIN:qwerty+,AsciiCapable,SupportTouchPositionCorrection,EmojiCapable" + android:imeSubtypeExtraValue="KeyboardLayoutSet=MAIN:qwerty+|SYMBOLS:symbols_nordic,AsciiCapable,SupportTouchPositionCorrection,EmojiCapable" android:isAsciiCapable="true" />