<aside> 📃 TABLE OF CONTENTS

Payment and IP

Find Available Slots and Earnings Projections Here

Submitting Slot Selections

Game Design Document (GDD)

Timeline Overview

Eligibility to Take More Slots

Quarterly Game Marketplace Review

Tutorial Videos

3rd-party IP Licenses

Additional Resources

FAQ

</aside>

Legends of Learning users may speak multiple languages, and we require games to be multilingual.

This means:

  1. Storing game text in a separate data file (JSON) and uploading it during game submission.
  2. Subscribing and receiving a language payload during game initialization.

Important: Language selection will happen outside the game, via teacher or student settings. A game needs to handle multiple languages, but only one language will be passed in at a time.

In the StartGame payload, the language is specified. Use this to select a font.

{"languageCode": "en"}

The language payload contains keys and values for a single language. Each language must have an identical corresponding key name, and each key must have a name.

{"welcome": "myText"}

For development, you can use a multi-language file like this. Use the languageCode key from your StartGame handler to call the LanguageDefsReceived with the key, in pseudocode:

language[startKey]['languageCode'].

Unity developers can reference the Example Project's Loader.cs for more examples.

{
  "_meta": {
    "maxChars": {
       "welcome": 50
     }
   },
   "en": {
     "welcome": "Welcome"
   }, 
   "es": {
     "welcome": "Bienvenido"
   }
 }

This file is also used in game upload. The minimum required keys are:

Language Code Testing Characters
Creole - Haiti ht è ò à
Creole - Louisiana lou è ò à
French - Canada fr-CA à â ä é è ê ë î ï ô ö ù û ü ÿ ç œ æ
French - France fr-FR à â ä é è ê ë î ï ô ö ù û ü ÿ ç œ æ
German de ä ö ü ß ẞ
Italian it à è é ì í î ò ó ù
Portuguese - Brazil pt-BR ã õ â ê ô á é í ó ú à ç
Portuguese - Portugal pt-PT ã õ â ê ô á é í ó ú à ç
Turkish tr ç ğ ı İ ö ş ü
Russian ru А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я А́ Е́ И́ О́ У́ Ы́ Э́ Ю́ Я́ а́ е́ и́ о́ у́ ы́ э́ ю́ я́
Spanish - Latam es á é í ó ú ñ ü ¿ ¡
Spanish - Spain es-ES á é í ó ú ñ ü ¿ ¡
Ukrainian uk А Б В Г Ґ Д Е Є Ж З И І Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ю Я а б в г ґ д е є ж з и і й к л м н о п р с т у ф х ц ч ш щ ь ю я А́ Е́ И́ І́ О́ У́ Ю́ Я́ а́ е́ и́ і́ о́ у́ ю́ я́
Vietnamese vi ằ ẳ ẵ ặ ẩ ẫ ậ ề ể ễ ệ ố ồ ổ ỗ ộ ờ ở ỡ ợ ử ữ ự ỳ ỷ ỹ ỵ đ Đ

Testing and Quality Assurance

Here are some examples of games with rendering issues:

image.png

image.png

{
//Incorrect structure, wont play TTS
    "en": {
        "FullTutuorial": {
            "0": "Welcome",
            "1": "This is the tutorial", 
            }
// Correctly structured version, will play TTS
    "en": {
        "FullTutorial_0":"Welcome to the game!",
        "FullTutorial_1":"This is the tutorial",
        }
}

Downloading Edited JSON File from LoL reviewers

If you download a language.json from legends and need the key order fix, use this tool locally with your source language.json file.

Locally host this from the directory you have the json-order.html file:

json-order.html

python3 -m http.server http://localhost:8000/json-order.html

Select your source language.json (your key order from your project) the target, the one downloaded from legends (with or without translation, may contain grammar, spelling, smart quote fixes)

It will reorder the legends json and save.