From 624bcf4e3352971a77cf3e6a4266f1600f9da577 Mon Sep 17 00:00:00 2001 From: Gubolin Date: Sun, 17 Aug 2014 20:09:05 +0200 Subject: add language blocks --- gui.js | 3 ++- objects.js | 9 +++++++++ threads.js | 11 +++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/gui.js b/gui.js index 6af9137..4c9ee00 100644 --- a/gui.js +++ b/gui.js @@ -185,7 +185,7 @@ IDE_Morph.prototype.init = function (isAutoFill) { MorphicPreferences.globalFontFamily = 'Helvetica, Arial'; // restore saved user preferences - this.userLanguage = null; // user language preference for startup + this.userLanguage = null; this.applySavedSettings(); // additional properties: @@ -3417,6 +3417,7 @@ IDE_Morph.prototype.setLanguage = function (lang, callback) { if (lang === 'en') { return this.reflectLanguage('en', callback); } + myself.userLanguage = lang; translation = document.createElement('script'); translation.id = 'language'; translation.onload = function () { diff --git a/objects.js b/objects.js index fbb9e84..4c0e862 100644 --- a/objects.js +++ b/objects.js @@ -878,6 +878,11 @@ SpriteMorph.prototype.initBlocks = function () { category: 'sensing', spec: 'current %dates' }, + reportLanguage: { + type: 'reporter', + category: 'sensing', + spec: 'language' + }, // Operators reifyScript: { @@ -1884,6 +1889,8 @@ SpriteMorph.prototype.blockTemplates = function (category) { blocks.push(block('doSetFastTracking')); blocks.push('-'); blocks.push(block('reportDate')); + blocks.push('-'); + blocks.push(block('reportLanguage')); // for debugging: /////////////// @@ -4991,6 +4998,8 @@ StageMorph.prototype.blockTemplates = function (category) { blocks.push(block('doSetFastTracking')); blocks.push('-'); blocks.push(block('reportDate')); + blocks.push('-'); + blocks.push(block('reportLanguage')); // for debugging: /////////////// diff --git a/threads.js b/threads.js index 335b5d0..51d1c9f 100644 --- a/threads.js +++ b/threads.js @@ -2572,6 +2572,17 @@ Process.prototype.reportTimer = function () { return 0; }; +Process.prototype.reportLanguage = function () { + var ide = this.homeContext.receiver.parentThatIsA(IDE_Morph); + if (ide) { + var lang = ide.userLanguage; + if (lang) { + return lang; + } + } + return 'en'; +}; + // Process Dates and times in Snap // Map block options to built-in functions var dateMap = { -- cgit v1.3.1