Profile
Name: Marcel Mehl
Email: marcelmehl123@gmail.com
GitHub: https://github.com/Jag-Marcel
Location: Germany
Typical working hours: 8am to 10pm (UTC +2), whenever I don't have Uni
Synopsis
1. Translation for other languages
The Project focuses on an iOS keyboard app aimed at language learners, that lets you translate or conjugate words in foreign languages. Currently, users can only translate from English into their target language; the goal is for the user to be able to choose from a multitude of languages to make the keyboard more accessible to language learners around the world.
This language would be applied to all keyboards belonging to the project. The user selects his native language in the app and can use the corresponding keyboard for translating into every other language.
At first, the focus will be to implement this feature for the languages Scribe already has keyboards for. Later on, more keyboards could be added that don’t have any Scribe functionality and only serve this feature (e.g. Arabic, Japanese). For languages written right to left (like Arabic) the app and Scribe components on the keyboard would be mirrored accordingly.
Example of the current system:
2. Generalizing and crowdsourcing app localization
Another focus would be for the localization inside the app to be controlled independently of the main repositories’ files by using JSON file references. It should take in account the user’s system language and use it as the default. The localization files would be specified in the Scribe-i18n repository, which would function as a git subtree for all Scribe applications (iOS, Android and Desktop).
Diagram of how it would work in the planned Scribe architecture:
Once this system is set up, more languages could be added by adopting a crowd translation tool like Transifex, Crowdin or Weblate, to make the process more easy and quick, as well as to make the translations more accurate. Mentors and other members of the team could volunteer to do translation in languages they speak as well.
3. Additional plans
Additionally, some smaller quality of life changes are planned. Currently, the Scribe button only functions by pressing it and entering a word to translate or conjugate afterwards. The plan is to let the user highlight a word and press the Scribe button to conjugate the word after it was already typed. How this functions in detail will have to be determined by testing different versions within the team. Another addition could be correcting a word’s article easier or even automatically in languages like German.
Lastly, more keyboards with Scribe functionality could be added to the app, ideally in cooperation with native or fluent speakers.
- Mentors: @AndrewTavis, @Henrikt93, @wkyoshida
Deliverables
Reports
Timeline
May:
- Onboarding within the community bonding period
Week 1:
- Prepared text in main app for localization
- Finished up previous issue regarding missing conjugations
- Updated deployment target to iOS 15
- Implemented scripts to convert between JSON files and Swift’s string catalogs
Week 2:
- Finalized design of Localization within the iOS app
- Started work on settings in the app to change translation languages (WIP)
- Added GitHub action to automatically update iOS localizations file if general localization files are updated
- Decided on a platform and process to crowdsource localizations (Weblate)
Week 3:
- Finished up i18n scripts and fixed GitHub action
- Set up Weblate to be ready for localization work
- Completed German localization
- Worked on the button in the app settings
Week 4:
- Did minor fixes and changes to some PRs and scripts to get them merged / fix the localization process [ 1 | 2 | 3 ]
- Had a call about the problems I'd been having and decided a more detailed plan to go forward
Week 5:
- Edited existing buttons in settings to be able to show sublabels on the right side
- Started work on a new button for radio selection
- Created new page in the storyboard file to show radio selection view
Week 6-7:
- Break due to exams
Week 8:
- Finished the radio button's cell and imported designs for radio icon
- Added view to settings for a radio selection for a translation language
Week 9:
- Tried to fix GitHub action for i18n repo, though it didn't seem to work
- Added functionality to the new selection view [ 1 | 2 | 3 ]
- Made rudimentary changes to translation fetching to prepare to integrate new translation tables
Week 10:
- Edited code to fix localization generation
- Mostly finished on adding back the English keyboard, but currently without sqlite tables
- Had a call with mentors to help with this
- Mostly finished new feature to enter highlighted text into Scribe commands automatically
Week 11:
- Discussed on implementation of a new method to create conditional workflow for the broken GitHub action
- Decided in a dev sync on going directly to the command's results, for the behaviour of propagating highlighted text into Scribe commands
Week 12:
- Changed behaviour of selecting a Scribe command when highlighting text to the agreed behaviour
- Finished up English keyboard using newly added English language tables
- Refactored Scribe-i18n to account for new Android localization, changed up conversion scripts for iOS to use Python's json package and edited workflow to use different GitHub action filter
Week 13:
Participation
I communicate with my mentors on the project's matrix space and would publish my code on its GitHub repository. We have also been doing bi-weekly meetings on Saturdays, and my mentors have made it clear that they can be available for calls when needed. More specific communications can also happen on GitHub issues and pull requests.
About Me
I am in my first year of BSc Computer Science at the Carl von Ossietzky University of Oldenburg. I heard about the GSoC program from my project mentor's recommendation. I will make this project my top priority besides my second semester, but I might not be as active during exams season and the like.
As a learner of four different languages throughout my life, this project's mission to make language learning more convenient in day-to-day situations really spoke to me, and I've been looking to work on it since I heard about it on GitHub. I am excited by the possibility that I can connect my passions for coding and languages in this way to make language learning easier for everyone.
Technical Knowledge
As part of High School and University education, I’ve had experience in Java programming, algorithms and data structures, as well as object-oriented programming and databases.
Past Experience
I've finished the following tasks regarding the project:
and am currently working on the following:
- https://github.com/scribe-org/Scribe-iOS/pull/408
- https://github.com/scribe-org/Scribe-iOS/issues/400
This gave me a fairly good understanding of the Scribe-iOS code base and helped me understand SwiftUI and working on iOS better.
I've worked a little on a previous project using Swift as well:
This gave me an introduction to the programming language and its working environment, as well as doing front-end work for the first time.
Benefits to Wikimedia
Scribe relies on Wikidata for its lexeme data (e.g. for conjugation), so developing it for higher accessibility would serve to reach many more users. This would show the potential of Wikidata as a data source for applications.



