diff --git a/HISTORY.md b/HISTORY.md index 1247772d..db924944 100755 --- a/HISTORY.md +++ b/HISTORY.md @@ -4,10 +4,14 @@ * **New Features:** * **Notable Changes:** * **Notable Fixes:** + * fixed submenu translation control for dropdowns * **Translation Updates:** + * Catalan, thanks, Joan ### 2019-11-12 * new dev version +* drop-down menu translation improvements by Joan +* submenu-title translation control ## v5.3.2: * **Notable Fixes:** @@ -26,6 +30,7 @@ * blocks: fixed dropdown menu generation for untranslated items * blocks: don't translate message names in drow-down menus * blocks: don't translate names in dropdowns +* byob: don't translate items in dropdowns * help: fixed size of MY help screen, thanks, Brian * prepared release diff --git a/snap.html b/snap.html index 73ad50a4..1e71f8b4 100755 --- a/snap.html +++ b/snap.html @@ -4,15 +4,15 @@ Snap! Build Your Own Blocks 5.3.3 - dev - - + - + - + - + @@ -20,7 +20,7 @@ - + diff --git a/src/blocks.js b/src/blocks.js index fed1d17e..b66b426b 100644 --- a/src/blocks.js +++ b/src/blocks.js @@ -148,7 +148,7 @@ CustomCommandBlockMorph, SymbolMorph, ToggleButtonMorph, DialMorph*/ // Global stuff //////////////////////////////////////////////////////// -modules.blocks = '2019-November-06'; +modules.blocks = '2019-November-12'; var SyntaxElementMorph; var BlockMorph; @@ -618,7 +618,7 @@ SyntaxElementMorph.prototype.getVarNamesDict = function () { if (block.selector === 'doSetVar') { // add settable object attributes dict['~'] = null; - dict.my = { + dict.my = [{// wrap the submenu into a 1-item array to translate it 'anchor' : ['anchor'], 'parent' : ['parent'], 'name' : ['name'], @@ -628,10 +628,10 @@ SyntaxElementMorph.prototype.getVarNamesDict = function () { 'rotation style' : ['rotation style'], 'rotation x' : ['rotation x'], 'rotation y' : ['rotation y'] - }; + }]; if (this.world().currentKey === 16) { // shift - dict.my['~'] = null; - dict.my['microphone modifier'] = ['microphone modifier']; + dict.my[0]['~'] = null; // don't forget we're inside an array... + dict.my[0]['microphone modifier'] = ['microphone modifier']; } } return dict; @@ -8747,7 +8747,16 @@ InputSlotMorph.prototype.menuFromDict = function ( key, this.menuFromDict(choices[key],true), null, // indicator - true // verbatim? + true // verbatim? - don't translate + ); + } else if (choices[key] instanceof Array && + choices[key][0] instanceof Object && + typeof choices[key][0] !== 'function') { + menu.addMenu( + key, + this.menuFromDict(choices[key][0],true), + null, // indicator + false // verbatim? - do translate, if inside an array ); } else { menu.addItem( @@ -8759,7 +8768,8 @@ InputSlotMorph.prototype.menuFromDict = function ( null, // italic null, // doubleClickAction null, // shortcut - choices[key].length === 1 || typeof choices[key] === 'function' ? false : true // verbatim? + !(choices[key] instanceof Array) && + typeof choices[key] !== 'function' // verbatim? ); } } diff --git a/src/byob.js b/src/byob.js index 901f226c..07e050d0 100644 --- a/src/byob.js +++ b/src/byob.js @@ -108,7 +108,7 @@ BooleanSlotMorph, XML_Serializer, SnapTranslator*/ // Global stuff //////////////////////////////////////////////////////// -modules.byob = '2019-July-24'; +modules.byob = '2019-November-12'; // Declarations diff --git a/src/locale.js b/src/locale.js index b8e7029b..3000d8de 100644 --- a/src/locale.js +++ b/src/locale.js @@ -42,7 +42,7 @@ /*global modules, contains*/ -modules.locale = '2019-November-06'; +modules.locale = '2019-November-12'; // Global stuff diff --git a/src/morphic.js b/src/morphic.js index 1f1bef94..801ee701 100644 --- a/src/morphic.js +++ b/src/morphic.js @@ -1178,7 +1178,7 @@ /*global window, HTMLCanvasElement, FileReader, Audio, FileList, Map*/ -var morphicVersion = '2019-November-06'; +var morphicVersion = '2019-November-12'; var modules = {}; // keep track of additional loaded modules var useBlurredShadows = getBlurredShadowSupport(); // check for Chrome-bug @@ -8218,11 +8218,33 @@ MenuMorph.prototype.addItem = function ( }; MenuMorph.prototype.addMenu = function (label, aMenu, indicator, verbatim) { - this.addPair(label, aMenu, isNil(indicator) ? '\u25ba' : indicator, null, verbatim); + this.addPair( + label, + aMenu, + isNil(indicator) ? '\u25ba' : indicator, + null, + verbatim // don't translate + ); }; -MenuMorph.prototype.addPair = function (label, action, shortcut, hint, verbatim) { - this.addItem(label, action, hint, null, null, null, null, shortcut, verbatim); +MenuMorph.prototype.addPair = function ( + label, + action, + shortcut, + hint, + verbatim // don't translate +) { + this.addItem( + label, + action, + hint, + null, + null, + null, + null, + shortcut, + verbatim + ); }; MenuMorph.prototype.addLine = function (width) { diff --git a/src/objects.js b/src/objects.js index 49148d1b..9bb53dab 100644 --- a/src/objects.js +++ b/src/objects.js @@ -84,7 +84,7 @@ BlockEditorMorph, BlockDialogMorph, PrototypeHatBlockMorph, BooleanSlotMorph, localize, TableMorph, TableFrameMorph, normalizeCanvas, VectorPaintEditorMorph, HandleMorph, AlignmentMorph, Process, XML_Element, WorldMap, copyCanvas*/ -modules.objects = '2019-November-06'; +modules.objects = '2019-November-12'; var SpriteMorph; var StageMorph;