added translation control for submenus in dropdowns

and simplified the translation mechanism slightly
pull/89/head
jmoenig 2019-11-12 16:37:17 +01:00
rodzic 49c9aba84e
commit 4a1094e7c5
7 zmienionych plików z 56 dodań i 19 usunięć

Wyświetl plik

@ -4,10 +4,14 @@
* **New Features:** * **New Features:**
* **Notable Changes:** * **Notable Changes:**
* **Notable Fixes:** * **Notable Fixes:**
* fixed submenu translation control for dropdowns
* **Translation Updates:** * **Translation Updates:**
* Catalan, thanks, Joan
### 2019-11-12 ### 2019-11-12
* new dev version * new dev version
* drop-down menu translation improvements by Joan
* submenu-title translation control
## v5.3.2: ## v5.3.2:
* **Notable Fixes:** * **Notable Fixes:**
@ -26,6 +30,7 @@
* blocks: fixed dropdown menu generation for untranslated items * blocks: fixed dropdown menu generation for untranslated items
* blocks: don't translate message names in drow-down menus * blocks: don't translate message names in drow-down menus
* blocks: don't translate names in dropdowns * blocks: don't translate names in dropdowns
* byob: don't translate items in dropdowns
* help: fixed size of MY help screen, thanks, Brian * help: fixed size of MY help screen, thanks, Brian
* prepared release * prepared release

Wyświetl plik

@ -4,15 +4,15 @@
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Snap! Build Your Own Blocks 5.3.3 - dev -</title> <title>Snap! Build Your Own Blocks 5.3.3 - dev -</title>
<link rel="shortcut icon" href="src/favicon.ico"> <link rel="shortcut icon" href="src/favicon.ico">
<script type="text/javascript" src="src/morphic.js?version=2019-11-06"></script> <script type="text/javascript" src="src/morphic.js?version=2019-11-12"></script>
<script type="text/javascript" src="src/widgets.js?version=2019-10-16"></script> <script type="text/javascript" src="src/widgets.js?version=2019-10-16"></script>
<script type="text/javascript" src="src/blocks.js?version=2019-11-06"></script> <script type="text/javascript" src="src/blocks.js?version=2019-11-12"></script>
<script type="text/javascript" src="src/threads.js?version=2019-11-05"></script> <script type="text/javascript" src="src/threads.js?version=2019-11-05"></script>
<script type="text/javascript" src="src/objects.js?version=2019-11-06"></script> <script type="text/javascript" src="src/objects.js?version=2019-11-12"></script>
<script type="text/javascript" src="src/gui.js?version=2019-11-12"></script> <script type="text/javascript" src="src/gui.js?version=2019-11-12"></script>
<script type="text/javascript" src="src/paint.js?version=2019-06-27"></script> <script type="text/javascript" src="src/paint.js?version=2019-06-27"></script>
<script type="text/javascript" src="src/lists.js?version=2019-10-23"></script> <script type="text/javascript" src="src/lists.js?version=2019-10-23"></script>
<script type="text/javascript" src="src/byob.js?version=2019-07-24"></script> <script type="text/javascript" src="src/byob.js?version=2019-07-12"></script>
<script type="text/javascript" src="src/tables.js?version=2019-06-27"></script> <script type="text/javascript" src="src/tables.js?version=2019-06-27"></script>
<script type="text/javascript" src="src/symbols.js?version=2019-06-27"></script> <script type="text/javascript" src="src/symbols.js?version=2019-06-27"></script>
<script type="text/javascript" src="src/sketch.js?version=2019-10-09"></script> <script type="text/javascript" src="src/sketch.js?version=2019-10-09"></script>
@ -20,7 +20,7 @@
<script type="text/javascript" src="src/maps.js?version=2019-10-28"></script> <script type="text/javascript" src="src/maps.js?version=2019-10-28"></script>
<script type="text/javascript" src="src/xml.js?version=2019-06-27"></script> <script type="text/javascript" src="src/xml.js?version=2019-06-27"></script>
<script type="text/javascript" src="src/store.js?version=2019-08-08"></script> <script type="text/javascript" src="src/store.js?version=2019-08-08"></script>
<script type="text/javascript" src="src/locale.js?version=2019-11-06"></script> <script type="text/javascript" src="src/locale.js?version=2019-11-12"></script>
<script type="text/javascript" src="src/cloud.js?version=2019-10-09"></script> <script type="text/javascript" src="src/cloud.js?version=2019-10-09"></script>
<script type="text/javascript" src="src/sha512.js?version=2019-06-27"></script> <script type="text/javascript" src="src/sha512.js?version=2019-06-27"></script>
<script type="text/javascript" src="src/FileSaver.min.js?version=2019-06-27"></script> <script type="text/javascript" src="src/FileSaver.min.js?version=2019-06-27"></script>

