Skip to content

Commit

Permalink
Merge branch 'pr/1502' into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
Lionel Laské committed Jan 20, 2024
2 parents 93ec36f + 9b3ff2f commit 9ac23f9
Show file tree
Hide file tree
Showing 21 changed files with 91 additions and 1,176 deletions.
1 change: 0 additions & 1 deletion activities/GetThingsDone.activity/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
<meta charset="utf-8" />
<title>Get Things Done 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
2 changes: 1 addition & 1 deletion activities/GetThingsDone.activity/js/activity.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
define(["sugar-web/activity/activity","webL10n","sugar-web/datastore","activity/model","activity/view","activity/controller"], function (activity, webL10n, datastore, model, view, controller) {
define(["sugar-web/activity/activity","l10n","sugar-web/datastore","activity/model","activity/view","activity/controller"], function (activity, l10n, datastore, model, view, controller) {

// Manipulate the DOM only when it is ready.
requirejs(['domReady!'], function (doc) {
Expand Down
4 changes: 2 additions & 2 deletions activities/GetThingsDone.activity/js/loader.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ requirejs.config({

requirejs(["activity/activity"]);

requirejs(["webL10n","sugar-web/env","moment-with-locales.min"], function(l10n, env, moment) {
requirejs(["l10n","sugar-web/env","moment-with-locales.min"], function(l10n, env, moment) {
l10n_s = l10n; //global declaration of translate interface

env.getEnvironment(function(err, environment) {
var defaultLanguage = (typeof chrome != 'undefined' && chrome.app && chrome.app.runtime) ? chrome.i18n.getUILanguage() : navigator.language;
var language = environment.user ? environment.user.language : defaultLanguage;
l10n_s.language.code = language;
l10n_s.init(language);
moment.locale(language);
});
});
3 changes: 3 additions & 0 deletions activities/GetThingsDone.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/GetThingsDone.activity/lib/i18next.min.js

Large diffs are not rendered by default.

70 changes: 70 additions & 0 deletions activities/GetThingsDone.activity/lib/l10n.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
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();
}
};

l10n.updateDocument = () => {
const elements = document.getElementsByTagName("*");
for (let i = 0; i < elements.length; i++) {
const element = elements[i];
const key = element.getAttribute("data-i18n");
//handle innerHTML
if (key !== null && i18next.exists(key)) {
element.innerHTML = i18next.t(key);
}
//handle tooltips
if (key !== null && i18next.exists(key+".title")) {
element.setAttribute('title', i18next.t(key+".title"));
}
}
};

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

return l10n;
});
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
define(["webL10n",
"sugar-web/activity/shortcut",
define(["sugar-web/activity/shortcut",
"sugar-web/bus",
"sugar-web/env",
"sugar-web/datastore",
"sugar-web/presence",
"sugar-web/graphics/icon",
"sugar-web/graphics/activitypalette"], function (
l10n, shortcut, bus, env, datastore, presence, icon, activitypalette) {
"sugar-web/graphics/activitypalette"], function (shortcut, bus, env, datastore, presence, icon, activitypalette) {

'use strict';

Expand All @@ -22,8 +20,6 @@ define(["webL10n",
activity.setup = function () {
bus.listen();

l10n.start();

function sendPauseEvent() {
var pauseEvent = document.createEvent("CustomEvent");
pauseEvent.initCustomEvent('activityPause', false, false, {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
"volo": {
"baseUrl": "lib",
"dependencies": {
"webL10n": "github:sugarlabs/webL10n",
"mustache": "github:janl/mustache.js/0.7.2",
"text": "github:requirejs/text"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ requirejs.config({
"sugar-web": ".",
"mustache": "lib/mustache",
"text": "lib/text",
"webL10n": "lib/webL10n"
},

// ask Require.js to load these files (all our tests)
Expand Down
Loading

0 comments on commit 9ac23f9

Please sign in to comment.