The elimu.ai software is architected such that a collection of infrastructural and educational Android apps can be re-used across a variety of languages. One webapp can be configured per language for hosting the educational content:
A list of the currently supported languages is available at https://github.com/elimu-ai/model/blob/main/src/main/java/ai/elimu/model/v2/enums/Language.java
When adding support for a new language to the elimu.ai platform, there are two types of activities that need to be handled:
- Software Engineering: Add support for the new language to the code (webapp & Android apps/games)
- Content Creation: Add the educational content for the new language (using the webapp)
When adding support for a new language, there are 6 infrastructure components that need to be updated:
Component | Description |
---|---|
model | A library of common Java classes shared amongst the webapp and appstore |
webapp | Web application for uploading and hosting Android apps and educational content |
appstore | Android Appstore application for downloading apps to Android devices and installing them |
launcher | Android application providing a structured path when accessing the educational apps |
content-provider | Android application which downloads educational content from the webapp's REST API to the device and provides it to other apps |
analytics | Android application which collects usage activity from the educational apps and uploads it to the webapp's REST API |
Perform the following steps in order to add a new language:
1. model: Add the Language Code to the List of Supported Languages
Time estimate: 30-60 minutes
- Add the country code to https://github.com/elimu-ai/model/blob/main/src/main/java/ai/elimu/model/v2/enums/Language.java
- Create a pull request for your changes (see example).
- Once your changes have been approved, the model library will be released with a new version number which can be found at https://github.com/elimu-ai/model/blob/main/README.md#usage.
2. webapp: Update the Model Library in the Webapp to the Latest Version
Time estimate: 1-2 hours
- The webapp needs to update its model dependency version to get access to use the newly added Language enum.
- Adjust the model version in pom.xml by updating the
<model.version>
attribute (see example). - Add Subdomain for the New Language
- Next, we need to configure a subdomain for the new language, e.g. https://hin.elimu.ai for Hindi.
- This subdomain will be used when visitors want to navigate the webapp using another content language than the default English. Also, the appstore Android application will be using this subdomain when downloading applications and content for the new language. Similarly, the analytics Android application will be uploading usage data to the same subdomain.
- To initiate this domain and server configuration, notify us via [email protected] or in the Community Chat 👋🏽.
...
...
Tip
Also see Creating Localizable Learning Apps (by Curious Learning).
- Adding Letters [TODO]
- Adding Sounds [TODO]
- Adding Letter-Sound Correspondences [TODO]
- Adding Words
- Adding Numbers [TODO]
- Adding Storybooks [TODO]
- Adding Videos [TODO]
elimu.ai - Free open-source learning software for out-of-school children ✨🚀
Website 🌐 • Wiki 📃 • Projects 👩🏽💻 • Milestones 🎯 • Community 👋🏽 • Support 💜