Document context for translatable user interface strings in Kolibri
GSoD 2021 organization proposal - Learning Equality
About GSoD 2021 Kolibri project
LE members supporting writers during the GSoD project
Learning Equality (LE) is a non-profit organization based in the United States that creates and supports tools to enable equitable access to high-quality educational opportunities, with an emphasis on supporting effective education technology interventions in low-connectivity contexts. Learning Equality’s work emerged out of the recognition that the same global populations that have the least access to quality education also have the least access to the growing wealth of learning resources available online.
We work closely to co-design the product with a core network of collaborators, including national NGOs, UN agencies, government, and corporate partners, while also taking a needs-based approach to its development through insights gathered from Kolibri’s global user community. Through its do-it-yourself adoption model and strategic collaborations, Kolibri has reached learners and educators in more than 205 countries and territories.
Launched in 2017, Kolibri is an end-to-end suite of open-source tools, content, and DIY support materials, designed for offline-first teaching and learning. Centered around an offline learning platform that runs on a variety of low-cost and legacy devices, Kolibri Kolibri Product Ecosystem also includes a curricular tool, a library of open educational materials, and a toolkit of resources to support training and implementation. These tools are available in a variety of languages, to better support learners and educators globally.
After successful participation in the first edition of GSoD in 2019, and two projects during the 2020 edition, this year we are again eager to welcome tech writing contributions through the Google Season of Docs program.
In the previous editions, GSoD writers worked on projects supporting various documentation needs for the end users, external partners and implementers, as well as to support internal guidelines such as style and contributor guides. This year we decided to start an exciting new documentation project to support the Kolibri internalization (i18n) process.
Core to executing LE mission is the ability to support the varied learning needs of the underserved populations in their own local languages, and for that reason we also often rely on translations by volunteers and grassroot crowdsourced contributions, instead of the professional localization services.
We use the Crowdin platform for the localization of several projects in the Kolibri Product Ecosystem. Crowdin offers two important features to aid translators to better understand the meaning and setting where each of the strings is located in the Kolibri user interface (UI), in order to provide the best possible translation for terms and phrases that users see:
Without context, when translators do not fully understand a word or a phrase that appears in the Kolibri UI, they have the option to raise an issue with the LE’s i18n team, and ask for support to comprehend the string in order to provide the most appropriate translation. The main purpose of providing Context on Crowdin is to enable an optimal translation experience (even by non-professional translators), decrease the number of support questions and issues, and ultimately provide better user experience in localized versions of Kolibri.
The easiest way to envision the writing tasks needed for this project is to think how to describe and explain the function of an UI element (or a message) presented to the user, while adding some complementary information for the translators.
Currently all the new strings that are introduced in Kolibri go through the i18n audit process during which we write the context for strings, that is later added to the codebase for the new features. However, there are a lot of legacy strings that do not have a complete context included in Crowdin, and that can still create doubts during the translation stage, particularly for the first translation in a new language. The purpose of this GSoD project is to remediate that by adding descriptions (context) for these legacy user interface (UI) strings, to decrease the number of support requests by the translators and ensure better consistency across translations.
Before the GSoD Doc development phase begin, LE i18n team will audit these legacy strings and divide them into P0 (must-have; Priority 0) and P1 (nice-to-have; Priority 1) categories, taking into account these criteria:
To give a sense of scope, the Kolibri Learning Platform version 0.14 has 1,840 user-facing strings, of which around 1,750 are legacy strings that lack proper context.
After the onboarding, GSoD tech writer will start documenting the context for P0 legacy UI strings. Taking into account these criteria, our current estimate is that approximately 75% of the Kolibri Learning Platform UI strings on Crowdin fall into the P0 category.
Crowdin total | strings | hours | strings | hours | |
Phase I - Onboarding | 24 | ||||
P0 (~75%) | P1 (~25%) | ||||
Phase II (core user- and learner-facing strings) | |||||
kolibri.core.default_frontend-messages.csv | 351 | 281 | 70 | ||
kolibri.plugins.demo_server.main-messages.csv | 9 | 9 | |||
kolibri.plugins.user.app-messages.csv | 52 | 52 | |||
kolibri.plugins.learn.app-messages.csv | 89 | 89 | |||
media viewer plugins (epub, pdf, h5p, html, video, etc.) | 66 | 66 | |||
kolibri_exercise_perseus_plugin.main-messages.csv | 147 | 74 | 74 | ||
Subtotal | 714 | 570 | 95 | 144 | 24 |
Phase III (coach user-facing strings) | |||||
kolibri.plugins.coach.app-messages.csv | |||||
Subtotal | 527 | 395 | 64 | 142 | 24 |
Phase IV (admin user-facing strings) | |||||
kolibri.plugins.facility.app-messages.csv | 199 | 159 | 40 | ||
kolibri.plugins.setup_wizard.app-messages.csv | 60 | 48 | 12 | ||
kolibri.plugins.device.app-messages.csv | 285 | 228 | 57 | ||
django.po (backend) | 55 | 28 | 28 | ||
Subtotal | 599 | 463 | 77 | 136 | 23 |
Total Phases I-IV | 1418 | 260 |
Radina Matic - Main PoC and Project Coordinator
Carine Diaz - LE Internalization Lead
Jacob Pierce - Full Stack Developer
Crowdin platform tracks and stores a very detailed activity data for all the changes in source strings, translations and the string context. We can export that data to obtain metrics for day-to-day progress of the writer as they document the context of the strings.
Item | Amount | Notes |
Technical writer documents context for legacy UI strings to decrease support requests by translators and ensure consistency across translations | $13,000 | This is based on an estimated 260 hours required for technical writing at an estimated rate of $50/hour. This may change slightly depending on the actual number of hours required and the actual rate of the technical writer who LE hires. |
LE mentor support | $1,500 | $500 each to support the 3 LE team member mentors supporting this project |
Project swag | $200 | Swag for technical writer and volunteer mentors (may include t-shirts, stickers, water bottles) |
TOTAL | $14,700 |
The LE team has already welcomed and supported GSoD writers in contributing to its work, and successfully completed 3 projects in the previous years. The LE Project Coordinator brings more than 15 years of cross-experience in technical documentation, localization and QA across several domains (business, academy, open source) in 4 countries.
As another example of LE's efforts to make projects available to like-minded individuals and providing the needed mentorship and guidance along the way, year 2015 was the first time the organization participated in the Google Summer of Code program, and was recently accepted to welcome GSoC student developer interns again in 2021.