Skip to content

RishiKumarRay/Scribe-iOS

 
 

Repository files navigation

Scribe Logo

platforms version issues Swift 5 license coc

Available on the App Store

Language learning keyboards for iOS

Scribe-iOS is a pack of iOS and iPadOS 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.

Contents

Preview Videos

The following are combined preview videos for the App Store:

iPhone 6.5" version

Scribe_iPhone65.mp4

See also

iPad Pro 4th gen version

Scribe_iPadPro4th.mp4

The App Store videos, images and text can be found in Resources/AppStore. Contributions to improve them are welcome, but please open an issue to check before.

Supported Languages

Scribe's goal is functional, feature-rich keyboards for all languages. Check Scribe-iOS/Data for queries for currently supported languages and those that have substantial data on Wikidata. Also see the new keyboard label in the Issues for keyboards that are currently in progress or being discussed, and suggest a new keyboard if you don't see it being worked on already!

The following table shows the supported languages and the amount of data available for each on Wikidata:

Languages Nouns Verbs Translations Adjectives Prepositions
French 15,721 1,241 67,609 - -
German 27,678 3,126 67,609 - 189
Portuguese 4,549 188 67,609 - -
Russian 194,385 11 67,609 - 12
Spanish 8,323 93 67,609 - -
Swedish 41,170 4,133 67,609 - -

* Given the current beta status where words are machine translated.

Adjective-preposition support is in progress (see issue).

Only for languages for which preposition annotation is needed.

Updates to the above data can be done using Data/update_data.py.

Setup

Users access Scribe language keyboards through the following:

  • Download Scribe from the App Store
  • Settings -> General -> Keyboard -> Keyboards -> Add New Keyboard
  • Select Scribe and choose from the available language keyboards
  • When typing press 🌐 to select keyboards

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.

Those interested in improving this feature can see the Translation project. The goal is that Translate will provide options for entered words where a user can use grammatical categories and synonyms to select the best option (see issue). Then the feature will expand to allow translations from system and chosen languages. More advanced methods will be planned once this feature is out of beta.

As of now translations (P5972, Q7553) are not widely available on Wikidata (see 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 preview 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.

Nouns

Scribe annotates nouns in the preview 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.

Prepositions

Scribe also annotates the grammatical cases (accusative, dative, etc) of prepositions in the preview bar if there is a relation in the given language.

• 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

  • iPhone and iPad support
  • Dynamic layouts for cross-device performance
  • Portrait and landscape modes
  • Dark mode compatibility
  • Autocompletion and correction (WIP - see Autocomplete and Autocorrect issues)
  • Auto-capitalization following ., ? and !
  • The double space period shortcut
  • Typing symbols and numbers followed by a space returns keyboard to letters
  • Hold-to-select characters for letters and symbols (WIP - see project)

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. Work on this feature will be completed in the language practice project.

Contributing

Work that is in progress or could be implemented is tracked in the Issues and Projects. Please see the contribution guidelines if you are interested in contributing to Scribe-iOS. Also 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.

Ways to Help

Data Edits

Scribe does not accept direct edits to the grammar JSON files as they are sourced from Wikidata. Edits can be discussed and the queries themselves 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 and we'll be happy to integrate them!

Powered By


Wikidata

Packages

No packages published

Languages

  • Swift 71.3%
  • Python 28.7%