Source is under MIT license. Texts, images and audio files are under CC BY-NC 4.0 license.
This repository is for opening our data files to #opensource community. Our applications copy the data files as needed.
Our data is created and updated in Airtable (Phrases and Categories, login required).
We are providing translations from Ukraine to given languages
Language | Dictionary | Alphabet |
---|---|---|
Ukraine (uk) | ✅ | ✅ |
Czech (cs) | ✅ | ✅ |
Slovak (sk) | ✅ | ✅ |
Polish (pl) | ✅ | ✅ |
English (en) | 🆘 | 🆘 |
What to add new language? Contact us at [email protected]
We have developed some tools to help us automate boring stuff using nodejs scripts written in Typescript.
At first install all dependencies.
npm install
- We need to convert out Typescript code to nodejs Javascript using
ts-node
npm run build
Build oncenpm run watch
Build on changes
- We need to ensure same style of code using
npm run lint
- You can set environment variables by creating a
.env
file according to.env.example
. - You can also use run configurations (PHPStorm or any other IDE). Set the environment in GUI and do not store the file to the repository.
- Alternatively, you can set environment variables using the command line:
export AIRTABLE_API_KEY=YOUR_SECRET_API_KEY
export AZURE_SUBSCRIPTION_KEY=KEY
export AZURE_REGION=REGION
#export DEBUG=true
For showing debug logs use DEBUG=true environment (in file or by passing to cli)
npm run build:dictionary
npm run build:alphabet
- Go to Actions / Build from AirTable
- Pres
Run workflow
on the right side above "workflow runs table" button and selectmain
branch andRun workflow
- If you change the file structure (breaking changes), you must release a new version of
team.json
,example:team.vX.json
. - If you added new property in
team.json
you have to adjust team.schema.json. - If the changes contains only new additions (new name, new section) then we do not need to update the clients so no need of new version
The movapp website and apps have a separate vocabulary section for children (and a memory game). Phrases for these sections are stored the same way as any other phrase category. Use the recSHyEn6N0hAqUBp
category id to retrieve the Kid's section phrases.
The idea is to manage stories in central repository that will be automatically distributed to client apps without any dev cost (just reviewing the PR).
- Create new folder in
data/stories
folder. The name of the folder is a URL slug of the story.- In this folder add all story MP3s named by a language code:
uk.mp3
,cs.mp3
,pl.mp3
and more. - Generate the
metadata.json
file, you can usestories_transformer.rb
for now, just open command line and typeruby stories_transformer.rb path_to_web_file
and move the file to this folder and rename it tometadata.json
- In this folder add all story MP3s named by a language code:
- Add your story to the
data/stories/metadata.json
- Add new folder into
data/images/apple
ordata/images/android
folder the name is the same as the URL slug of the story.- For apple use @1, @2, and @3 images (you can use resizer)
- For Android you have to use
webp
file.