Language + Translation

Legends of Learning users speak multiple languages and we require games to be multi-lingual.

Practically, 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 than 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.

{ "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

  • _meta with maxChars key/value each language key

  • en english

Note: The language file should be formatted as seen above. Using an array structure will not be accepted.