Skip to content

Commit

Permalink
Merge branch 'pr/1525' into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
Lionel Laské committed Feb 16, 2024
2 parents 5cb6b44 + c206340 commit 7263b0d
Show file tree
Hide file tree
Showing 23 changed files with 684 additions and 5,141 deletions.
1 change: 0 additions & 1 deletion activities/FoodChain.activity/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
<head>
<title>Food Chain Activity</title>
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, viewport-fit=cover"/>
<link rel="prefetch" type="application/l10n" href="locale.ini" />
<link rel="stylesheet" media="not screen and (device-width: 1200px) and (device-height: 900px)"
href="lib/sugar-web/graphics/css/sugar-96dpi.css">
<link rel="stylesheet" media="screen and (device-width: 1200px) and (device-height: 900px)"
Expand Down
10 changes: 8 additions & 2 deletions activities/FoodChain.activity/js/activity.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@


define(["sugar-web/activity/activity","webL10n","sugar-web/graphics/radiobuttonsgroup","sugar-web/datastore","tutorial", "sugar-web/env"], function (activity, _l10n, radioButtonsGroup, datastore, tutorial, env) {
l10n = _l10n;
define(["sugar-web/activity/activity","l10n","sugar-web/graphics/radiobuttonsgroup","sugar-web/datastore","tutorial", "sugar-web/env"], function (activity, _l10n, radioButtonsGroup, datastore, tutorial, env) {
var app = null;
l10n = _l10n

// Manipulate the DOM only when it is ready.
requirejs(['domReady!'], function (doc) {
Expand All @@ -16,14 +16,17 @@ define(["sugar-web/activity/activity","webL10n","sugar-web/graphics/radiobuttons
document.getElementById("fr-button")]
);
document.getElementById("en-button").onclick = function() {
l10n.init("en");
l10n.language.code = "en";
FoodChain.setLocale();
};
document.getElementById("fr-button").onclick = function() {
l10n.init("fr");
l10n.language.code = "fr";
FoodChain.setLocale();
};
document.getElementById("pt_BR-button").onclick = function() {
l10n.init("pt_BR");
l10n.language.code = "pt_BR";
FoodChain.setLocale();
};
Expand All @@ -42,8 +45,10 @@ define(["sugar-web/activity/activity","webL10n","sugar-web/graphics/radiobuttons
var language = environment.user ? environment.user.language : defaultLanguage;
if (language == 'fr' || language == 'en') {
l10n.language.code = language;
l10n.init(language);
} else if (language == 'pt') {
l10n.language.code = "pt_BR";
l10n.init("pt_BR");
}

// Init sound component
Expand Down Expand Up @@ -71,6 +76,7 @@ define(["sugar-web/activity/activity","webL10n","sugar-web/graphics/radiobuttons
FoodChain.setLocale();
}
};
localized_received(); //invoke to init the app
window.addEventListener('localized', localized_received, false);

// Stop sound at end of game to sanitize media environment, specifically on Android
Expand Down
2 changes: 1 addition & 1 deletion activities/FoodChain.activity/l10n.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Localization API

var l10n;
var l10n; //loaded by activity.js


// Localization function
Expand Down
3 changes: 3 additions & 0 deletions activities/FoodChain.activity/lib/axios.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions activities/FoodChain.activity/lib/i18next.min.js

Large diffs are not rendered by default.

55 changes: 55 additions & 0 deletions activities/FoodChain.activity/lib/l10n.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
define(['i18next.min', 'axios.min'], function (i18next, axios) {
const l10n = {language: {direction: "ltr"}};

l10n.init = async (lang) => {
await i18next.init({
lng: lang,
fallbackLng: "en",
resources: {}
}).then(() => {
l10n.language.direction = i18next.dir();
l10n.switchTo(lang);
});
};

l10n.get = (key, parameter) => {
return i18next.t(key, parameter);
};

l10n.loadLanguageResource = (lang) => {
return new Promise((resolve, reject) => {
axios.get("./locales/" + lang + ".json").then((response) => {
resolve(response.data);
}).catch((error) => {
console.log("Failed to load " + lang + " language: " + error);
resolve(null); // Resolve with null to indicate failure
});
});
};

l10n.switchTo = (lang) => {
if (!i18next.hasResourceBundle(lang, "translation")) {
console.log("Loading " + lang + " language");
l10n.loadLanguageResource(lang).then((locales) => {
if (locales !== null) {
i18next.addResourceBundle(lang, "translation", locales);
i18next.changeLanguage(lang);
triggerLocalizedEvent();
} else {
l10n.init("en");
}
});
} else {
i18next.changeLanguage(lang);
triggerLocalizedEvent();
}
};


function triggerLocalizedEvent() {
const event = new Event("localized");
window.dispatchEvent(event);
};

return l10n;
});
Loading

0 comments on commit 7263b0d

Please sign in to comment.