Skip to content

Latest commit

 

History

History
102 lines (72 loc) · 5.64 KB

LOCALIZATION.md

File metadata and controls

102 lines (72 loc) · 5.64 KB

elimu.ai Localization 🔠

Software Architecture

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:

Software Architecture

Currently Supported Languages

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

How to Add Support for a New Language

When adding support for a new language to the elimu.ai platform, there are two types of activities that need to be handled:

  1. Software Engineering: Add support for the new language to the code (webapp & Android apps/games)
  2. Content Creation: Add the educational content for the new language (using the webapp)

Introduction

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

Update Infrastructure Apps: Step-by-Step Guide

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

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 👋🏽.

Update Existing Educational Apps/Games: Step-by-Step Guide

...

Upload New Educational Apps/Games: Step-by-Step Guide

...

Add Educational Content: Step-by-Step Guide

  • 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 💜