Wyświetl plik

@ -148,7 +148,7 @@ CustomCommandBlockMorph, SymbolMorph, ToggleButtonMorph, DialMorph*/
// Global stuff //////////////////////////////////////////////////////// // Global stuff ////////////////////////////////////////////////////////
modules.blocks = '2019-November-06'; modules.blocks = '2019-November-12';
var SyntaxElementMorph; var SyntaxElementMorph;
var BlockMorph; var BlockMorph;
@ -618,7 +618,7 @@ SyntaxElementMorph.prototype.getVarNamesDict = function () {
if (block.selector === 'doSetVar') { if (block.selector === 'doSetVar') {
// add settable object attributes // add settable object attributes
dict['~'] = null; dict['~'] = null;
dict.my = { dict.my = [{// wrap the submenu into a 1-item array to translate it
'anchor' : ['anchor'], 'anchor' : ['anchor'],
'parent' : ['parent'], 'parent' : ['parent'],
'name' : ['name'], 'name' : ['name'],
@ -628,10 +628,10 @@ SyntaxElementMorph.prototype.getVarNamesDict = function () {
'rotation style' : ['rotation style'], 'rotation style' : ['rotation style'],
'rotation x' : ['rotation x'], 'rotation x' : ['rotation x'],
'rotation y' : ['rotation y'] 'rotation y' : ['rotation y']
}; }];
if (this.world().currentKey === 16) { // shift if (this.world().currentKey === 16) { // shift
dict.my['~'] = null; dict.my[0]['~'] = null; // don't forget we're inside an array...
dict.my['microphone modifier'] = ['microphone modifier']; dict.my[0]['microphone modifier'] = ['microphone modifier'];
} }
} }
return dict; return dict;
@ -8747,7 +8747,16 @@ InputSlotMorph.prototype.menuFromDict = function (
key, key,
this.menuFromDict(choices[key],true), this.menuFromDict(choices[key],true),
null, // indicator 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 { } else {
menu.addItem( menu.addItem(
@ -8759,7 +8768,8 @@ InputSlotMorph.prototype.menuFromDict = function (
null, // italic null, // italic
null, // doubleClickAction null, // doubleClickAction
null, // shortcut null, // shortcut
choices[key].length === 1 || typeof choices[key] === 'function' ? false : true // verbatim? !(choices[key] instanceof Array) &&
typeof choices[key] !== 'function' // verbatim?
); );
} }
} }

Wyświetl plik

@ -108,7 +108,7 @@ BooleanSlotMorph, XML_Serializer, SnapTranslator*/
// Global stuff //////////////////////////////////////////////////////// // Global stuff ////////////////////////////////////////////////////////
modules.byob = '2019-July-24'; modules.byob = '2019-November-12';
// Declarations // Declarations

Wyświetl plik

@ -42,7 +42,7 @@
/*global modules, contains*/ /*global modules, contains*/
modules.locale = '2019-November-06'; modules.locale = '2019-November-12';
// Global stuff // Global stuff

Wyświetl plik

@ -1178,7 +1178,7 @@
/*global window, HTMLCanvasElement, FileReader, Audio, FileList, Map*/ /*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 modules = {}; // keep track of additional loaded modules
var useBlurredShadows = getBlurredShadowSupport(); // check for Chrome-bug var useBlurredShadows = getBlurredShadowSupport(); // check for Chrome-bug
@ -8218,11 +8218,33 @@ MenuMorph.prototype.addItem = function (
}; };
MenuMorph.prototype.addMenu = function (label, aMenu, indicator, verbatim) { 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) { MenuMorph.prototype.addPair = function (
this.addItem(label, action, hint, null, null, null, null, shortcut, verbatim); label,
action,
shortcut,
hint,
verbatim // don't translate
) {
this.addItem(
label,
action,
hint,
null,
null,
null,
null,
shortcut,
verbatim
);
}; };
MenuMorph.prototype.addLine = function (width) { MenuMorph.prototype.addLine = function (width) {

Wyświetl plik

@ -84,7 +84,7 @@ BlockEditorMorph, BlockDialogMorph, PrototypeHatBlockMorph, BooleanSlotMorph,
localize, TableMorph, TableFrameMorph, normalizeCanvas, VectorPaintEditorMorph, localize, TableMorph, TableFrameMorph, normalizeCanvas, VectorPaintEditorMorph,
HandleMorph, AlignmentMorph, Process, XML_Element, WorldMap, copyCanvas*/ HandleMorph, AlignmentMorph, Process, XML_Element, WorldMap, copyCanvas*/
modules.objects = '2019-November-06'; modules.objects = '2019-November-12';
var SpriteMorph; var SpriteMorph;
var StageMorph; var StageMorph;