diff --git a/src/lib/blocks.js b/src/lib/blocks.js
index fb858313c..c1bde0ff2 100644
--- a/src/lib/blocks.js
+++ b/src/lib/blocks.js
@@ -62,11 +62,14 @@ export default function (vm) {
};
const backdropsMenu = function () {
+ const next = ScratchBlocks.ScratchMsgs.translate('LOOKS_NEXTBACKDROP', 'next backdrop');
+ const previous = ScratchBlocks.ScratchMsgs.translate('LOOKS_PREVIOUSBACKDROP', 'previous backdrop');
+ const random = ScratchBlocks.ScratchMsgs.translate('LOOKS_RANDOMBACKDROP', 'random backdrop');
if (vm.runtime.targets[0] && vm.runtime.targets[0].getCostumes().length > 0) {
return vm.runtime.targets[0].getCostumes().map(costume => [costume.name, costume.name])
- .concat([['next backdrop', 'next backdrop'],
- ['previous backdrop', 'previous backdrop'],
- ['random backdrop', 'random backdrop']]);
+ .concat([[next, 'next backdrop'],
+ [previous, 'previous backdrop'],
+ [random, 'random backdrop']]);
}
return [['', '']];
};
@@ -103,7 +106,8 @@ export default function (vm) {
}
return menu;
}
- return [['myself', '_myself_']].concat(spriteMenu());
+ const myself = ScratchBlocks.ScratchMsgs.translate('CONTROL_CREATECLONEOF_MYSELF', 'myself');
+ return [[myself, '_myself_']].concat(spriteMenu());
};
const soundColors = ScratchBlocks.Colours.sounds;
@@ -141,46 +145,55 @@ export default function (vm) {
};
ScratchBlocks.Blocks.motion_pointtowards_menu.init = function () {
+ const mouse = ScratchBlocks.ScratchMsgs.translate('MOTION_POINTTOWARDS_POINTER', 'mouse-pointer');
const json = jsonForMenuBlock('TOWARDS', spriteMenu, motionColors, [
- ['mouse-pointer', '_mouse_']
+ [mouse, '_mouse_']
]);
this.jsonInit(json);
};
ScratchBlocks.Blocks.motion_goto_menu.init = function () {
+ const random = ScratchBlocks.ScratchMsgs.translate('MOTION_GOTO_RANDOM', 'random position');
+ const mouse = ScratchBlocks.ScratchMsgs.translate('MOTION_GOTO_POINTER', 'mouse-pointer');
const json = jsonForMenuBlock('TO', spriteMenu, motionColors, [
- ['random position', '_random_'],
- ['mouse-pointer', '_mouse_']
+ [random, '_random_'],
+ [mouse, '_mouse_']
]);
this.jsonInit(json);
};
ScratchBlocks.Blocks.motion_glideto_menu.init = function () {
+ const random = ScratchBlocks.ScratchMsgs.translate('MOTION_GLIDETO_RANDOM', 'random position');
+ const mouse = ScratchBlocks.ScratchMsgs.translate('MOTION_GLIDETO_POINTER', 'mouse-pointer');
const json = jsonForMenuBlock('TO', spriteMenu, motionColors, [
- ['random position', '_random_'],
- ['mouse-pointer', '_mouse_']
+ [random, '_random_'],
+ [mouse, '_mouse_']
]);
this.jsonInit(json);
};
ScratchBlocks.Blocks.sensing_of_object_menu.init = function () {
+ const stage = ScratchBlocks.ScratchMsgs.translate('SENSING_OF_STAGE', 'Stage');
const json = jsonForMenuBlock('OBJECT', spriteMenu, sensingColors, [
- ['Stage', '_stage_']
+ [stage, '_stage_']
]);
this.jsonInit(json);
};
ScratchBlocks.Blocks.sensing_distancetomenu.init = function () {
+ const mouse = ScratchBlocks.ScratchMsgs.translate('SENSING_DISTANCETO_POINTER', 'mouse-pointer');
const json = jsonForMenuBlock('DISTANCETOMENU', spriteMenu, sensingColors, [
- ['mouse-pointer', '_mouse_']
+ [mouse, '_mouse_']
]);
this.jsonInit(json);
};
ScratchBlocks.Blocks.sensing_touchingobjectmenu.init = function () {
+ const mouse = ScratchBlocks.ScratchMsgs.translate('SENSING_TOUCHINGOBJECT_POINTER', 'mouse-pointer');
+ const edge = ScratchBlocks.ScratchMsgs.translate('SENSING_TOUCHINGOBJECT_EDGE', 'edge');
const json = jsonForMenuBlock('TOUCHINGOBJECTMENU', spriteMenu, sensingColors, [
- ['mouse-pointer', '_mouse_'],
- ['edge', '_edge_']
+ [mouse, '_mouse_'],
+ [edge, '_edge_']
]);
this.jsonInit(json);
};
diff --git a/src/lib/make-toolbox-xml.js b/src/lib/make-toolbox-xml.js
index 6dcaff245..2fea2f0cb 100644
--- a/src/lib/make-toolbox-xml.js
+++ b/src/lib/make-toolbox-xml.js
@@ -1,12 +1,18 @@
+import ScratchBlocks from 'scratch-blocks';
+
const categorySeparator = '';
const blockSeparator = ''; // At default scale, about 28px
const motion = function (isStage, targetId) {
+ const stageSelected = ScratchBlocks.ScratchMsgs.translate(
+ 'MOTION_STAGE_SELECTED',
+ 'Stage selected: no motion blocks'
+ );
return `
${isStage ? `
-
+
` : `
@@ -133,13 +139,15 @@ const motion = function (isStage, targetId) {
};
const looks = function (isStage, targetId) {
+ const hello = ScratchBlocks.ScratchMsgs.translate('LOOKS_HELLO', 'Hello!');
+ const hmm = ScratchBlocks.ScratchMsgs.translate('LOOKS_HMM', 'Hmm...');
return `
${isStage ? '' : `
- Hello!
+ ${hello}
@@ -151,14 +159,14 @@ const looks = function (isStage, targetId) {
- Hello!
+ ${hello}
- Hmm...
+ ${hmm}
@@ -170,7 +178,7 @@ const looks = function (isStage, targetId) {
- Hmm...
+ ${hmm}
@@ -397,6 +405,7 @@ const control = function (isStage) {
};
const sensing = function (isStage) {
+ const name = ScratchBlocks.ScratchMsgs.translate('SENSING_ASK_TEXT', 'What\'s your name?');
return `
${isStage ? '' : `
@@ -428,7 +437,7 @@ const sensing = function (isStage) {
- What's your name?
+ ${name}
@@ -469,6 +478,9 @@ const sensing = function (isStage) {
};
const operators = function () {
+ const apple = ScratchBlocks.ScratchMsgs.translate('OPERATORS_JOIN_APPLE', 'apple');
+ const banana = ScratchBlocks.ScratchMsgs.translate('OPERATORS_JOIN_BANANA', 'banana');
+ const letter = ScratchBlocks.ScratchMsgs.translate('OPERATORS_LETTEROF_APPLE', 'a');
return `
@@ -577,12 +589,12 @@ const operators = function () {
- apple
+ ${apple}
- banana
+ ${banana}
@@ -594,26 +606,26 @@ const operators = function () {
- apple
+ ${apple}
- apple
+ ${apple}
- apple
+ ${apple}
- a
+ ${letter}