scratch-blocks 2.0.2 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/commitlint.config.js +2 -2
  2. package/dist/main.mjs +1 -2
  3. package/dist/types/msg/scratch_msgs.d.ts.map +1 -1
  4. package/dist/types/src/block_reporting.d.ts.map +1 -1
  5. package/dist/types/src/blocks/colour.d.ts +0 -19
  6. package/dist/types/src/blocks/colour.d.ts.map +1 -1
  7. package/dist/types/src/blocks/control.d.ts +0 -19
  8. package/dist/types/src/blocks/control.d.ts.map +1 -1
  9. package/dist/types/src/blocks/data.d.ts +0 -19
  10. package/dist/types/src/blocks/data.d.ts.map +1 -1
  11. package/dist/types/src/blocks/event.d.ts +0 -19
  12. package/dist/types/src/blocks/event.d.ts.map +1 -1
  13. package/dist/types/src/blocks/looks.d.ts +0 -19
  14. package/dist/types/src/blocks/looks.d.ts.map +1 -1
  15. package/dist/types/src/blocks/math.d.ts +0 -19
  16. package/dist/types/src/blocks/math.d.ts.map +1 -1
  17. package/dist/types/src/blocks/matrix.d.ts +0 -19
  18. package/dist/types/src/blocks/matrix.d.ts.map +1 -1
  19. package/dist/types/src/blocks/motion.d.ts +0 -19
  20. package/dist/types/src/blocks/motion.d.ts.map +1 -1
  21. package/dist/types/src/blocks/note.d.ts +0 -19
  22. package/dist/types/src/blocks/note.d.ts.map +1 -1
  23. package/dist/types/src/blocks/operators.d.ts +0 -19
  24. package/dist/types/src/blocks/operators.d.ts.map +1 -1
  25. package/dist/types/src/blocks/procedures.d.ts +6 -9
  26. package/dist/types/src/blocks/procedures.d.ts.map +1 -1
  27. package/dist/types/src/blocks/sensing.d.ts +0 -19
  28. package/dist/types/src/blocks/sensing.d.ts.map +1 -1
  29. package/dist/types/src/blocks/sound.d.ts +0 -19
  30. package/dist/types/src/blocks/sound.d.ts.map +1 -1
  31. package/dist/types/src/blocks/text.d.ts +0 -19
  32. package/dist/types/src/blocks/text.d.ts.map +1 -1
  33. package/dist/types/src/blocks/vertical_extensions.d.ts +0 -19
  34. package/dist/types/src/blocks/vertical_extensions.d.ts.map +1 -1
  35. package/dist/types/src/checkable_continuous_flyout.d.ts +2 -7
  36. package/dist/types/src/checkable_continuous_flyout.d.ts.map +1 -1
  37. package/dist/types/src/checkbox_bubble.d.ts +13 -12
  38. package/dist/types/src/checkbox_bubble.d.ts.map +1 -1
  39. package/dist/types/src/colours.d.ts.map +1 -1
  40. package/dist/types/src/constants.d.ts +0 -7
  41. package/dist/types/src/constants.d.ts.map +1 -1
  42. package/dist/types/src/context_menu_items.d.ts +0 -5
  43. package/dist/types/src/context_menu_items.d.ts.map +1 -1
  44. package/dist/types/src/data_category.d.ts +2 -4
  45. package/dist/types/src/data_category.d.ts.map +1 -1
  46. package/dist/types/src/events/events_block_comment_base.d.ts +2 -3
  47. package/dist/types/src/events/events_block_comment_base.d.ts.map +1 -1
  48. package/dist/types/src/events/events_block_comment_change.d.ts +0 -5
  49. package/dist/types/src/events/events_block_comment_change.d.ts.map +1 -1
  50. package/dist/types/src/events/events_block_comment_collapse.d.ts +0 -5
  51. package/dist/types/src/events/events_block_comment_collapse.d.ts.map +1 -1
  52. package/dist/types/src/events/events_block_comment_create.d.ts +0 -5
  53. package/dist/types/src/events/events_block_comment_create.d.ts.map +1 -1
  54. package/dist/types/src/events/events_block_comment_delete.d.ts +0 -5
  55. package/dist/types/src/events/events_block_comment_delete.d.ts.map +1 -1
  56. package/dist/types/src/events/events_block_comment_move.d.ts +0 -5
  57. package/dist/types/src/events/events_block_comment_move.d.ts.map +1 -1
  58. package/dist/types/src/events/events_block_comment_resize.d.ts +0 -5
  59. package/dist/types/src/events/events_block_comment_resize.d.ts.map +1 -1
  60. package/dist/types/src/events/events_block_drag_end.d.ts +1 -2
  61. package/dist/types/src/events/events_block_drag_end.d.ts.map +1 -1
  62. package/dist/types/src/events/events_block_drag_outside.d.ts +1 -2
  63. package/dist/types/src/events/events_block_drag_outside.d.ts.map +1 -1
  64. package/dist/types/src/events/events_scratch_variable_create.d.ts +0 -5
  65. package/dist/types/src/events/events_scratch_variable_create.d.ts.map +1 -1
  66. package/dist/types/src/fields/field_colour_slider.d.ts +3 -27
  67. package/dist/types/src/fields/field_colour_slider.d.ts.map +1 -1
  68. package/dist/types/src/fields/field_matrix.d.ts +0 -19
  69. package/dist/types/src/fields/field_matrix.d.ts.map +1 -1
  70. package/dist/types/src/fields/field_note.d.ts +8 -23
  71. package/dist/types/src/fields/field_note.d.ts.map +1 -1
  72. package/dist/types/src/fields/field_textinput_removable.d.ts +2 -4
  73. package/dist/types/src/fields/field_textinput_removable.d.ts.map +1 -1
  74. package/dist/types/src/fields/field_variable_getter.d.ts +0 -19
  75. package/dist/types/src/fields/field_variable_getter.d.ts.map +1 -1
  76. package/dist/types/src/fields/field_vertical_separator.d.ts +0 -19
  77. package/dist/types/src/fields/field_vertical_separator.d.ts.map +1 -1
  78. package/dist/types/src/fields/scratch_field_angle.d.ts +0 -19
  79. package/dist/types/src/fields/scratch_field_angle.d.ts.map +1 -1
  80. package/dist/types/src/fields/scratch_field_dropdown.d.ts +0 -5
  81. package/dist/types/src/fields/scratch_field_dropdown.d.ts.map +1 -1
  82. package/dist/types/src/fields/scratch_field_number.d.ts +0 -19
  83. package/dist/types/src/fields/scratch_field_number.d.ts.map +1 -1
  84. package/dist/types/src/fields/scratch_field_variable.d.ts +4 -7
  85. package/dist/types/src/fields/scratch_field_variable.d.ts.map +1 -1
  86. package/dist/types/src/flyout_checkbox_icon.d.ts +2 -3
  87. package/dist/types/src/flyout_checkbox_icon.d.ts.map +1 -1
  88. package/dist/types/src/glows.d.ts +1 -3
  89. package/dist/types/src/glows.d.ts.map +1 -1
  90. package/dist/types/src/index.d.ts +50 -51
  91. package/dist/types/src/index.d.ts.map +1 -1
  92. package/dist/types/src/procedures.d.ts +6 -8
  93. package/dist/types/src/procedures.d.ts.map +1 -1
  94. package/dist/types/src/recyclable_block_flyout_inflater.d.ts +3 -5
  95. package/dist/types/src/recyclable_block_flyout_inflater.d.ts.map +1 -1
  96. package/dist/types/src/renderer/bowler_hat.d.ts +2 -3
  97. package/dist/types/src/renderer/bowler_hat.d.ts.map +1 -1
  98. package/dist/types/src/renderer/cat/cat_face.d.ts +6 -5
  99. package/dist/types/src/renderer/cat/cat_face.d.ts.map +1 -1
  100. package/dist/types/src/renderer/cat/constants.d.ts +2 -2
  101. package/dist/types/src/renderer/cat/constants.d.ts.map +1 -1
  102. package/dist/types/src/renderer/cat/drawer.d.ts +3 -4
  103. package/dist/types/src/renderer/cat/drawer.d.ts.map +1 -1
  104. package/dist/types/src/renderer/cat/path_object.d.ts +2 -3
  105. package/dist/types/src/renderer/cat/path_object.d.ts.map +1 -1
  106. package/dist/types/src/renderer/cat/render_info.d.ts +3 -4
  107. package/dist/types/src/renderer/cat/render_info.d.ts.map +1 -1
  108. package/dist/types/src/renderer/cat/renderer.d.ts +6 -7
  109. package/dist/types/src/renderer/cat/renderer.d.ts.map +1 -1
  110. package/dist/types/src/renderer/constants.d.ts +4 -4
  111. package/dist/types/src/renderer/constants.d.ts.map +1 -1
  112. package/dist/types/src/renderer/drawer.d.ts +5 -4
  113. package/dist/types/src/renderer/drawer.d.ts.map +1 -1
  114. package/dist/types/src/renderer/path_object.d.ts +1 -3
  115. package/dist/types/src/renderer/path_object.d.ts.map +1 -1
  116. package/dist/types/src/renderer/render_info.d.ts +3 -4
  117. package/dist/types/src/renderer/render_info.d.ts.map +1 -1
  118. package/dist/types/src/renderer/renderer.d.ts +8 -15
  119. package/dist/types/src/renderer/renderer.d.ts.map +1 -1
  120. package/dist/types/src/scratch_block_paster.d.ts +0 -5
  121. package/dist/types/src/scratch_block_paster.d.ts.map +1 -1
  122. package/dist/types/src/scratch_blocks_utils.d.ts +0 -20
  123. package/dist/types/src/scratch_blocks_utils.d.ts.map +1 -1
  124. package/dist/types/src/scratch_comment_bubble.d.ts +1 -4
  125. package/dist/types/src/scratch_comment_bubble.d.ts.map +1 -1
  126. package/dist/types/src/scratch_comment_icon.d.ts +2 -3
  127. package/dist/types/src/scratch_comment_icon.d.ts.map +1 -1
  128. package/dist/types/src/scratch_connection_checker.d.ts +0 -5
  129. package/dist/types/src/scratch_connection_checker.d.ts.map +1 -1
  130. package/dist/types/src/scratch_continuous_category.d.ts +5 -5
  131. package/dist/types/src/scratch_continuous_category.d.ts.map +1 -1
  132. package/dist/types/src/scratch_continuous_toolbox.d.ts +3 -6
  133. package/dist/types/src/scratch_continuous_toolbox.d.ts.map +1 -1
  134. package/dist/types/src/scratch_dragger.d.ts +1 -10
  135. package/dist/types/src/scratch_dragger.d.ts.map +1 -1
  136. package/dist/types/src/scratch_insertion_marker_previewer.d.ts +0 -5
  137. package/dist/types/src/scratch_insertion_marker_previewer.d.ts.map +1 -1
  138. package/dist/types/src/scratch_variable_map.d.ts +0 -5
  139. package/dist/types/src/scratch_variable_map.d.ts.map +1 -1
  140. package/dist/types/src/scratch_variable_model.d.ts +1 -2
  141. package/dist/types/src/scratch_variable_model.d.ts.map +1 -1
  142. package/dist/types/src/scratch_zoom_controls.d.ts +4 -6
  143. package/dist/types/src/scratch_zoom_controls.d.ts.map +1 -1
  144. package/dist/types/src/shadows.d.ts +2 -2
  145. package/dist/types/src/shadows.d.ts.map +1 -1
  146. package/dist/types/src/status_indicator_label.d.ts +4 -6
  147. package/dist/types/src/status_indicator_label.d.ts.map +1 -1
  148. package/dist/types/src/status_indicator_label_flyout_inflater.d.ts +1 -6
  149. package/dist/types/src/status_indicator_label_flyout_inflater.d.ts.map +1 -1
  150. package/dist/types/src/variables.d.ts +4 -8
  151. package/dist/types/src/variables.d.ts.map +1 -1
  152. package/dist/types/src/xml.d.ts +2 -3
  153. package/dist/types/src/xml.d.ts.map +1 -1
  154. package/dist/types/tests/jsunit/block_test.d.ts.map +1 -1
  155. package/dist/types/tests/jsunit/connection_db_test.d.ts.map +1 -1
  156. package/dist/types/tests/jsunit/connection_test.d.ts.map +1 -1
  157. package/dist/types/tests/jsunit/event_test.d.ts.map +1 -1
  158. package/dist/types/tests/jsunit/extensions_test.d.ts.map +1 -1
  159. package/dist/types/tests/jsunit/field_number_test.d.ts.map +1 -1
  160. package/dist/types/tests/jsunit/field_test.d.ts.map +1 -1
  161. package/dist/types/tests/jsunit/field_variable_getter_test.d.ts.map +1 -1
  162. package/dist/types/tests/jsunit/field_variable_test.d.ts.map +1 -1
  163. package/dist/types/tests/jsunit/gesture_test.d.ts.map +1 -1
  164. package/dist/types/tests/jsunit/input_test.d.ts +1 -0
  165. package/dist/types/tests/jsunit/input_test.d.ts.map +1 -1
  166. package/dist/types/tests/jsunit/json_test.d.ts.map +1 -1
  167. package/dist/types/tests/jsunit/names_test.d.ts.map +1 -1
  168. package/dist/types/tests/jsunit/procedure_test.d.ts.map +1 -1
  169. package/dist/types/tests/jsunit/scratch_block_comment_test.d.ts.map +1 -1
  170. package/dist/types/tests/jsunit/svg_test.d.ts.map +1 -1
  171. package/dist/types/tests/jsunit/test_utilities.d.ts.map +1 -1
  172. package/dist/types/tests/jsunit/utils_test.d.ts.map +1 -1
  173. package/dist/types/tests/jsunit/variable_map_test.d.ts.map +1 -1
  174. package/dist/types/tests/jsunit/variable_model_test.d.ts.map +1 -1
  175. package/dist/types/tests/jsunit/widget_div_test.d.ts.map +1 -1
  176. package/dist/types/tests/jsunit/workspace_comment_test.d.ts.map +1 -1
  177. package/dist/types/tests/jsunit/workspace_test.d.ts.map +1 -1
  178. package/dist/types/tests/jsunit/workspace_undo_redo_test.d.ts.map +1 -1
  179. package/dist/types/tests/jsunit/xml_test.d.ts.map +1 -1
  180. package/dist/types/tests/workspace_svg/workspace_svg_test.d.ts.map +1 -1
  181. package/eslint.config.mjs +69 -0
  182. package/i18n/create_scratch_msgs.js +44 -45
  183. package/i18n/js_to_json.js +40 -32
  184. package/i18n/json_to_js.js +37 -37
  185. package/i18n/sync_tx_translations.js +64 -65
  186. package/i18n/test_scratch_msgs.js +66 -63
  187. package/msg/js/en.js +289 -287
  188. package/msg/json/en.json +284 -284
  189. package/msg/messages.js +289 -287
  190. package/msg/scratch_msgs.js +22959 -22970
  191. package/package.json +6 -3
  192. package/prettier.config.mjs +3 -0
  193. package/release.config.js +7 -7
  194. package/renovate.json5 +7 -9
  195. package/src/block_reporting.ts +15 -18
  196. package/src/blocks/colour.ts +12 -15
  197. package/src/blocks/control.ts +167 -177
  198. package/src/blocks/data.ts +225 -292
  199. package/src/blocks/event.ts +121 -123
  200. package/src/blocks/looks.ts +165 -167
  201. package/src/blocks/math.ts +44 -46
  202. package/src/blocks/matrix.ts +11 -13
  203. package/src/blocks/motion.ts +151 -153
  204. package/src/blocks/note.ts +11 -13
  205. package/src/blocks/operators.ts +158 -160
  206. package/src/blocks/procedures.ts +415 -523
  207. package/src/blocks/sensing.ts +163 -165
  208. package/src/blocks/sound.ts +58 -60
  209. package/src/blocks/text.ts +10 -12
  210. package/src/blocks/vertical_extensions.ts +86 -102
  211. package/src/checkable_continuous_flyout.ts +25 -42
  212. package/src/checkbox_bubble.ts +83 -100
  213. package/src/colours.ts +35 -37
  214. package/src/constants.ts +22 -29
  215. package/src/context_menu_items.ts +56 -81
  216. package/src/css.ts +3 -4
  217. package/src/data_category.ts +137 -251
  218. package/src/events/events_block_comment_base.ts +21 -31
  219. package/src/events/events_block_comment_change.ts +21 -42
  220. package/src/events/events_block_comment_collapse.ts +22 -43
  221. package/src/events/events_block_comment_create.ts +29 -46
  222. package/src/events/events_block_comment_delete.ts +10 -19
  223. package/src/events/events_block_comment_move.ts +27 -52
  224. package/src/events/events_block_comment_resize.ts +28 -55
  225. package/src/events/events_block_drag_end.ts +16 -26
  226. package/src/events/events_block_drag_outside.ts +12 -22
  227. package/src/events/events_scratch_variable_create.ts +33 -56
  228. package/src/fields/field_colour_slider.ts +173 -228
  229. package/src/fields/field_matrix.ts +200 -269
  230. package/src/fields/field_note.ts +272 -377
  231. package/src/fields/field_textinput_removable.ts +25 -40
  232. package/src/fields/field_variable_getter.ts +26 -31
  233. package/src/fields/field_vertical_separator.ts +19 -24
  234. package/src/fields/scratch_field_angle.ts +150 -186
  235. package/src/fields/scratch_field_dropdown.ts +15 -19
  236. package/src/fields/scratch_field_number.ts +123 -180
  237. package/src/fields/scratch_field_variable.ts +54 -75
  238. package/src/flyout_checkbox_icon.ts +18 -28
  239. package/src/glows.ts +51 -58
  240. package/src/index.ts +119 -133
  241. package/src/procedures.ts +146 -213
  242. package/src/recyclable_block_flyout_inflater.ts +14 -25
  243. package/src/renderer/bowler_hat.ts +6 -8
  244. package/src/renderer/cat/cat_face.ts +98 -99
  245. package/src/renderer/cat/constants.ts +67 -87
  246. package/src/renderer/cat/drawer.ts +21 -27
  247. package/src/renderer/cat/path_object.ts +3 -5
  248. package/src/renderer/cat/render_info.ts +5 -8
  249. package/src/renderer/cat/renderer.ts +11 -15
  250. package/src/renderer/constants.ts +34 -49
  251. package/src/renderer/drawer.ts +35 -51
  252. package/src/renderer/path_object.ts +4 -10
  253. package/src/renderer/render_info.ts +36 -56
  254. package/src/renderer/renderer.ts +16 -29
  255. package/src/scratch_block_paster.ts +12 -20
  256. package/src/scratch_blocks_utils.ts +4 -7
  257. package/src/scratch_comment_bubble.ts +70 -101
  258. package/src/scratch_comment_icon.ts +74 -123
  259. package/src/scratch_connection_checker.ts +7 -17
  260. package/src/scratch_continuous_category.ts +24 -28
  261. package/src/scratch_continuous_toolbox.ts +20 -27
  262. package/src/scratch_dragger.ts +42 -81
  263. package/src/scratch_insertion_marker_previewer.ts +6 -11
  264. package/src/scratch_variable_map.ts +5 -12
  265. package/src/scratch_variable_model.ts +4 -11
  266. package/src/scratch_zoom_controls.ts +101 -156
  267. package/src/shadows.ts +32 -37
  268. package/src/status_indicator_label.ts +54 -67
  269. package/src/status_indicator_label_flyout_inflater.ts +11 -21
  270. package/src/variables.ts +89 -138
  271. package/src/xml.ts +21 -35
  272. package/tsconfig.json +2 -6
  273. package/types/continuous-toolbox.d.ts +1 -1
  274. package/dist/main.mjs.LICENSE.txt +0 -163
