WIP port of Scribe-iOS: see Issues
Scribe-Android is a pack of Android keyboards for language learners. Features include translation (beta)
, verb conjugation and word annotation that give users the tools needed to communicate with confidence.
Scribe is fully open-source and does not collect usage data or ask for system access. Feature data is sourced from Wikidata and stored in-app, meaning Scribe is a highly responsive experience that does not require an internet connection.
The contributing section has information for those interested, with the articles and presentations in featured by also being a good resource for learning more about Scribe.
Also available on iOS and Desktop (planned).
- Preview Images
- Contributing
- Setup
- Supported Languages
- Keyboard Features
- Language Practice
- Featured By
Preview Images ⇧
Contributing ⇧
Work that is in progress or could be implemented is tracked in the issues and projects. Please also see the contribution guidelines if you are interested in contributing to Scribe-Android. Those interested can further check the -next release-
and -priority-
labels in the issues for those that are most important, as well as those marked good first issue
that are tailored for first time contributors.
- Reporting bugs as they're found 🐞
- Working on new features ✨
- Localization for the app and Google Play 🌐
- Documentation for onboarding and project cohesion 📝
- Adding language data to Scribe-Data via Wikidata! 🗃️
Scribe does not accept direct edits to the grammar JSON files as they are sourced from Wikidata. Edits can be discussed and the Scribe-Data queries will be changed and ran before an update. If there is a problem with one of the files, then the fix should be made on Wikidata and not on Scribe. Feel free to let us know that edits have been made by opening a data issue or contacting us in the issues for Scribe-Data and we'll be happy to integrate them!
Setup ⇧
Users access Scribe language keyboards through the following:
- Open the app and press
Enable Keyboard
- Or: Settings -> System -> Languages & input -> On-screen keyboard -> Manage on-screen keyboards
- Choose from the available Scribe language keyboards
- When typing press
🌐
or the keyboard button to select keyboards
Supported Languages ⇧
Scribe's goal is functional, feature-rich keyboards for all languages. Check scribe_data/extract_transform for queries for currently supported languages and those that have substantial data on Wikidata.
The following table shows the supported languages and the amount of data available for each on Wikidata:
Languages | Nouns | Verbs | Translations* | Adjectives† | Prepositions‡ |
---|---|---|---|---|---|
French | 16,374 | 1,506 | 67,652 | - | - |
German | 28,948 | 3,469 | 67,652 | - | 187 |
Italian | 4,163 | 73 | 67,652 | - | - |
Portuguese | 5,112 | 495 | 67,652 | - | - |
Russian | 194,401 | 11 | 67,652 | - | 12 |
Spanish | 23,269 | 3,783 | 67,652 | - | - |
Swedish | 42,016 | 4,274 | 67,652 | - | - |
*
Given the current beta
status where words are machine translated.
†
Adjective-preposition support is in progress (see iOS issue).
‡
Only for languages for which preposition annotation is needed.
Updates to the above data can be done using scribe_data/load/update_data.py.
Keyboard Features ⇧
Keyboard features are accessed via the Scribe key
at the top left of any Scribe keyboard. Pressing this key gives the user three new selectable options: Translate
, Conjugate
and Plural
in the keyboard's language. These keys allow for words to be queried and inserted into the text field followed by a space.
Current features include:
• Translation ⇧
The beta
Translate
feature can translate single words or phrases from English into the language of the current keyboard when the return
key is pressed.
As of now translations are not widely available on Wikidata (see iOS issue). The current functionality is thus based on 🤗 Transformers machine translations of words queried from Wikidata. The ultimate goal is for the translations and synonyms to all be directly queried.
• Verb Conjugation ⇧
With the Conjugate
feature, a user is presented with the grammar charts for an entered verb instead of the keyboard. Pressing an example in the charts inserts the chosen conjugation into the text field.
• Noun Plurals ⇧
The Plural
feature allows a user to enter a noun and then insert its plural into the text field when the return
key is pressed.
• Word Annotation ⇧
Scribe further annotates words in the command bar to help users understand the context of what they're typing. Annotations are displayed once a user has typed a given word and pressed space or by pressing the Scribe key
while it is selected. The hope is that annotation will help a user remember grammar rules even when not using Scribe.
Scribe annotates nouns in the command bar according to the following conventions:
- Feminine: colored red 🟥 and marked with (F)
- Masculine: colored blue 🟦 and marked with (M)
- Common: colored purple 🟪 and marked with (C)
- Neutral: colored green 🟩 and marked with (N)
- Plural: colored orange 🟧 and marked with (PL)
- More than one: marked with all their forms
The above form abbreviations are translated into their equivalents in the keyboard's language.
Scribe also annotates the grammatical cases (accusative, dative, etc) of prepositions in the command bar if there is a relation in the given language.
• Base Functionality ⇧
The goal is for Scribe to have all the functionality of system keyboards. See the Base Keyboard Features project if interested in helping.
Current features
- Dynamic layouts for cross-device performance
- Dark mode compatibility (WIP - see issue)
- Auto-capitalization following
.
,?
and!
- The double space period shortcut (WIP - see issue)
- Typing symbols and numbers followed by a space returns keyboard to letters
- Hold-to-select characters for letters and symbols
- Key pop up views for letters and symbols
Language Practice ⇧
A future feature of Scribe is language practice within the app itself. Scribe presents users with information that is directly relevant to their current struggles with a second language. This information can be saved in-app and used to create personalized lessons such as flashcards to reinforce the information that Scribe has provided.
Featured By ⇧
Articles and Presentations on Scribe
2022
- Presentation slides for a talk with CocoaHeads Berlin
- Video on Scribe for Wikimedia Celtic Knot 2022
- Presentation slides for a talk with the LD4 Wikidata Affinity Group
- Scribe featured for new developers on MediaWiki
- Presentation slides for Wikimedia Hackathon 2022
- Blog post on Scribe-iOS for Wikimedia Tech News (DE / Tweet)
- Presentation slides for Wikidata Data Reuse Days 2022
List of referenced codes