Legends of Learning users speak multiple languages, and we require games to be multilingual.
Practically, this means:
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:
Note: The language file should be formatted as seen above. Using an array structure will not be accepted. There should be no nested objects, and only single-level key values should be used. Below is an example of a JSON line that will not read with TTS (Text to Speech), and the correct way to structure the same code to work for TTS.
{
//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",
}
}