package/msg/js/en.js CHANGED
@@ -1,291 +1,293 @@
1
1
  // This file was automatically generated. Do not modify.
2
2
 
3
- 'use strict';
3
+ 'use strict'
4
4
 
5
- goog.provide('Blockly.Msg.en');
6
- goog.require('Blockly.Msg');
5
+ goog.provide('Blockly.Msg.en')
6
+ goog.require('Blockly.Msg')
7
7
 
8
- Blockly.Msg["CONTROL_FOREVER"] = "forever";
9
- Blockly.Msg["CONTROL_REPEAT"] = "repeat %1";
10
- Blockly.Msg["CONTROL_IF"] = "if %1 then";
11
- Blockly.Msg["CONTROL_ELSE"] = "else";
12
- Blockly.Msg["CONTROL_STOP"] = "stop";
13
- Blockly.Msg["CONTROL_STOP_ALL"] = "all";
14
- Blockly.Msg["CONTROL_STOP_THIS"] = "this script";
15
- Blockly.Msg["CONTROL_STOP_OTHER"] = "other scripts in sprite";
16
- Blockly.Msg["CONTROL_WAIT"] = "wait %1 seconds";
17
- Blockly.Msg["CONTROL_WAITUNTIL"] = "wait until %1";
18
- Blockly.Msg["CONTROL_REPEATUNTIL"] = "repeat until %1";
19
- Blockly.Msg["CONTROL_WHILE"] = "while %1";
20
- Blockly.Msg["CONTROL_FOREACH"] = "for each %1 in %2";
21
- Blockly.Msg["CONTROL_STARTASCLONE"] = "when I start as a clone";
22
- Blockly.Msg["CONTROL_CREATECLONEOF"] = "create clone of %1";
23
- Blockly.Msg["CONTROL_CREATECLONEOF_MYSELF"] = "myself";
24
- Blockly.Msg["CONTROL_DELETETHISCLONE"] = "delete this clone";
25
- Blockly.Msg["CONTROL_COUNTER"] = "counter";
26
- Blockly.Msg["CONTROL_INCRCOUNTER"] = "increment counter";
27
- Blockly.Msg["CONTROL_CLEARCOUNTER"] = "clear counter";
28
- Blockly.Msg["CONTROL_ALLATONCE"] = "all at once";
29
- Blockly.Msg["DATA_SETVARIABLETO"] = "set %1 to %2";
30
- Blockly.Msg["DATA_CHANGEVARIABLEBY"] = "change %1 by %2";
31
- Blockly.Msg["DATA_SHOWVARIABLE"] = "show variable %1";
32
- Blockly.Msg["DATA_HIDEVARIABLE"] = "hide variable %1";
33
- Blockly.Msg["DATA_ADDTOLIST"] = "add %1 to %2";
34
- Blockly.Msg["DATA_DELETEOFLIST"] = "delete %1 of %2";
35
- Blockly.Msg["DATA_DELETEALLOFLIST"] = "delete all of %1";
36
- Blockly.Msg["DATA_INSERTATLIST"] = "insert %1 at %2 of %3";
37
- Blockly.Msg["DATA_REPLACEITEMOFLIST"] = "replace item %1 of %2 with %3";
38
- Blockly.Msg["DATA_ITEMOFLIST"] = "item %1 of %2";
39
- Blockly.Msg["DATA_ITEMNUMOFLIST"] = "item # of %1 in %2";
40
- Blockly.Msg["DATA_LENGTHOFLIST"] = "length of %1";
41
- Blockly.Msg["DATA_LISTCONTAINSITEM"] = "%1 contains %2?";
42
- Blockly.Msg["DATA_SHOWLIST"] = "show list %1";
43
- Blockly.Msg["DATA_HIDELIST"] = "hide list %1";
44
- Blockly.Msg["DATA_INDEX_ALL"] = "all";
45
- Blockly.Msg["DATA_INDEX_LAST"] = "last";
46
- Blockly.Msg["DATA_INDEX_RANDOM"] = "random";
47
- Blockly.Msg["EVENT_WHENFLAGCLICKED"] = "when %1 clicked";
48
- Blockly.Msg["EVENT_WHENTHISSPRITECLICKED"] = "when this sprite clicked";
49
- Blockly.Msg["EVENT_WHENSTAGECLICKED"] = "when stage clicked";
50
- Blockly.Msg["EVENT_WHENTOUCHINGOBJECT"] = "when this sprite touches %1";
51
- Blockly.Msg["EVENT_WHENBROADCASTRECEIVED"] = "when I receive %1";
52
- Blockly.Msg["EVENT_WHENBACKDROPSWITCHESTO"] = "when backdrop switches to %1";
53
- Blockly.Msg["EVENT_WHENGREATERTHAN"] = "when %1 > %2";
54
- Blockly.Msg["EVENT_WHENGREATERTHAN_TIMER"] = "timer";
55
- Blockly.Msg["EVENT_WHENGREATERTHAN_LOUDNESS"] = "loudness";
56
- Blockly.Msg["EVENT_BROADCAST"] = "broadcast %1";
57
- Blockly.Msg["EVENT_BROADCASTANDWAIT"] = "broadcast %1 and wait";
58
- Blockly.Msg["EVENT_WHENKEYPRESSED"] = "when %1 key pressed";
59
- Blockly.Msg["EVENT_WHENKEYPRESSED_SPACE"] = "space";
60
- Blockly.Msg["EVENT_WHENKEYPRESSED_LEFT"] = "left arrow";
61
- Blockly.Msg["EVENT_WHENKEYPRESSED_RIGHT"] = "right arrow";
62
- Blockly.Msg["EVENT_WHENKEYPRESSED_DOWN"] = "down arrow";
63
- Blockly.Msg["EVENT_WHENKEYPRESSED_UP"] = "up arrow";
64
- Blockly.Msg["EVENT_WHENKEYPRESSED_ANY"] = "any";
65
- Blockly.Msg["LOOKS_SAYFORSECS"] = "say %1 for %2 seconds";
66
- Blockly.Msg["LOOKS_SAY"] = "say %1";
67
- Blockly.Msg["LOOKS_HELLO"] = "Hello!";
68
- Blockly.Msg["LOOKS_THINKFORSECS"] = "think %1 for %2 seconds";
69
- Blockly.Msg["LOOKS_THINK"] = "think %1";
70
- Blockly.Msg["LOOKS_HMM"] = "Hmm...";
71
- Blockly.Msg["LOOKS_SHOW"] = "show";
72
- Blockly.Msg["LOOKS_HIDE"] = "hide";
73
- Blockly.Msg["LOOKS_HIDEALLSPRITES"] = "hide all sprites";
74
- Blockly.Msg["LOOKS_EFFECT_COLOR"] = "color";
75
- Blockly.Msg["LOOKS_EFFECT_FISHEYE"] = "fisheye";
76
- Blockly.Msg["LOOKS_EFFECT_WHIRL"] = "whirl";
77
- Blockly.Msg["LOOKS_EFFECT_PIXELATE"] = "pixelate";
78
- Blockly.Msg["LOOKS_EFFECT_MOSAIC"] = "mosaic";
79
- Blockly.Msg["LOOKS_EFFECT_BRIGHTNESS"] = "brightness";
80
- Blockly.Msg["LOOKS_EFFECT_GHOST"] = "ghost";
81
- Blockly.Msg["LOOKS_CHANGEEFFECTBY"] = "change %1 effect by %2";
82
- Blockly.Msg["LOOKS_SETEFFECTTO"] = "set %1 effect to %2";
83
- Blockly.Msg["LOOKS_CLEARGRAPHICEFFECTS"] = "clear graphic effects";
84
- Blockly.Msg["LOOKS_CHANGESIZEBY"] = "change size by %1";
85
- Blockly.Msg["LOOKS_SETSIZETO"] = "set size to %1 %";
86
- Blockly.Msg["LOOKS_SIZE"] = "size";
87
- Blockly.Msg["LOOKS_CHANGESTRETCHBY"] = "change stretch by %1";
88
- Blockly.Msg["LOOKS_SETSTRETCHTO"] = "set stretch to %1 %";
89
- Blockly.Msg["LOOKS_SWITCHCOSTUMETO"] = "switch costume to %1";
90
- Blockly.Msg["LOOKS_NEXTCOSTUME"] = "next costume";
91
- Blockly.Msg["LOOKS_SWITCHBACKDROPTO"] = "switch backdrop to %1";
92
- Blockly.Msg["LOOKS_GOTOFRONTBACK"] = "go to %1 layer";
93
- Blockly.Msg["LOOKS_GOTOFRONTBACK_FRONT"] = "front";
94
- Blockly.Msg["LOOKS_GOTOFRONTBACK_BACK"] = "back";
95
- Blockly.Msg["LOOKS_GOFORWARDBACKWARDLAYERS"] = "go %1 %2 layers";
96
- Blockly.Msg["LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD"] = "forward";
97
- Blockly.Msg["LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD"] = "backward";
98
- Blockly.Msg["LOOKS_BACKDROPNUMBERNAME"] = "backdrop %1";
99
- Blockly.Msg["LOOKS_COSTUMENUMBERNAME"] = "costume %1";
100
- Blockly.Msg["LOOKS_NUMBERNAME_NUMBER"] = "number";
101
- Blockly.Msg["LOOKS_NUMBERNAME_NAME"] = "name";
102
- Blockly.Msg["LOOKS_SWITCHBACKDROPTOANDWAIT"] = "switch backdrop to %1 and wait";
103
- Blockly.Msg["LOOKS_NEXTBACKDROP_BLOCK"] = "next backdrop";
104
- Blockly.Msg["LOOKS_NEXTBACKDROP"] = "next backdrop";
105
- Blockly.Msg["LOOKS_PREVIOUSBACKDROP"] = "previous backdrop";
106
- Blockly.Msg["LOOKS_RANDOMBACKDROP"] = "random backdrop";
107
- Blockly.Msg["MOTION_MOVESTEPS"] = "move %1 steps";
108
- Blockly.Msg["MOTION_TURNLEFT"] = "turn %1 %2 degrees";
109
- Blockly.Msg["MOTION_TURNRIGHT"] = "turn %1 %2 degrees";
110
- Blockly.Msg["MOTION_POINTINDIRECTION"] = "point in direction %1";
111
- Blockly.Msg["MOTION_POINTTOWARDS"] = "point towards %1";
112
- Blockly.Msg["MOTION_POINTTOWARDS_POINTER"] = "mouse-pointer";
113
- Blockly.Msg["MOTION_POINTTOWARDS_RANDOM"] = "random direction";
114
- Blockly.Msg["MOTION_GOTO"] = "go to %1";
115
- Blockly.Msg["MOTION_GOTO_POINTER"] = "mouse-pointer";
116
- Blockly.Msg["MOTION_GOTO_RANDOM"] = "random position";
117
- Blockly.Msg["MOTION_GOTOXY"] = "go to x: %1 y: %2";
118
- Blockly.Msg["MOTION_GLIDESECSTOXY"] = "glide %1 secs to x: %2 y: %3";
119
- Blockly.Msg["MOTION_GLIDETO"] = "glide %1 secs to %2";
120
- Blockly.Msg["MOTION_GLIDETO_POINTER"] = "mouse-pointer";
121
- Blockly.Msg["MOTION_GLIDETO_RANDOM"] = "random position";
122
- Blockly.Msg["MOTION_CHANGEXBY"] = "change x by %1";
123
- Blockly.Msg["MOTION_SETX"] = "set x to %1";
124
- Blockly.Msg["MOTION_CHANGEYBY"] = "change y by %1";
125
- Blockly.Msg["MOTION_SETY"] = "set y to %1";
126
- Blockly.Msg["MOTION_IFONEDGEBOUNCE"] = "if on edge, bounce";
127
- Blockly.Msg["MOTION_SETROTATIONSTYLE"] = "set rotation style %1";
128
- Blockly.Msg["MOTION_SETROTATIONSTYLE_LEFTRIGHT"] = "left-right";
129
- Blockly.Msg["MOTION_SETROTATIONSTYLE_DONTROTATE"] = "don't rotate";
130
- Blockly.Msg["MOTION_SETROTATIONSTYLE_ALLAROUND"] = "all around";
131
- Blockly.Msg["MOTION_XPOSITION"] = "x position";
132
- Blockly.Msg["MOTION_YPOSITION"] = "y position";
133
- Blockly.Msg["MOTION_DIRECTION"] = "direction";
134
- Blockly.Msg["MOTION_SCROLLRIGHT"] = "scroll right %1";
135
- Blockly.Msg["MOTION_SCROLLUP"] = "scroll up %1";
136
- Blockly.Msg["MOTION_ALIGNSCENE"] = "align scene %1";
137
- Blockly.Msg["MOTION_ALIGNSCENE_BOTTOMLEFT"] = "bottom-left";
138
- Blockly.Msg["MOTION_ALIGNSCENE_BOTTOMRIGHT"] = "bottom-right";
139
- Blockly.Msg["MOTION_ALIGNSCENE_MIDDLE"] = "middle";
140
- Blockly.Msg["MOTION_ALIGNSCENE_TOPLEFT"] = "top-left";
141
- Blockly.Msg["MOTION_ALIGNSCENE_TOPRIGHT"] = "top-right";
142
- Blockly.Msg["MOTION_XSCROLL"] = "x scroll";
143
- Blockly.Msg["MOTION_YSCROLL"] = "y scroll";
144
- Blockly.Msg["MOTION_STAGE_SELECTED"] = "Stage selected: no motion blocks";
145
- Blockly.Msg["OPERATORS_ADD"] = "%1 + %2";
146
- Blockly.Msg["OPERATORS_SUBTRACT"] = "%1 - %2";
147
- Blockly.Msg["OPERATORS_MULTIPLY"] = "%1 * %2";
148
- Blockly.Msg["OPERATORS_DIVIDE"] = "%1 / %2";
149
- Blockly.Msg["OPERATORS_RANDOM"] = "pick random %1 to %2";
150
- Blockly.Msg["OPERATORS_GT"] = "%1 > %2";
151
- Blockly.Msg["OPERATORS_LT"] = "%1 < %2";
152
- Blockly.Msg["OPERATORS_EQUALS"] = "%1 = %2";
153
- Blockly.Msg["OPERATORS_AND"] = "%1 and %2";
154
- Blockly.Msg["OPERATORS_OR"] = "%1 or %2";
155
- Blockly.Msg["OPERATORS_NOT"] = "not %1";
156
- Blockly.Msg["OPERATORS_JOIN"] = "join %1 %2";
157
- Blockly.Msg["OPERATORS_JOIN_APPLE"] = "apple";
158
- Blockly.Msg["OPERATORS_JOIN_BANANA"] = "banana";
159
- Blockly.Msg["OPERATORS_LETTEROF"] = "letter %1 of %2";
160
- Blockly.Msg["OPERATORS_LETTEROF_APPLE"] = "a";
161
- Blockly.Msg["OPERATORS_LENGTH"] = "length of %1";
162
- Blockly.Msg["OPERATORS_CONTAINS"] = "%1 contains %2?";
163
- Blockly.Msg["OPERATORS_MOD"] = "%1 mod %2";
164
- Blockly.Msg["OPERATORS_ROUND"] = "round %1";
165
- Blockly.Msg["OPERATORS_MATHOP"] = "%1 of %2";
166
- Blockly.Msg["OPERATORS_MATHOP_ABS"] = "abs";
167
- Blockly.Msg["OPERATORS_MATHOP_FLOOR"] = "floor";
168
- Blockly.Msg["OPERATORS_MATHOP_CEILING"] = "ceiling";
169
- Blockly.Msg["OPERATORS_MATHOP_SQRT"] = "sqrt";
170
- Blockly.Msg["OPERATORS_MATHOP_SIN"] = "sin";
171
- Blockly.Msg["OPERATORS_MATHOP_COS"] = "cos";
172
- Blockly.Msg["OPERATORS_MATHOP_TAN"] = "tan";
173
- Blockly.Msg["OPERATORS_MATHOP_ASIN"] = "asin";
174
- Blockly.Msg["OPERATORS_MATHOP_ACOS"] = "acos";
175
- Blockly.Msg["OPERATORS_MATHOP_ATAN"] = "atan";
176
- Blockly.Msg["OPERATORS_MATHOP_LN"] = "ln";
177
- Blockly.Msg["OPERATORS_MATHOP_LOG"] = "log";
178
- Blockly.Msg["OPERATORS_MATHOP_EEXP"] = "e ^";
179
- Blockly.Msg["OPERATORS_MATHOP_10EXP"] = "10 ^";
180
- Blockly.Msg["PROCEDURES_DEFINITION"] = "define %1";
181
- Blockly.Msg["SENSING_TOUCHINGOBJECT"] = "touching %1?";
182
- Blockly.Msg["SENSING_TOUCHINGOBJECT_POINTER"] = "mouse-pointer";
183
- Blockly.Msg["SENSING_TOUCHINGOBJECT_EDGE"] = "edge";
184
- Blockly.Msg["SENSING_TOUCHINGCOLOR"] = "touching color %1?";
185
- Blockly.Msg["SENSING_COLORISTOUCHINGCOLOR"] = "color %1 is touching %2?";
186
- Blockly.Msg["SENSING_DISTANCETO"] = "distance to %1";
187
- Blockly.Msg["SENSING_DISTANCETO_POINTER"] = "mouse-pointer";
188
- Blockly.Msg["SENSING_ASKANDWAIT"] = "ask %1 and wait";
189
- Blockly.Msg["SENSING_ASK_TEXT"] = "What's your name?";
190
- Blockly.Msg["SENSING_ANSWER"] = "answer";
191
- Blockly.Msg["SENSING_KEYPRESSED"] = "key %1 pressed?";
192
- Blockly.Msg["SENSING_MOUSEDOWN"] = "mouse down?";
193
- Blockly.Msg["SENSING_MOUSEX"] = "mouse x";
194
- Blockly.Msg["SENSING_MOUSEY"] = "mouse y";
195
- Blockly.Msg["SENSING_SETDRAGMODE"] = "set drag mode %1";
196
- Blockly.Msg["SENSING_SETDRAGMODE_DRAGGABLE"] = "draggable";
197
- Blockly.Msg["SENSING_SETDRAGMODE_NOTDRAGGABLE"] = "not draggable";
198
- Blockly.Msg["SENSING_LOUDNESS"] = "loudness";
199
- Blockly.Msg["SENSING_LOUD"] = "loud?";
200
- Blockly.Msg["SENSING_TIMER"] = "timer";
201
- Blockly.Msg["SENSING_RESETTIMER"] = "reset timer";
202
- Blockly.Msg["SENSING_OF"] = "%1 of %2";
203
- Blockly.Msg["SENSING_OF_XPOSITION"] = "x position";
204
- Blockly.Msg["SENSING_OF_YPOSITION"] = "y position";
205
- Blockly.Msg["SENSING_OF_DIRECTION"] = "direction";
206
- Blockly.Msg["SENSING_OF_COSTUMENUMBER"] = "costume #";
207
- Blockly.Msg["SENSING_OF_COSTUMENAME"] = "costume name";
208
- Blockly.Msg["SENSING_OF_SIZE"] = "size";
209
- Blockly.Msg["SENSING_OF_VOLUME"] = "volume";
210
- Blockly.Msg["SENSING_OF_BACKDROPNUMBER"] = "backdrop #";
211
- Blockly.Msg["SENSING_OF_BACKDROPNAME"] = "backdrop name";
212
- Blockly.Msg["SENSING_OF_STAGE"] = "Stage";
213
- Blockly.Msg["SENSING_CURRENT"] = "current %1";
214
- Blockly.Msg["SENSING_CURRENT_YEAR"] = "year";
215
- Blockly.Msg["SENSING_CURRENT_MONTH"] = "month";
216
- Blockly.Msg["SENSING_CURRENT_DATE"] = "date";
217
- Blockly.Msg["SENSING_CURRENT_DAYOFWEEK"] = "day of week";
218
- Blockly.Msg["SENSING_CURRENT_HOUR"] = "hour";
219
- Blockly.Msg["SENSING_CURRENT_MINUTE"] = "minute";
220
- Blockly.Msg["SENSING_CURRENT_SECOND"] = "second";
221
- Blockly.Msg["SENSING_DAYSSINCE2000"] = "days since 2000";
222
- Blockly.Msg["SENSING_ONLINE"] = "online?";
223
- Blockly.Msg["SENSING_USERNAME"] = "username";
224
- Blockly.Msg["SENSING_USERID"] = "user id";
225
- Blockly.Msg["SOUND_PLAY"] = "start sound %1";
226
- Blockly.Msg["SOUND_PLAYUNTILDONE"] = "play sound %1 until done";
227
- Blockly.Msg["SOUND_STOPALLSOUNDS"] = "stop all sounds";
228
- Blockly.Msg["SOUND_SETEFFECTO"] = "set %1 effect to %2";
229
- Blockly.Msg["SOUND_CHANGEEFFECTBY"] = "change %1 effect by %2";
230
- Blockly.Msg["SOUND_CLEAREFFECTS"] = "clear sound effects";
231
- Blockly.Msg["SOUND_EFFECTS_PITCH"] = "pitch";
232
- Blockly.Msg["SOUND_EFFECTS_PAN"] = "pan left/right";
233
- Blockly.Msg["SOUND_CHANGEVOLUMEBY"] = "change volume by %1";
234
- Blockly.Msg["SOUND_SETVOLUMETO"] = "set volume to %1%";
235
- Blockly.Msg["SOUND_VOLUME"] = "volume";
236
- Blockly.Msg["SOUND_RECORD"] = "record...";
237
- Blockly.Msg["CATEGORY_MOTION"] = "Motion";
238
- Blockly.Msg["CATEGORY_LOOKS"] = "Looks";
239
- Blockly.Msg["CATEGORY_SOUND"] = "Sound";
240
- Blockly.Msg["CATEGORY_EVENTS"] = "Events";
241
- Blockly.Msg["CATEGORY_CONTROL"] = "Control";
242
- Blockly.Msg["CATEGORY_SENSING"] = "Sensing";
243
- Blockly.Msg["CATEGORY_OPERATORS"] = "Operators";
244
- Blockly.Msg["CATEGORY_VARIABLES"] = "Variables";
245
- Blockly.Msg["CATEGORY_MYBLOCKS"] = "My Blocks";
246
- Blockly.Msg["DUPLICATE"] = "Duplicate";
247
- Blockly.Msg["DELETE"] = "Delete";
248
- Blockly.Msg["ADD_COMMENT"] = "Add Comment";
249
- Blockly.Msg["REMOVE_COMMENT"] = "Remove Comment";
250
- Blockly.Msg["DELETE_BLOCK"] = "Delete Block";
251
- Blockly.Msg["DELETE_X_BLOCKS"] = "Delete %1 Blocks";
252
- Blockly.Msg["DELETE_ALL_BLOCKS"] = "Delete all %1 blocks?";
253
- Blockly.Msg["CLEAN_UP"] = "Clean up Blocks";
254
- Blockly.Msg["HELP"] = "Help";
255
- Blockly.Msg["UNDO"] = "Undo";
256
- Blockly.Msg["REDO"] = "Redo";
257
- Blockly.Msg["EDIT_PROCEDURE"] = "Edit";
258
- Blockly.Msg["SHOW_PROCEDURE_DEFINITION"] = "Go to definition";
259
- Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something...";
260
- Blockly.Msg["COLOUR_HUE_LABEL"] = "Color";
261
- Blockly.Msg["COLOUR_SATURATION_LABEL"] = "Saturation";
262
- Blockly.Msg["COLOUR_BRIGHTNESS_LABEL"] = "Brightness";
263
- Blockly.Msg["CHANGE_VALUE_TITLE"] = "Change value:";
264
- Blockly.Msg["RENAME_VARIABLE"] = "Rename variable";
265
- Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Rename all \"%1\" variables to:";
266
- Blockly.Msg["RENAME_VARIABLE_MODAL_TITLE"] = "Rename Variable";
267
- Blockly.Msg["NEW_VARIABLE"] = "Make a Variable";
268
- Blockly.Msg["NEW_VARIABLE_TITLE"] = "New variable name:";
269
- Blockly.Msg["VARIABLE_MODAL_TITLE"] = "New Variable";
270
- Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named \"%1\" already exists.";
271
- Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named \"%1\" already exists for another variable of type \"%2\".";
272
- Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the \"%2\" variable?";
273
- Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable \"%1\" because it's part of the definition of the function \"%2\"";
274
- Blockly.Msg["DELETE_VARIABLE"] = "Delete the \"%1\" variable";
275
- Blockly.Msg["NEW_PROCEDURE"] = "Make a Block";
276
- Blockly.Msg["PROCEDURE_ALREADY_EXISTS"] = "A procedure named \"%1\" already exists.";
277
- Blockly.Msg["PROCEDURE_DEFAULT_NAME"] = "block name";
278
- Blockly.Msg["PROCEDURE_USED"] = "To delete a block definition, first remove all uses of the block";
279
- Blockly.Msg["NEW_LIST"] = "Make a List";
280
- Blockly.Msg["NEW_LIST_TITLE"] = "New list name:";
281
- Blockly.Msg["LIST_MODAL_TITLE"] = "New List";
282
- Blockly.Msg["LIST_ALREADY_EXISTS"] = "A list named \"%1\" already exists.";
283
- Blockly.Msg["RENAME_LIST_TITLE"] = "Rename all \"%1\" lists to:";
284
- Blockly.Msg["RENAME_LIST_MODAL_TITLE"] = "Rename List";
285
- Blockly.Msg["DEFAULT_LIST_ITEM"] = "thing";
286
- Blockly.Msg["DELETE_LIST"] = "Delete the \"%1\" list";
287
- Blockly.Msg["RENAME_LIST"] = "Rename list";
288
- Blockly.Msg["NEW_BROADCAST_MESSAGE"] = "New message";
289
- Blockly.Msg["NEW_BROADCAST_MESSAGE_TITLE"] = "New message name:";
290
- Blockly.Msg["BROADCAST_MODAL_TITLE"] = "New Message";
291
- Blockly.Msg["DEFAULT_BROADCAST_MESSAGE_NAME"] = "message1";
8
+ Blockly.Msg['CONTROL_FOREVER'] = 'forever'
9
+ Blockly.Msg['CONTROL_REPEAT'] = 'repeat %1'
10
+ Blockly.Msg['CONTROL_IF'] = 'if %1 then'
11
+ Blockly.Msg['CONTROL_ELSE'] = 'else'
12
+ Blockly.Msg['CONTROL_STOP'] = 'stop'
13
+ Blockly.Msg['CONTROL_STOP_ALL'] = 'all'
14
+ Blockly.Msg['CONTROL_STOP_THIS'] = 'this script'
15
+ Blockly.Msg['CONTROL_STOP_OTHER'] = 'other scripts in sprite'
16
+ Blockly.Msg['CONTROL_WAIT'] = 'wait %1 seconds'
17
+ Blockly.Msg['CONTROL_WAITUNTIL'] = 'wait until %1'
18
+ Blockly.Msg['CONTROL_REPEATUNTIL'] = 'repeat until %1'
19
+ Blockly.Msg['CONTROL_WHILE'] = 'while %1'
20
+ Blockly.Msg['CONTROL_FOREACH'] = 'for each %1 in %2'
21
+ Blockly.Msg['CONTROL_STARTASCLONE'] = 'when I start as a clone'
22
+ Blockly.Msg['CONTROL_CREATECLONEOF'] = 'create clone of %1'
23
+ Blockly.Msg['CONTROL_CREATECLONEOF_MYSELF'] = 'myself'
24
+ Blockly.Msg['CONTROL_DELETETHISCLONE'] = 'delete this clone'
25
+ Blockly.Msg['CONTROL_COUNTER'] = 'counter'
26
+ Blockly.Msg['CONTROL_INCRCOUNTER'] = 'increment counter'
27
+ Blockly.Msg['CONTROL_CLEARCOUNTER'] = 'clear counter'
28
+ Blockly.Msg['CONTROL_ALLATONCE'] = 'all at once'
29
+ Blockly.Msg['DATA_SETVARIABLETO'] = 'set %1 to %2'
30
+ Blockly.Msg['DATA_CHANGEVARIABLEBY'] = 'change %1 by %2'
31
+ Blockly.Msg['DATA_SHOWVARIABLE'] = 'show variable %1'
32
+ Blockly.Msg['DATA_HIDEVARIABLE'] = 'hide variable %1'
33
+ Blockly.Msg['DATA_ADDTOLIST'] = 'add %1 to %2'
34
+ Blockly.Msg['DATA_DELETEOFLIST'] = 'delete %1 of %2'
35
+ Blockly.Msg['DATA_DELETEALLOFLIST'] = 'delete all of %1'
36
+ Blockly.Msg['DATA_INSERTATLIST'] = 'insert %1 at %2 of %3'
37
+ Blockly.Msg['DATA_REPLACEITEMOFLIST'] = 'replace item %1 of %2 with %3'
38
+ Blockly.Msg['DATA_ITEMOFLIST'] = 'item %1 of %2'
39
+ Blockly.Msg['DATA_ITEMNUMOFLIST'] = 'item # of %1 in %2'
40
+ Blockly.Msg['DATA_LENGTHOFLIST'] = 'length of %1'
41
+ Blockly.Msg['DATA_LISTCONTAINSITEM'] = '%1 contains %2?'
42
+ Blockly.Msg['DATA_SHOWLIST'] = 'show list %1'
43
+ Blockly.Msg['DATA_HIDELIST'] = 'hide list %1'
44
+ Blockly.Msg['DATA_INDEX_ALL'] = 'all'
45
+ Blockly.Msg['DATA_INDEX_LAST'] = 'last'
46
+ Blockly.Msg['DATA_INDEX_RANDOM'] = 'random'
47
+ Blockly.Msg['EVENT_WHENFLAGCLICKED'] = 'when %1 clicked'
48
+ Blockly.Msg['EVENT_WHENTHISSPRITECLICKED'] = 'when this sprite clicked'
49
+ Blockly.Msg['EVENT_WHENSTAGECLICKED'] = 'when stage clicked'
50
+ Blockly.Msg['EVENT_WHENTOUCHINGOBJECT'] = 'when this sprite touches %1'
51
+ Blockly.Msg['EVENT_WHENBROADCASTRECEIVED'] = 'when I receive %1'
52
+ Blockly.Msg['EVENT_WHENBACKDROPSWITCHESTO'] = 'when backdrop switches to %1'
53
+ Blockly.Msg['EVENT_WHENGREATERTHAN'] = 'when %1 > %2'
54
+ Blockly.Msg['EVENT_WHENGREATERTHAN_TIMER'] = 'timer'
55
+ Blockly.Msg['EVENT_WHENGREATERTHAN_LOUDNESS'] = 'loudness'
56
+ Blockly.Msg['EVENT_BROADCAST'] = 'broadcast %1'
57
+ Blockly.Msg['EVENT_BROADCASTANDWAIT'] = 'broadcast %1 and wait'
58
+ Blockly.Msg['EVENT_WHENKEYPRESSED'] = 'when %1 key pressed'
59
+ Blockly.Msg['EVENT_WHENKEYPRESSED_SPACE'] = 'space'
60
+ Blockly.Msg['EVENT_WHENKEYPRESSED_LEFT'] = 'left arrow'
61
+ Blockly.Msg['EVENT_WHENKEYPRESSED_RIGHT'] = 'right arrow'
62
+ Blockly.Msg['EVENT_WHENKEYPRESSED_DOWN'] = 'down arrow'
63
+ Blockly.Msg['EVENT_WHENKEYPRESSED_UP'] = 'up arrow'
64
+ Blockly.Msg['EVENT_WHENKEYPRESSED_ANY'] = 'any'
65
+ Blockly.Msg['LOOKS_SAYFORSECS'] = 'say %1 for %2 seconds'
66
+ Blockly.Msg['LOOKS_SAY'] = 'say %1'
67
+ Blockly.Msg['LOOKS_HELLO'] = 'Hello!'
68
+ Blockly.Msg['LOOKS_THINKFORSECS'] = 'think %1 for %2 seconds'
69
+ Blockly.Msg['LOOKS_THINK'] = 'think %1'
70
+ Blockly.Msg['LOOKS_HMM'] = 'Hmm...'
71
+ Blockly.Msg['LOOKS_SHOW'] = 'show'
72
+ Blockly.Msg['LOOKS_HIDE'] = 'hide'
73
+ Blockly.Msg['LOOKS_HIDEALLSPRITES'] = 'hide all sprites'
74
+ Blockly.Msg['LOOKS_EFFECT_COLOR'] = 'color'
75
+ Blockly.Msg['LOOKS_EFFECT_FISHEYE'] = 'fisheye'
76
+ Blockly.Msg['LOOKS_EFFECT_WHIRL'] = 'whirl'
77
+ Blockly.Msg['LOOKS_EFFECT_PIXELATE'] = 'pixelate'
78
+ Blockly.Msg['LOOKS_EFFECT_MOSAIC'] = 'mosaic'
79
+ Blockly.Msg['LOOKS_EFFECT_BRIGHTNESS'] = 'brightness'
80
+ Blockly.Msg['LOOKS_EFFECT_GHOST'] = 'ghost'
81
+ Blockly.Msg['LOOKS_CHANGEEFFECTBY'] = 'change %1 effect by %2'
82
+ Blockly.Msg['LOOKS_SETEFFECTTO'] = 'set %1 effect to %2'
83
+ Blockly.Msg['LOOKS_CLEARGRAPHICEFFECTS'] = 'clear graphic effects'
84
+ Blockly.Msg['LOOKS_CHANGESIZEBY'] = 'change size by %1'
85
+ Blockly.Msg['LOOKS_SETSIZETO'] = 'set size to %1 %'
86
+ Blockly.Msg['LOOKS_SIZE'] = 'size'
87
+ Blockly.Msg['LOOKS_CHANGESTRETCHBY'] = 'change stretch by %1'
88
+ Blockly.Msg['LOOKS_SETSTRETCHTO'] = 'set stretch to %1 %'
89
+ Blockly.Msg['LOOKS_SWITCHCOSTUMETO'] = 'switch costume to %1'
90
+ Blockly.Msg['LOOKS_NEXTCOSTUME'] = 'next costume'
91
+ Blockly.Msg['LOOKS_SWITCHBACKDROPTO'] = 'switch backdrop to %1'
92
+ Blockly.Msg['LOOKS_GOTOFRONTBACK'] = 'go to %1 layer'
93
+ Blockly.Msg['LOOKS_GOTOFRONTBACK_FRONT'] = 'front'
94
+ Blockly.Msg['LOOKS_GOTOFRONTBACK_BACK'] = 'back'
95
+ Blockly.Msg['LOOKS_GOFORWARDBACKWARDLAYERS'] = 'go %1 %2 layers'
96
+ Blockly.Msg['LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD'] = 'forward'
97
+ Blockly.Msg['LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD'] = 'backward'
98
+ Blockly.Msg['LOOKS_BACKDROPNUMBERNAME'] = 'backdrop %1'
99
+ Blockly.Msg['LOOKS_COSTUMENUMBERNAME'] = 'costume %1'
100
+ Blockly.Msg['LOOKS_NUMBERNAME_NUMBER'] = 'number'
101
+ Blockly.Msg['LOOKS_NUMBERNAME_NAME'] = 'name'
102
+ Blockly.Msg['LOOKS_SWITCHBACKDROPTOANDWAIT'] = 'switch backdrop to %1 and wait'
103
+ Blockly.Msg['LOOKS_NEXTBACKDROP_BLOCK'] = 'next backdrop'
104
+ Blockly.Msg['LOOKS_NEXTBACKDROP'] = 'next backdrop'
105
+ Blockly.Msg['LOOKS_PREVIOUSBACKDROP'] = 'previous backdrop'
106
+ Blockly.Msg['LOOKS_RANDOMBACKDROP'] = 'random backdrop'
107
+ Blockly.Msg['MOTION_MOVESTEPS'] = 'move %1 steps'
108
+ Blockly.Msg['MOTION_TURNLEFT'] = 'turn %1 %2 degrees'
109
+ Blockly.Msg['MOTION_TURNRIGHT'] = 'turn %1 %2 degrees'
110
+ Blockly.Msg['MOTION_POINTINDIRECTION'] = 'point in direction %1'
111
+ Blockly.Msg['MOTION_POINTTOWARDS'] = 'point towards %1'
112
+ Blockly.Msg['MOTION_POINTTOWARDS_POINTER'] = 'mouse-pointer'
113
+ Blockly.Msg['MOTION_POINTTOWARDS_RANDOM'] = 'random direction'
114
+ Blockly.Msg['MOTION_GOTO'] = 'go to %1'
115
+ Blockly.Msg['MOTION_GOTO_POINTER'] = 'mouse-pointer'
116
+ Blockly.Msg['MOTION_GOTO_RANDOM'] = 'random position'
117
+ Blockly.Msg['MOTION_GOTOXY'] = 'go to x: %1 y: %2'
118
+ Blockly.Msg['MOTION_GLIDESECSTOXY'] = 'glide %1 secs to x: %2 y: %3'
119
+ Blockly.Msg['MOTION_GLIDETO'] = 'glide %1 secs to %2'
120
+ Blockly.Msg['MOTION_GLIDETO_POINTER'] = 'mouse-pointer'
121
+ Blockly.Msg['MOTION_GLIDETO_RANDOM'] = 'random position'
122
+ Blockly.Msg['MOTION_CHANGEXBY'] = 'change x by %1'
123
+ Blockly.Msg['MOTION_SETX'] = 'set x to %1'
124
+ Blockly.Msg['MOTION_CHANGEYBY'] = 'change y by %1'
125
+ Blockly.Msg['MOTION_SETY'] = 'set y to %1'
126
+ Blockly.Msg['MOTION_IFONEDGEBOUNCE'] = 'if on edge, bounce'
127
+ Blockly.Msg['MOTION_SETROTATIONSTYLE'] = 'set rotation style %1'
128
+ Blockly.Msg['MOTION_SETROTATIONSTYLE_LEFTRIGHT'] = 'left-right'
129
+ Blockly.Msg['MOTION_SETROTATIONSTYLE_DONTROTATE'] = "don't rotate"
130
+ Blockly.Msg['MOTION_SETROTATIONSTYLE_ALLAROUND'] = 'all around'
131
+ Blockly.Msg['MOTION_XPOSITION'] = 'x position'
132
+ Blockly.Msg['MOTION_YPOSITION'] = 'y position'
133
+ Blockly.Msg['MOTION_DIRECTION'] = 'direction'
134
+ Blockly.Msg['MOTION_SCROLLRIGHT'] = 'scroll right %1'
135
+ Blockly.Msg['MOTION_SCROLLUP'] = 'scroll up %1'
136
+ Blockly.Msg['MOTION_ALIGNSCENE'] = 'align scene %1'
137
+ Blockly.Msg['MOTION_ALIGNSCENE_BOTTOMLEFT'] = 'bottom-left'
138
+ Blockly.Msg['MOTION_ALIGNSCENE_BOTTOMRIGHT'] = 'bottom-right'
139
+ Blockly.Msg['MOTION_ALIGNSCENE_MIDDLE'] = 'middle'
140
+ Blockly.Msg['MOTION_ALIGNSCENE_TOPLEFT'] = 'top-left'
141
+ Blockly.Msg['MOTION_ALIGNSCENE_TOPRIGHT'] = 'top-right'
142
+ Blockly.Msg['MOTION_XSCROLL'] = 'x scroll'
143
+ Blockly.Msg['MOTION_YSCROLL'] = 'y scroll'
144
+ Blockly.Msg['MOTION_STAGE_SELECTED'] = 'Stage selected: no motion blocks'
145
+ Blockly.Msg['OPERATORS_ADD'] = '%1 + %2'
146
+ Blockly.Msg['OPERATORS_SUBTRACT'] = '%1 - %2'
147
+ Blockly.Msg['OPERATORS_MULTIPLY'] = '%1 * %2'
148
+ Blockly.Msg['OPERATORS_DIVIDE'] = '%1 / %2'
149
+ Blockly.Msg['OPERATORS_RANDOM'] = 'pick random %1 to %2'
150
+ Blockly.Msg['OPERATORS_GT'] = '%1 > %2'
151
+ Blockly.Msg['OPERATORS_LT'] = '%1 < %2'
152
+ Blockly.Msg['OPERATORS_EQUALS'] = '%1 = %2'
153
+ Blockly.Msg['OPERATORS_AND'] = '%1 and %2'
154
+ Blockly.Msg['OPERATORS_OR'] = '%1 or %2'
155
+ Blockly.Msg['OPERATORS_NOT'] = 'not %1'
156
+ Blockly.Msg['OPERATORS_JOIN'] = 'join %1 %2'
157
+ Blockly.Msg['OPERATORS_JOIN_APPLE'] = 'apple'
158
+ Blockly.Msg['OPERATORS_JOIN_BANANA'] = 'banana'
159
+ Blockly.Msg['OPERATORS_LETTEROF'] = 'letter %1 of %2'
160
+ Blockly.Msg['OPERATORS_LETTEROF_APPLE'] = 'a'
161
+ Blockly.Msg['OPERATORS_LENGTH'] = 'length of %1'
162
+ Blockly.Msg['OPERATORS_CONTAINS'] = '%1 contains %2?'
163
+ Blockly.Msg['OPERATORS_MOD'] = '%1 mod %2'
164
+ Blockly.Msg['OPERATORS_ROUND'] = 'round %1'
165
+ Blockly.Msg['OPERATORS_MATHOP'] = '%1 of %2'
166
+ Blockly.Msg['OPERATORS_MATHOP_ABS'] = 'abs'
167
+ Blockly.Msg['OPERATORS_MATHOP_FLOOR'] = 'floor'
168
+ Blockly.Msg['OPERATORS_MATHOP_CEILING'] = 'ceiling'
169
+ Blockly.Msg['OPERATORS_MATHOP_SQRT'] = 'sqrt'
170
+ Blockly.Msg['OPERATORS_MATHOP_SIN'] = 'sin'
171
+ Blockly.Msg['OPERATORS_MATHOP_COS'] = 'cos'
172
+ Blockly.Msg['OPERATORS_MATHOP_TAN'] = 'tan'
173
+ Blockly.Msg['OPERATORS_MATHOP_ASIN'] = 'asin'
174
+ Blockly.Msg['OPERATORS_MATHOP_ACOS'] = 'acos'
175
+ Blockly.Msg['OPERATORS_MATHOP_ATAN'] = 'atan'
176
+ Blockly.Msg['OPERATORS_MATHOP_LN'] = 'ln'
177
+ Blockly.Msg['OPERATORS_MATHOP_LOG'] = 'log'
178
+ Blockly.Msg['OPERATORS_MATHOP_EEXP'] = 'e ^'
179
+ Blockly.Msg['OPERATORS_MATHOP_10EXP'] = '10 ^'
180
+ Blockly.Msg['PROCEDURES_DEFINITION'] = 'define %1'
181
+ Blockly.Msg['SENSING_TOUCHINGOBJECT'] = 'touching %1?'
182
+ Blockly.Msg['SENSING_TOUCHINGOBJECT_POINTER'] = 'mouse-pointer'
183
+ Blockly.Msg['SENSING_TOUCHINGOBJECT_EDGE'] = 'edge'
184
+ Blockly.Msg['SENSING_TOUCHINGCOLOR'] = 'touching color %1?'
185
+ Blockly.Msg['SENSING_COLORISTOUCHINGCOLOR'] = 'color %1 is touching %2?'
186
+ Blockly.Msg['SENSING_DISTANCETO'] = 'distance to %1'
187
+ Blockly.Msg['SENSING_DISTANCETO_POINTER'] = 'mouse-pointer'
188
+ Blockly.Msg['SENSING_ASKANDWAIT'] = 'ask %1 and wait'
189
+ Blockly.Msg['SENSING_ASK_TEXT'] = "What's your name?"
190
+ Blockly.Msg['SENSING_ANSWER'] = 'answer'
191
+ Blockly.Msg['SENSING_KEYPRESSED'] = 'key %1 pressed?'
192
+ Blockly.Msg['SENSING_MOUSEDOWN'] = 'mouse down?'
193
+ Blockly.Msg['SENSING_MOUSEX'] = 'mouse x'
194
+ Blockly.Msg['SENSING_MOUSEY'] = 'mouse y'
195
+ Blockly.Msg['SENSING_SETDRAGMODE'] = 'set drag mode %1'
196
+ Blockly.Msg['SENSING_SETDRAGMODE_DRAGGABLE'] = 'draggable'
197
+ Blockly.Msg['SENSING_SETDRAGMODE_NOTDRAGGABLE'] = 'not draggable'
198
+ Blockly.Msg['SENSING_LOUDNESS'] = 'loudness'
199
+ Blockly.Msg['SENSING_LOUD'] = 'loud?'
200
+ Blockly.Msg['SENSING_TIMER'] = 'timer'
201
+ Blockly.Msg['SENSING_RESETTIMER'] = 'reset timer'
202
+ Blockly.Msg['SENSING_OF'] = '%1 of %2'
203
+ Blockly.Msg['SENSING_OF_XPOSITION'] = 'x position'
204
+ Blockly.Msg['SENSING_OF_YPOSITION'] = 'y position'
205
+ Blockly.Msg['SENSING_OF_DIRECTION'] = 'direction'
206
+ Blockly.Msg['SENSING_OF_COSTUMENUMBER'] = 'costume #'
207
+ Blockly.Msg['SENSING_OF_COSTUMENAME'] = 'costume name'
208
+ Blockly.Msg['SENSING_OF_SIZE'] = 'size'
209
+ Blockly.Msg['SENSING_OF_VOLUME'] = 'volume'
210
+ Blockly.Msg['SENSING_OF_BACKDROPNUMBER'] = 'backdrop #'
211
+ Blockly.Msg['SENSING_OF_BACKDROPNAME'] = 'backdrop name'
212
+ Blockly.Msg['SENSING_OF_STAGE'] = 'Stage'
213
+ Blockly.Msg['SENSING_CURRENT'] = 'current %1'
214
+ Blockly.Msg['SENSING_CURRENT_YEAR'] = 'year'
215
+ Blockly.Msg['SENSING_CURRENT_MONTH'] = 'month'
216
+ Blockly.Msg['SENSING_CURRENT_DATE'] = 'date'
217
+ Blockly.Msg['SENSING_CURRENT_DAYOFWEEK'] = 'day of week'
218
+ Blockly.Msg['SENSING_CURRENT_HOUR'] = 'hour'
219
+ Blockly.Msg['SENSING_CURRENT_MINUTE'] = 'minute'
220
+ Blockly.Msg['SENSING_CURRENT_SECOND'] = 'second'
221
+ Blockly.Msg['SENSING_DAYSSINCE2000'] = 'days since 2000'
222
+ Blockly.Msg['SENSING_ONLINE'] = 'online?'
223
+ Blockly.Msg['SENSING_USERNAME'] = 'username'
224
+ Blockly.Msg['SENSING_USERID'] = 'user id'
225
+ Blockly.Msg['SOUND_PLAY'] = 'start sound %1'
226
+ Blockly.Msg['SOUND_PLAYUNTILDONE'] = 'play sound %1 until done'
227
+ Blockly.Msg['SOUND_STOPALLSOUNDS'] = 'stop all sounds'
228
+ Blockly.Msg['SOUND_SETEFFECTO'] = 'set %1 effect to %2'
229
+ Blockly.Msg['SOUND_CHANGEEFFECTBY'] = 'change %1 effect by %2'
230
+ Blockly.Msg['SOUND_CLEAREFFECTS'] = 'clear sound effects'
231
+ Blockly.Msg['SOUND_EFFECTS_PITCH'] = 'pitch'
232
+ Blockly.Msg['SOUND_EFFECTS_PAN'] = 'pan left/right'
233
+ Blockly.Msg['SOUND_CHANGEVOLUMEBY'] = 'change volume by %1'
234
+ Blockly.Msg['SOUND_SETVOLUMETO'] = 'set volume to %1%'
235
+ Blockly.Msg['SOUND_VOLUME'] = 'volume'
236
+ Blockly.Msg['SOUND_RECORD'] = 'record...'
237
+ Blockly.Msg['CATEGORY_MOTION'] = 'Motion'
238
+ Blockly.Msg['CATEGORY_LOOKS'] = 'Looks'
239
+ Blockly.Msg['CATEGORY_SOUND'] = 'Sound'
240
+ Blockly.Msg['CATEGORY_EVENTS'] = 'Events'
241
+ Blockly.Msg['CATEGORY_CONTROL'] = 'Control'
242
+ Blockly.Msg['CATEGORY_SENSING'] = 'Sensing'
243
+ Blockly.Msg['CATEGORY_OPERATORS'] = 'Operators'
244
+ Blockly.Msg['CATEGORY_VARIABLES'] = 'Variables'
245
+ Blockly.Msg['CATEGORY_MYBLOCKS'] = 'My Blocks'
246
+ Blockly.Msg['DUPLICATE'] = 'Duplicate'
247
+ Blockly.Msg['DELETE'] = 'Delete'
248
+ Blockly.Msg['ADD_COMMENT'] = 'Add Comment'
249
+ Blockly.Msg['REMOVE_COMMENT'] = 'Remove Comment'
250
+ Blockly.Msg['DELETE_BLOCK'] = 'Delete Block'
251
+ Blockly.Msg['DELETE_X_BLOCKS'] = 'Delete %1 Blocks'
252
+ Blockly.Msg['DELETE_ALL_BLOCKS'] = 'Delete all %1 blocks?'
253
+ Blockly.Msg['CLEAN_UP'] = 'Clean up Blocks'
254
+ Blockly.Msg['HELP'] = 'Help'
255
+ Blockly.Msg['UNDO'] = 'Undo'
256
+ Blockly.Msg['REDO'] = 'Redo'
257
+ Blockly.Msg['EDIT_PROCEDURE'] = 'Edit'
258
+ Blockly.Msg['SHOW_PROCEDURE_DEFINITION'] = 'Go to definition'
259
+ Blockly.Msg['WORKSPACE_COMMENT_DEFAULT_TEXT'] = 'Say something...'
260
+ Blockly.Msg['COLOUR_HUE_LABEL'] = 'Color'
261
+ Blockly.Msg['COLOUR_SATURATION_LABEL'] = 'Saturation'
262
+ Blockly.Msg['COLOUR_BRIGHTNESS_LABEL'] = 'Brightness'
263
+ Blockly.Msg['CHANGE_VALUE_TITLE'] = 'Change value:'
264
+ Blockly.Msg['RENAME_VARIABLE'] = 'Rename variable'
265
+ Blockly.Msg['RENAME_VARIABLE_TITLE'] = 'Rename all "%1" variables to:'
266
+ Blockly.Msg['RENAME_VARIABLE_MODAL_TITLE'] = 'Rename Variable'
267
+ Blockly.Msg['NEW_VARIABLE'] = 'Make a Variable'
268
+ Blockly.Msg['NEW_VARIABLE_TITLE'] = 'New variable name:'
269
+ Blockly.Msg['VARIABLE_MODAL_TITLE'] = 'New Variable'
270
+ Blockly.Msg['VARIABLE_ALREADY_EXISTS'] = 'A variable named "%1" already exists.'
271
+ Blockly.Msg['VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE'] =
272
+ 'A variable named "%1" already exists for another variable of type "%2".'
273
+ Blockly.Msg['DELETE_VARIABLE_CONFIRMATION'] = 'Delete %1 uses of the "%2" variable?'
274
+ Blockly.Msg['CANNOT_DELETE_VARIABLE_PROCEDURE'] =
275
+ 'Can\'t delete the variable "%1" because it\'s part of the definition of the function "%2"'
276
+ Blockly.Msg['DELETE_VARIABLE'] = 'Delete the "%1" variable'
277
+ Blockly.Msg['NEW_PROCEDURE'] = 'Make a Block'
278
+ Blockly.Msg['PROCEDURE_ALREADY_EXISTS'] = 'A procedure named "%1" already exists.'
279
+ Blockly.Msg['PROCEDURE_DEFAULT_NAME'] = 'block name'
280
+ Blockly.Msg['PROCEDURE_USED'] = 'To delete a block definition, first remove all uses of the block'
281
+ Blockly.Msg['NEW_LIST'] = 'Make a List'
282
+ Blockly.Msg['NEW_LIST_TITLE'] = 'New list name:'
283
+ Blockly.Msg['LIST_MODAL_TITLE'] = 'New List'
284
+ Blockly.Msg['LIST_ALREADY_EXISTS'] = 'A list named "%1" already exists.'
285
+ Blockly.Msg['RENAME_LIST_TITLE'] = 'Rename all "%1" lists to:'
286
+ Blockly.Msg['RENAME_LIST_MODAL_TITLE'] = 'Rename List'
287
+ Blockly.Msg['DEFAULT_LIST_ITEM'] = 'thing'
288
+ Blockly.Msg['DELETE_LIST'] = 'Delete the "%1" list'
289
+ Blockly.Msg['RENAME_LIST'] = 'Rename list'
290
+ Blockly.Msg['NEW_BROADCAST_MESSAGE'] = 'New message'
291
+ Blockly.Msg['NEW_BROADCAST_MESSAGE_TITLE'] = 'New message name:'
292
+ Blockly.Msg['BROADCAST_MODAL_TITLE'] = 'New Message'
293
+ Blockly.Msg['DEFAULT_BROADCAST_MESSAGE_NAME'] = 'message1'