From d90820e2848939b8519e750ae03d2ea06cae9a2a Mon Sep 17 00:00:00 2001 From: Prince Yadav <66916296+prince-0408@users.noreply.github.com> Date: Mon, 6 Jul 2026 06:58:06 +0530 Subject: [PATCH 1/2] feat: add setting to toggle clipboard key on keyboard --- .../be/scri/services/GeneralKeyboardIME.kt | 4 + .../main/java/be/scri/helpers/KeyboardBase.kt | 3 +- .../java/be/scri/helpers/PreferencesHelper.kt | 23 ++ .../scri/ui/screens/LanguageSettingsScreen.kt | 26 ++ app/src/main/res/values/string.xml | 264 ++++-------------- 5 files changed, 115 insertions(+), 205 deletions(-) diff --git a/app/src/keyboards/java/be/scri/services/GeneralKeyboardIME.kt b/app/src/keyboards/java/be/scri/services/GeneralKeyboardIME.kt index 4497353af..988790473 100644 --- a/app/src/keyboards/java/be/scri/services/GeneralKeyboardIME.kt +++ b/app/src/keyboards/java/be/scri/services/GeneralKeyboardIME.kt @@ -576,6 +576,10 @@ abstract class GeneralKeyboardIME( return isActionSearch || isUriType || hasSearchHint } + override fun isClipboardKeyEnabled(): Boolean { + return PreferencesHelper.getIsClipboardKeyEnabled(this, language) + } + private fun loadLanguageData() { val languageAlias = getLanguageAlias(language) dataContract = dbManagers.getLanguageContract(languageAlias) diff --git a/app/src/main/java/be/scri/helpers/KeyboardBase.kt b/app/src/main/java/be/scri/helpers/KeyboardBase.kt index 70aa1a9ad..c46b2e336 100644 --- a/app/src/main/java/be/scri/helpers/KeyboardBase.kt +++ b/app/src/main/java/be/scri/helpers/KeyboardBase.kt @@ -37,6 +37,7 @@ class KeyboardBase { val keyboardLetters: Int fun isSearchBar(): Boolean + fun isClipboardKeyEnabled(): Boolean } /** Horizontal gap default for all rows */ @@ -659,7 +660,7 @@ class KeyboardBase { } } - if (currentKeyboardMode == keyboardLettersMode && mKeys != null) { + if (currentKeyboardMode == keyboardLettersMode && mKeys != null && provider?.isClipboardKeyEnabled() == true) { val spaceKey = mKeys!!.find { it?.code == 32 } val commaKey = mKeys!!.find { it?.code == ','.code } val row = mRows.lastOrNull() diff --git a/app/src/main/java/be/scri/helpers/PreferencesHelper.kt b/app/src/main/java/be/scri/helpers/PreferencesHelper.kt index b449b320f..4a9e88c8d 100644 --- a/app/src/main/java/be/scri/helpers/PreferencesHelper.kt +++ b/app/src/main/java/be/scri/helpers/PreferencesHelper.kt @@ -26,6 +26,7 @@ object PreferencesHelper { private const val DEFAULT_CURRENCY = "default_currency" private const val HOLD_FOR_ALT_KEYS = "hold_for_alt_keys" private const val INCREASE_TEXT_SIZE = "increase_text_size" + private const val CLIPBOARD_KEY_ON_KEYBOARD = "clipboard_key_on_keyboard" /** * Sets the translation source language for a given language. @@ -534,6 +535,28 @@ object PreferencesHelper { return sharedPref.getBoolean(getLanguageSpecificPreferenceKey(HOLD_FOR_ALT_KEYS, language), true) } + /** + * Sets the preference for showing or hiding the clipboard key on the keyboard. + */ + fun setClipboardKeyPreference( + context: Context, + language: String, + enabled: Boolean, + ) { + val sharedPref = context.getSharedPreferences(SCRIBE_PREFS, Context.MODE_PRIVATE) + sharedPref.edit { + putBoolean(getLanguageSpecificPreferenceKey(CLIPBOARD_KEY_ON_KEYBOARD, language), enabled) + } + } + + /** + * Retrieves whether the clipboard key is enabled on the keyboard for a given language. + */ + fun getIsClipboardKeyEnabled(context: Context, language: String): Boolean { + val sharedPref = context.getSharedPreferences(SCRIBE_PREFS, Context.MODE_PRIVATE) + return sharedPref.getBoolean(getLanguageSpecificPreferenceKey(CLIPBOARD_KEY_ON_KEYBOARD, language), true) + } + /** * Resets the application hints, marking them as not shown in the shared preferences. * diff --git a/app/src/main/java/be/scri/ui/screens/LanguageSettingsScreen.kt b/app/src/main/java/be/scri/ui/screens/LanguageSettingsScreen.kt index ebe7614d0..887dcfe7e 100644 --- a/app/src/main/java/be/scri/ui/screens/LanguageSettingsScreen.kt +++ b/app/src/main/java/be/scri/ui/screens/LanguageSettingsScreen.kt @@ -109,6 +109,13 @@ fun LanguageSettingsScreen( ) } + val clipboardKeyOnKeyboardState = + remember { + mutableStateOf( + PreferencesHelper.getIsClipboardKeyEnabled(context, language), + ) + } + val wordByWordDeletionState = remember { mutableStateOf( @@ -154,6 +161,15 @@ fun LanguageSettingsScreen( shouldDisableAccentCharacter, ) }, + toggleClipboardKeyOnKeyboard = clipboardKeyOnKeyboardState.value, + onToggleClipboardKeyOnKeyboard = { isEnabled -> + clipboardKeyOnKeyboardState.value = isEnabled + PreferencesHelper.setClipboardKeyPreference( + context, + language, + isEnabled, + ) + }, onCurrencySelect = onCurrencySelect, ), ) @@ -350,6 +366,8 @@ private fun getLayoutListData( onTogglePeriodAndComma: (Boolean) -> Unit, toggleDisableAccentCharacter: Boolean, onToggleDisableAccentCharacter: (Boolean) -> Unit, + toggleClipboardKeyOnKeyboard: Boolean, + onToggleClipboardKeyOnKeyboard: (Boolean) -> Unit, onCurrencySelect: () -> Unit, ): List { val list: MutableList = mutableListOf() @@ -375,6 +393,14 @@ private fun getLayoutListData( onToggle = onTogglePeriodAndComma, ), ) + list.add( + ScribeItem.SwitchItem( + title = R.string.i18n_app_settings_keyboard_layout_clipboard_on_keyboard, + desc = R.string.i18n_app_settings_keyboard_layout_clipboard_on_keyboard_description, + state = toggleClipboardKeyOnKeyboard, + onToggle = onToggleClipboardKeyOnKeyboard, + ), + ) list.add( ScribeItem.ClickableItem( title = R.string.i18n_app_settings_keyboard_layout_default_currency, diff --git a/app/src/main/res/values/string.xml b/app/src/main/res/values/string.xml index 27400ebf9..6ad214f5b 100644 --- a/app/src/main/res/values/string.xml +++ b/app/src/main/res/values/string.xml @@ -30,8 +30,7 @@ Russian Spanish Swedish - Here\'s where you can learn more about Scribe and - its community. + Here\'s where you can learn more about Scribe and its community. See the code on GitHub Follow us on Mastodon Chat with the team on Matrix @@ -41,20 +40,9 @@ Visit the Scribe website Wikimedia and Scribe How we work together - Scribe would not be possible without - countless contributions by Wikimedia contributors to the many projects that they support. - Scribe makes use of data from the Wikidata Lexicographical data community, as well as data - from Wikipedia for each language that Scribe supports. - Wikidata is a collaboratively edited - multilingual knowledge graph hosted by the Wikimedia Foundation. It provides freely - available data that anyone can use under a Creative Commons Public Domain license (CC0). - Scribe uses language data from Wikidata to provide users with verb conjugations, noun-form - annotations, noun plurals, and many other features. - Wikipedia is a multilingual free online - encyclopedia written and maintained by a community of volunteers through open collaboration - and a wiki-based editing system. Scribe uses data from Wikipedia to produce autosuggestions - by deriving the most common words in a language as well as the most common words that follow - them. + Scribe would not be possible without countless contributions by Wikimedia contributors to the many projects that they support. Scribe makes use of data from the Wikidata Lexicographical data community, as well as data from Wikipedia for each language that Scribe supports. + Wikidata is a collaboratively edited multilingual knowledge graph hosted by the Wikimedia Foundation. It provides freely available data that anyone can use under a Creative Commons Public Domain license (CC0). Scribe uses language data from Wikidata to provide users with verb conjugations, noun-form annotations, noun plurals, and many other features. + Wikipedia is a multilingual free online encyclopedia written and maintained by a community of volunteers through open collaboration and a wiki-based editing system. Scribe uses data from Wikipedia to produce autosuggestions by deriving the most common words in a language as well as the most common words that follow them. Report a bug Rate Scribe Conjugate Rate Scribe @@ -63,98 +51,18 @@ Feedback and support Version Keeping you safe - Please note that the English version of - this policy takes precedence over all other versions.\n\nThe Scribe developers (SCRIBE) - built the iOS application "Scribe - Language Keyboards" (SERVICE) as an open-source - application. This SERVICE is provided by SCRIBE at no cost and is intended for use as - is.\n\nThis privacy policy (POLICY) is used to inform the reader of the policies for the - access, tracking, collection, retention, use, and disclosure of personal information (USER - INFORMATION) and usage data (USER DATA) for all individuals who make use of this SERVICE - (USERS).\n\nUSER INFORMATION is specifically defined as any information related to the USERS - themselves or the devices they use to access the SERVICE.\n\nUSER DATA is specifically - defined as any text that is typed or actions that are done by the USERS while using the - SERVICE.\n\n1. Policy Statement\n\nThis SERVICE does not access, track, collect, retain, - use, or disclose any USER INFORMATION or USER DATA.\n\n2. Do Not Track\n\nUSERS contacting - SCRIBE to ask that their USER INFORMATION and USER DATA not be tracked will be provided with - a copy of this POLICY as well as a link to all source codes as proof that they are not being - tracked.\n\n3. Third-Party Data\n\nThis SERVICE makes use of third-party data. All data used - in the creation of this SERVICE comes from sources that allow its full use in the manner - done so by the SERVICE. Specifically, the data for this SERVICE comes from Wikidata, - Wikipedia and Unicode. Wikidata states that, "All structured data in the main, property and - lexeme namespaces is made available under the Creative Commons CC0 License; text in other - namespaces is made available under the Creative Commons Attribution-Share Alike License." - The policy detailing Wikidata data usage can be found at - https://www.wikidata.org/wiki/Wikidata:Licensing. Wikipedia states that text data, the type - of data used by the SERVICE, "… can be used under the terms of the Creative Commons - Attribution Share-Alike license". The policy detailing Wikipedia data usage can be found at - https://en.wikipedia.org/wiki/Wikipedia:Reusing_Wikipedia_content. Unicode provides - permission, "… free of charge, to any person obtaining a copy of the Unicode data files and - any associated documentation (the "Data Files") or Unicode software and any associated - documentation (the "Software") to deal in the Data Files or Software without restriction…" - The policy detailing Unicode data usage can be found at - https://www.unicode.org/license.txt.\n\n4. Third-Party Source Code\n\nThis SERVICE was based - on third-party code. All source code used in the creation of this SERVICE comes from sources - that allow its full use in the manner done so by the SERVICE. Specifically, the basis of - this project was the project Custom Keyboard by Ethan Sarif-Kattan. Custom Keyboard was - released under an MIT license, with this license being available at - https://github.com/EthanSK/CustomKeyboard/blob/master/LICENSE.\n\n5. Third-Party - Services\n\nThis SERVICE makes use of third-party services to manipulate some of the - third-party data. Specifically, data has been translated using models from Hugging Face - transformers. This service is covered by an Apache License 2.0, which states that it is - available for commercial use, modification, distribution, patent use, and private use. The - license for the aforementioned service can be found at - https://github.com/huggingface/transformers/blob/master/LICENSE.\n\n6. Third-Party - Links\n\nThis SERVICE contains links to external websites. If USERS click on a third-party - link, they will be directed to a website. Note that these external websites are not operated - by this SERVICE. Therefore, USERS are strongly advised to review the privacy policy of these - websites. This SERVICE has no control over and assumes no responsibility for the content, - privacy policies, or practices of any third-party sites or services.\n\n7. Third-Party - Images\n\nThis SERVICE contains images that are copyrighted by third-parties. Specifically, - this app includes a copy of the logos of GitHub, Inc and Wikidata, trademarked by Wikimedia - Foundation, Inc. The terms by which the GitHub logo can be used are found on - https://github.com/logos, and the terms for the Wikidata logo are found on the following - Wikimedia page: https://foundation.wikimedia.org/wiki/Policy:Trademark_policy. This SERVICE - uses the copyrighted images in a way that matches these criteria, with the only deviation - being a rotation of the GitHub logo that is common in the open-source community to indicate - that there is a link to the GitHub website.\n\n8. Content Notice\n\nThis SERVICE allows - USERS to access linguistic content (CONTENT). Some of this CONTENT could be deemed - inappropriate for children and legal minors. Accessing CONTENT using the SERVICE is done in - a way that the information is unavailable unless explicitly known. Specifically, USERS "can" - translate words, conjugate verbs, and access other grammatical features of CONTENT that may - be sexual, violent, or otherwise inappropriate in nature. USERS "cannot" translate words, - conjugate verbs, and access other grammatical features of CONTENT that may be sexual, - violent, or otherwise inappropriate in nature if they do not already know about the nature - of this CONTENT. SCRIBE takes no responsibility for the access of such CONTENT.\n\n9. - Changes\n\nThis POLICY is subject to change. Updates to this POLICY will replace all prior - instances, and if deemed material will further be clearly stated in the next applicable - update to the SERVICE. SCRIBE encourages USERS to periodically review this POLICY for the - latest information on our privacy practices and to familiarize themselves with any - changes.\n\n10. Contact\n\nIf you have any questions, concerns, or suggestions about this - POLICY, do not hesitate to visit https://github.com/scribe-org or contact SCRIBE at - security[at]scri.be. The person responsible for such inquiries is Andrew Tavis - McAllister.\n\n11. Effective Date\n\nThis POLICY is effective as of the 24th of May, 2022. + Please note that the English version of this policy takes precedence over all other versions.\n\nThe Scribe developers (SCRIBE) built the iOS application "Scribe - Language Keyboards" (SERVICE) as an open-source application. This SERVICE is provided by SCRIBE at no cost and is intended for use as is.\n\nThis privacy policy (POLICY) is used to inform the reader of the policies for the access, tracking, collection, retention, use, and disclosure of personal information (USER INFORMATION) and usage data (USER DATA) for all individuals who make use of this SERVICE (USERS).\n\nUSER INFORMATION is specifically defined as any information related to the USERS themselves or the devices they use to access the SERVICE.\n\nUSER DATA is specifically defined as any text that is typed or actions that are done by the USERS while using the SERVICE.\n\n1. Policy Statement\n\nThis SERVICE does not access, track, collect, retain, use, or disclose any USER INFORMATION or USER DATA.\n\n2. Do Not Track\n\nUSERS contacting SCRIBE to ask that their USER INFORMATION and USER DATA not be tracked will be provided with a copy of this POLICY as well as a link to all source codes as proof that they are not being tracked.\n\n3. Third-Party Data\n\nThis SERVICE makes use of third-party data. All data used in the creation of this SERVICE comes from sources that allow its full use in the manner done so by the SERVICE. Specifically, the data for this SERVICE comes from Wikidata, Wikipedia and Unicode. Wikidata states that, "All structured data in the main, property and lexeme namespaces is made available under the Creative Commons CC0 License; text in other namespaces is made available under the Creative Commons Attribution-Share Alike License." The policy detailing Wikidata data usage can be found at https://www.wikidata.org/wiki/Wikidata:Licensing. Wikipedia states that text data, the type of data used by the SERVICE, "… can be used under the terms of the Creative Commons Attribution Share-Alike license". The policy detailing Wikipedia data usage can be found at https://en.wikipedia.org/wiki/Wikipedia:Reusing_Wikipedia_content. Unicode provides permission, "… free of charge, to any person obtaining a copy of the Unicode data files and any associated documentation (the "Data Files") or Unicode software and any associated documentation (the "Software") to deal in the Data Files or Software without restriction…" The policy detailing Unicode data usage can be found at https://www.unicode.org/license.txt.\n\n4. Third-Party Source Code\n\nThis SERVICE was based on third-party code. All source code used in the creation of this SERVICE comes from sources that allow its full use in the manner done so by the SERVICE. Specifically, the basis of this project was the project Custom Keyboard by Ethan Sarif-Kattan. Custom Keyboard was released under an MIT license, with this license being available at https://github.com/EthanSK/CustomKeyboard/blob/master/LICENSE.\n\n5. Third-Party Services\n\nThis SERVICE makes use of third-party services to manipulate some of the third-party data. Specifically, data has been translated using models from Hugging Face transformers. This service is covered by an Apache License 2.0, which states that it is available for commercial use, modification, distribution, patent use, and private use. The license for the aforementioned service can be found at https://github.com/huggingface/transformers/blob/master/LICENSE.\n\n6. Third-Party Links\n\nThis SERVICE contains links to external websites. If USERS click on a third-party link, they will be directed to a website. Note that these external websites are not operated by this SERVICE. Therefore, USERS are strongly advised to review the privacy policy of these websites. This SERVICE has no control over and assumes no responsibility for the content, privacy policies, or practices of any third-party sites or services.\n\n7. Third-Party Images\n\nThis SERVICE contains images that are copyrighted by third-parties. Specifically, this app includes a copy of the logos of GitHub, Inc and Wikidata, trademarked by Wikimedia Foundation, Inc. The terms by which the GitHub logo can be used are found on https://github.com/logos, and the terms for the Wikidata logo are found on the following Wikimedia page: https://foundation.wikimedia.org/wiki/Policy:Trademark_policy. This SERVICE uses the copyrighted images in a way that matches these criteria, with the only deviation being a rotation of the GitHub logo that is common in the open-source community to indicate that there is a link to the GitHub website.\n\n8. Content Notice\n\nThis SERVICE allows USERS to access linguistic content (CONTENT). Some of this CONTENT could be deemed inappropriate for children and legal minors. Accessing CONTENT using the SERVICE is done in a way that the information is unavailable unless explicitly known. Specifically, USERS "can" translate words, conjugate verbs, and access other grammatical features of CONTENT that may be sexual, violent, or otherwise inappropriate in nature. USERS "cannot" translate words, conjugate verbs, and access other grammatical features of CONTENT that may be sexual, violent, or otherwise inappropriate in nature if they do not already know about the nature of this CONTENT. SCRIBE takes no responsibility for the access of such CONTENT.\n\n9. Changes\n\nThis POLICY is subject to change. Updates to this POLICY will replace all prior instances, and if deemed material will further be clearly stated in the next applicable update to the SERVICE. SCRIBE encourages USERS to periodically review this POLICY for the latest information on our privacy practices and to familiarize themselves with any changes.\n\n10. Contact\n\nIf you have any questions, concerns, or suggestions about this POLICY, do not hesitate to visit https://github.com/scribe-org or contact SCRIBE at security[at]scri.be. The person responsible for such inquiries is Andrew Tavis McAllister.\n\n11. Effective Date\n\nThis POLICY is effective as of the 24th of May, 2022. Third-party licenses Whose code we used - Custom Keyboard\n• Author: - EthanSK\n• License: MIT\n• Link: - https://github.com/EthanSK/CustomKeyboard/blob/master/LICENSE - Simple Keyboard\n• Author: - Simple Mobile Tools\n• License: GPL-3.0\n• Link: - https://github.com/SimpleMobileTools/Simple-Keyboard/blob/main/LICENSE - The Scribe developers (SCRIBE) built the - iOS application "Scribe - Language Keyboards" (SERVICE) using third party code. All source - code used in the creation of this SERVICE comes from sources that allow its full use in the - manner done so by the SERVICE. This section lists the source code on which the SERVICE was - based as well as the coinciding licenses of each.\n\nThe following is a list of all used - source code, the main author or authors of the code, the license under which it was released - at time of usage, and a link to the license. + Custom Keyboard\n• Author: EthanSK\n• License: MIT\n• Link: https://github.com/EthanSK/CustomKeyboard/blob/master/LICENSE + Simple Keyboard\n• Author: Simple Mobile Tools\n• License: GPL-3.0\n• Link: https://github.com/SimpleMobileTools/Simple-Keyboard/blob/main/LICENSE + The Scribe developers (SCRIBE) built the iOS application "Scribe - Language Keyboards" (SERVICE) using third party code. All source code used in the creation of this SERVICE comes from sources that allow its full use in the manner done so by the SERVICE. This section lists the source code on which the SERVICE was based as well as the coinciding licenses of each.\n\nThe following is a list of all used source code, the main author or authors of the code, the license under which it was released at time of usage, and a link to the license. About Clipboard is empty Copied to clipboard Copy to clipboard Clipboard - Download verb data with the menu below to - start conjugating verbs. + Download verb data with the menu below to start conjugating verbs. Select tense Choose a conjugation below Recently conjugated @@ -170,47 +78,32 @@ Network error: {error} Server error: {code} Download timed out - Add new data to Scribe - Conjugate. + Add new data to Scribe Conjugate. Download verb data - Download data to - start conjugating! + Download data to start conjugating! Verb data - Add new data to Scribe - keyboards. + Add new data to Scribe keyboards. Download keyboard data Language data - {language} conjugate - data is already up to date - {language} conjugate - data downloaded successfully! + {language} conjugate data is already up to date + {language} conjugate data downloaded successfully! All languages - {language} data is - already up to date - {language} data - downloaded successfully! + {language} data is already up to date + {language} data downloaded successfully! Downloading - Already up to - date! + Already up to date! Select data to download Up to date Update Update all - You currently do not have any - Scribe keyboard installed. Please click the Install keyboards button below to install a - Scribe keyboard and then come back to download the needed data. - Change - language - The data - you will download will allow you to translate from {source_language} to {target_language}. - Do you want to change the language you\'ll translate from? - Use - {source_language} + You currently do not have any Scribe keyboard installed. Please click the Install keyboards button below to install a Scribe keyboard and then come back to download the needed data. + Change language + The data you will download will allow you to translate from {source_language} to {target_language}. Do you want to change the language you\'ll translate from? + Use {source_language} Update data Check for new data Regularly update data - Follow the directions below to install - Scribe keyboards on your device. + Follow the directions below to install Scribe keyboards on your device. Open keyboard settings Keyboards Open Scribe settings @@ -221,9 +114,7 @@ Keyboard installation Installation Tutorial chapters - This quick tutorial will show you how to - use Scribe to support writing in your second language.\nMake sure you select the desired - Scribe keyboard by pressing 🌐 when typing. + This quick tutorial will show you how to use Scribe to support writing in your second language.\nMake sure you select the desired Scribe keyboard by pressing 🌐 when typing. Finish tutorial Next Not quite! Try writing {expected_word}. @@ -233,101 +124,66 @@ Verb conjugation Word translation Install keyboards - Settings for the app\'s language and - interface are found here. - Annotate - suggest/complete - Underline - suggestions and completions to show their genders as you type. + Settings for the app\'s language and interface are found here. + Annotate suggest/complete + Underline suggestions and completions to show their genders as you type. Autosuggest emojis - Turn on - emoji suggestions and completions for more expressive typing. - Default emoji skin - tone - Skin tone to - be used - Set a - default skin tone for emoji autosuggestions and completions. - Word for word - deletion on long press - Delete - text word by word when the delete key is pressed and held. + Turn on emoji suggestions and completions for more expressive typing. + Default emoji skin tone + Skin tone to be used + Set a default skin tone for emoji autosuggestions and completions. + Word for word deletion on long press + Delete text word by word when the delete key is pressed and held. Double space periods - Automatically - insert a period when the space key is pressed twice. - Hold for alternate - characters - Select - alternate characters by holding keys and dragging to the desired character. + Automatically insert a period when the space key is pressed twice. + Hold for alternate characters + Select alternate characters by holding keys and dragging to the desired character. Show popup on keypress - Display a - popup of keys as they\'re pressed. - Delete punctuation - spacing - Remove - excess spaces before punctuation marks. + Display a popup of keys as they\'re pressed. + Delete punctuation spacing + Remove excess spaces before punctuation marks. Functionality Play sound on key press - Have the device play a - sound when keys are pressed. + Have the device play a sound when keys are pressed. Vibrate on key press - Have the device vibrate - when keys are pressed. + Have the device vibrate when keys are pressed. Default currency symbol - Symbol for the 123 - keys - Select which - currency symbol appears on the number keys. + Symbol for the 123 keys + Select which currency symbol appears on the number keys. Default keyboard Layout to use - Select a keyboard - layout that suits your typing preference and language needs. - Disable accent - characters - Remove - accented letter keys on the primary keyboard layout. + Select a keyboard layout that suits your typing preference and language needs. + Disable accent characters + Remove accented letter keys on the primary keyboard layout. + Clipboard key on keyboard + Include a key to access the clipboard on the main keyboard. Period and comma on ABC - Include period and - comma keys on the main keyboard for convenient typing. + Include period and comma keys on the main keyboard for convenient typing. Layout Select installed keyboard - You\'ve - changed your source translation language. Would you like to download new data so that you - can translate from {source_language}? - Keep - {source_language} + You\'ve changed your source translation language. Would you like to download new data so that you can translate from {source_language}? + Keep {source_language} Select language - What the source - language is + What the source language is Translation language - Change the - language to translate from. + Change the language to translate from. Translation source language - Settings for the app and installed - language keyboards are found here. + Settings for the app and installed language keyboards are found here. Dark mode - Change the application display - to dark mode. + Change the application display to dark mode. App language Select language for app texts - You only - have one language installed on your device. Please install more languages in Settings and - then you can select different localizations of Scribe. - Only one - device language - Change which language the Scribe - app is in. + You only have one language installed on your device. Please install more languages in Settings and then you can select different localizations of Scribe. + Only one device language + Change which language the Scribe app is in. High color contrast - Increase color contrast - for improved accessibility and a clearer viewing experience. + Increase color contrast for improved accessibility and a clearer viewing experience. Increase app text size - Increase the size of menu - texts for better readability. + Increase the size of menu texts for better readability. App settings Cancel OK - You are selecting a theme that goes - against your system default. Are you sure you want to proceed? + You are selecting a theme that goes against your system default. Are you sure you want to proceed? Theme override Settings Translation From b646b84ece3c525f762966cbbf65531a21cddda0 Mon Sep 17 00:00:00 2001 From: Prince Yadav <66916296+prince-0408@users.noreply.github.com> Date: Mon, 6 Jul 2026 14:16:16 +0530 Subject: [PATCH 2/2] style & fix: update submodule pointer and fix formatting --- .../keyboards/java/be/scri/services/GeneralKeyboardIME.kt | 4 +--- app/src/main/assets/i18n | 2 +- app/src/main/java/be/scri/helpers/KeyboardBase.kt | 1 + app/src/main/java/be/scri/helpers/PreferencesHelper.kt | 5 ++++- app/src/main/res/values/string.xml | 6 ++++-- 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/src/keyboards/java/be/scri/services/GeneralKeyboardIME.kt b/app/src/keyboards/java/be/scri/services/GeneralKeyboardIME.kt index 988790473..4957ac9fb 100644 --- a/app/src/keyboards/java/be/scri/services/GeneralKeyboardIME.kt +++ b/app/src/keyboards/java/be/scri/services/GeneralKeyboardIME.kt @@ -576,9 +576,7 @@ abstract class GeneralKeyboardIME( return isActionSearch || isUriType || hasSearchHint } - override fun isClipboardKeyEnabled(): Boolean { - return PreferencesHelper.getIsClipboardKeyEnabled(this, language) - } + override fun isClipboardKeyEnabled(): Boolean = PreferencesHelper.getIsClipboardKeyEnabled(this, language) private fun loadLanguageData() { val languageAlias = getLanguageAlias(language) diff --git a/app/src/main/assets/i18n b/app/src/main/assets/i18n index 821fedcd1..12cffbc21 160000 --- a/app/src/main/assets/i18n +++ b/app/src/main/assets/i18n @@ -1 +1 @@ -Subproject commit 821fedcd16882ea8e8aa71f30a1ce9ca8d31dbef +Subproject commit 12cffbc2188b1c3c9bc9ed482ebb4fcaea2d9ef9 diff --git a/app/src/main/java/be/scri/helpers/KeyboardBase.kt b/app/src/main/java/be/scri/helpers/KeyboardBase.kt index c46b2e336..d003b436a 100644 --- a/app/src/main/java/be/scri/helpers/KeyboardBase.kt +++ b/app/src/main/java/be/scri/helpers/KeyboardBase.kt @@ -37,6 +37,7 @@ class KeyboardBase { val keyboardLetters: Int fun isSearchBar(): Boolean + fun isClipboardKeyEnabled(): Boolean } diff --git a/app/src/main/java/be/scri/helpers/PreferencesHelper.kt b/app/src/main/java/be/scri/helpers/PreferencesHelper.kt index 4a9e88c8d..88284f498 100644 --- a/app/src/main/java/be/scri/helpers/PreferencesHelper.kt +++ b/app/src/main/java/be/scri/helpers/PreferencesHelper.kt @@ -552,7 +552,10 @@ object PreferencesHelper { /** * Retrieves whether the clipboard key is enabled on the keyboard for a given language. */ - fun getIsClipboardKeyEnabled(context: Context, language: String): Boolean { + fun getIsClipboardKeyEnabled( + context: Context, + language: String, + ): Boolean { val sharedPref = context.getSharedPreferences(SCRIBE_PREFS, Context.MODE_PRIVATE) return sharedPref.getBoolean(getLanguageSpecificPreferenceKey(CLIPBOARD_KEY_ON_KEYBOARD, language), true) } diff --git a/app/src/main/res/values/string.xml b/app/src/main/res/values/string.xml index 6ad214f5b..fd948c0a3 100644 --- a/app/src/main/res/values/string.xml +++ b/app/src/main/res/values/string.xml @@ -147,6 +147,8 @@ Have the device play a sound when keys are pressed. Vibrate on key press Have the device vibrate when keys are pressed. + Clipboard key on keyboard + Include a key to access the clipboard on the main keyboard. Default currency symbol Symbol for the 123 keys Select which currency symbol appears on the number keys. @@ -155,8 +157,8 @@ Select a keyboard layout that suits your typing preference and language needs. Disable accent characters Remove accented letter keys on the primary keyboard layout. - Clipboard key on keyboard - Include a key to access the clipboard on the main keyboard. + Floating key on keyboard + Include a key to float the keyboard UI on the main keyboard. Period and comma on ABC Include period and comma keys on the main keyboard for convenient typing. Layout