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/messages.js CHANGED
@@ -27,328 +27,330 @@
27
27
  * IMPORTANT:
28
28
  * All message strings must use single quotes for the scripts to work properly
29
29
  */
30
- 'use strict';
30
+ 'use strict'
31
31
 
32
- goog.provide('Blockly.Msg.en');
32
+ goog.provide('Blockly.Msg.en')
33
33
 
34
- goog.require('Blockly.Msg');
34
+ goog.require('Blockly.Msg')
35
35
 
36
36
  // Control blocks
37
- Blockly.Msg.CONTROL_FOREVER = 'forever';
38
- Blockly.Msg.CONTROL_REPEAT = 'repeat %1';
39
- Blockly.Msg.CONTROL_IF = 'if %1 then';
40
- Blockly.Msg.CONTROL_ELSE = 'else';
41
- Blockly.Msg.CONTROL_STOP = 'stop';
42
- Blockly.Msg.CONTROL_STOP_ALL = 'all';
43
- Blockly.Msg.CONTROL_STOP_THIS = 'this script';
44
- Blockly.Msg.CONTROL_STOP_OTHER = 'other scripts in sprite';
45
- Blockly.Msg.CONTROL_WAIT = 'wait %1 seconds';
46
- Blockly.Msg.CONTROL_WAITUNTIL = 'wait until %1';
47
- Blockly.Msg.CONTROL_REPEATUNTIL = 'repeat until %1';
48
- Blockly.Msg.CONTROL_WHILE = 'while %1';
49
- Blockly.Msg.CONTROL_FOREACH = 'for each %1 in %2';
50
- Blockly.Msg.CONTROL_STARTASCLONE = 'when I start as a clone';
51
- Blockly.Msg.CONTROL_CREATECLONEOF = 'create clone of %1';
52
- Blockly.Msg.CONTROL_CREATECLONEOF_MYSELF = 'myself';
53
- Blockly.Msg.CONTROL_DELETETHISCLONE = 'delete this clone';
54
- Blockly.Msg.CONTROL_COUNTER = 'counter';
55
- Blockly.Msg.CONTROL_INCRCOUNTER = 'increment counter';
56
- Blockly.Msg.CONTROL_CLEARCOUNTER = 'clear counter';
57
- Blockly.Msg.CONTROL_ALLATONCE = 'all at once';
37
+ Blockly.Msg.CONTROL_FOREVER = 'forever'
38
+ Blockly.Msg.CONTROL_REPEAT = 'repeat %1'
39
+ Blockly.Msg.CONTROL_IF = 'if %1 then'
40
+ Blockly.Msg.CONTROL_ELSE = 'else'
41
+ Blockly.Msg.CONTROL_STOP = 'stop'
42
+ Blockly.Msg.CONTROL_STOP_ALL = 'all'
43
+ Blockly.Msg.CONTROL_STOP_THIS = 'this script'
44
+ Blockly.Msg.CONTROL_STOP_OTHER = 'other scripts in sprite'
45
+ Blockly.Msg.CONTROL_WAIT = 'wait %1 seconds'
46
+ Blockly.Msg.CONTROL_WAITUNTIL = 'wait until %1'
47
+ Blockly.Msg.CONTROL_REPEATUNTIL = 'repeat until %1'
48
+ Blockly.Msg.CONTROL_WHILE = 'while %1'
49
+ Blockly.Msg.CONTROL_FOREACH = 'for each %1 in %2'
50
+ Blockly.Msg.CONTROL_STARTASCLONE = 'when I start as a clone'
51
+ Blockly.Msg.CONTROL_CREATECLONEOF = 'create clone of %1'
52
+ Blockly.Msg.CONTROL_CREATECLONEOF_MYSELF = 'myself'
53
+ Blockly.Msg.CONTROL_DELETETHISCLONE = 'delete this clone'
54
+ Blockly.Msg.CONTROL_COUNTER = 'counter'
55
+ Blockly.Msg.CONTROL_INCRCOUNTER = 'increment counter'
56
+ Blockly.Msg.CONTROL_CLEARCOUNTER = 'clear counter'
57
+ Blockly.Msg.CONTROL_ALLATONCE = 'all at once'
58
58
 
59
59
  // Data blocks
60
- Blockly.Msg.DATA_SETVARIABLETO = 'set %1 to %2';
61
- Blockly.Msg.DATA_CHANGEVARIABLEBY = 'change %1 by %2';
62
- Blockly.Msg.DATA_SHOWVARIABLE = 'show variable %1';
63
- Blockly.Msg.DATA_HIDEVARIABLE = 'hide variable %1';
64
- Blockly.Msg.DATA_ADDTOLIST = 'add %1 to %2';
65
- Blockly.Msg.DATA_DELETEOFLIST = 'delete %1 of %2';
66
- Blockly.Msg.DATA_DELETEALLOFLIST = 'delete all of %1';
67
- Blockly.Msg.DATA_INSERTATLIST = 'insert %1 at %2 of %3';
68
- Blockly.Msg.DATA_REPLACEITEMOFLIST = 'replace item %1 of %2 with %3';
69
- Blockly.Msg.DATA_ITEMOFLIST = 'item %1 of %2';
70
- Blockly.Msg.DATA_ITEMNUMOFLIST = 'item # of %1 in %2';
71
- Blockly.Msg.DATA_LENGTHOFLIST = 'length of %1';
72
- Blockly.Msg.DATA_LISTCONTAINSITEM = '%1 contains %2?';
73
- Blockly.Msg.DATA_SHOWLIST = 'show list %1';
74
- Blockly.Msg.DATA_HIDELIST = 'hide list %1';
75
- Blockly.Msg.DATA_INDEX_ALL = 'all';
76
- Blockly.Msg.DATA_INDEX_LAST = 'last';
77
- Blockly.Msg.DATA_INDEX_RANDOM = 'random';
60
+ Blockly.Msg.DATA_SETVARIABLETO = 'set %1 to %2'
61
+ Blockly.Msg.DATA_CHANGEVARIABLEBY = 'change %1 by %2'
62
+ Blockly.Msg.DATA_SHOWVARIABLE = 'show variable %1'
63
+ Blockly.Msg.DATA_HIDEVARIABLE = 'hide variable %1'
64
+ Blockly.Msg.DATA_ADDTOLIST = 'add %1 to %2'
65
+ Blockly.Msg.DATA_DELETEOFLIST = 'delete %1 of %2'
66
+ Blockly.Msg.DATA_DELETEALLOFLIST = 'delete all of %1'
67
+ Blockly.Msg.DATA_INSERTATLIST = 'insert %1 at %2 of %3'
68
+ Blockly.Msg.DATA_REPLACEITEMOFLIST = 'replace item %1 of %2 with %3'
69
+ Blockly.Msg.DATA_ITEMOFLIST = 'item %1 of %2'
70
+ Blockly.Msg.DATA_ITEMNUMOFLIST = 'item # of %1 in %2'
71
+ Blockly.Msg.DATA_LENGTHOFLIST = 'length of %1'
72
+ Blockly.Msg.DATA_LISTCONTAINSITEM = '%1 contains %2?'
73
+ Blockly.Msg.DATA_SHOWLIST = 'show list %1'
74
+ Blockly.Msg.DATA_HIDELIST = 'hide list %1'
75
+ Blockly.Msg.DATA_INDEX_ALL = 'all'
76
+ Blockly.Msg.DATA_INDEX_LAST = 'last'
77
+ Blockly.Msg.DATA_INDEX_RANDOM = 'random'
78
78
 
79
79
  // Event blocks
80
- Blockly.Msg.EVENT_WHENFLAGCLICKED = 'when %1 clicked';
81
- Blockly.Msg.EVENT_WHENTHISSPRITECLICKED = 'when this sprite clicked';
82
- Blockly.Msg.EVENT_WHENSTAGECLICKED = 'when stage clicked';
83
- Blockly.Msg.EVENT_WHENTOUCHINGOBJECT = 'when this sprite touches %1';
84
- Blockly.Msg.EVENT_WHENBROADCASTRECEIVED = 'when I receive %1';
85
- Blockly.Msg.EVENT_WHENBACKDROPSWITCHESTO = 'when backdrop switches to %1';
86
- Blockly.Msg.EVENT_WHENGREATERTHAN = 'when %1 > %2';
87
- Blockly.Msg.EVENT_WHENGREATERTHAN_TIMER = 'timer';
88
- Blockly.Msg.EVENT_WHENGREATERTHAN_LOUDNESS = 'loudness';
89
- Blockly.Msg.EVENT_BROADCAST = 'broadcast %1';
90
- Blockly.Msg.EVENT_BROADCASTANDWAIT = 'broadcast %1 and wait';
91
- Blockly.Msg.EVENT_WHENKEYPRESSED = 'when %1 key pressed';
92
- Blockly.Msg.EVENT_WHENKEYPRESSED_SPACE = 'space';
93
- Blockly.Msg.EVENT_WHENKEYPRESSED_LEFT = 'left arrow';
94
- Blockly.Msg.EVENT_WHENKEYPRESSED_RIGHT = 'right arrow';
95
- Blockly.Msg.EVENT_WHENKEYPRESSED_DOWN = 'down arrow';
96
- Blockly.Msg.EVENT_WHENKEYPRESSED_UP = 'up arrow';
97
- Blockly.Msg.EVENT_WHENKEYPRESSED_ANY = 'any';
80
+ Blockly.Msg.EVENT_WHENFLAGCLICKED = 'when %1 clicked'
81
+ Blockly.Msg.EVENT_WHENTHISSPRITECLICKED = 'when this sprite clicked'
82
+ Blockly.Msg.EVENT_WHENSTAGECLICKED = 'when stage clicked'
83
+ Blockly.Msg.EVENT_WHENTOUCHINGOBJECT = 'when this sprite touches %1'
84
+ Blockly.Msg.EVENT_WHENBROADCASTRECEIVED = 'when I receive %1'
85
+ Blockly.Msg.EVENT_WHENBACKDROPSWITCHESTO = 'when backdrop switches to %1'
86
+ Blockly.Msg.EVENT_WHENGREATERTHAN = 'when %1 > %2'
87
+ Blockly.Msg.EVENT_WHENGREATERTHAN_TIMER = 'timer'
88
+ Blockly.Msg.EVENT_WHENGREATERTHAN_LOUDNESS = 'loudness'
89
+ Blockly.Msg.EVENT_BROADCAST = 'broadcast %1'
90
+ Blockly.Msg.EVENT_BROADCASTANDWAIT = 'broadcast %1 and wait'
91
+ Blockly.Msg.EVENT_WHENKEYPRESSED = 'when %1 key pressed'
92
+ Blockly.Msg.EVENT_WHENKEYPRESSED_SPACE = 'space'
93
+ Blockly.Msg.EVENT_WHENKEYPRESSED_LEFT = 'left arrow'
94
+ Blockly.Msg.EVENT_WHENKEYPRESSED_RIGHT = 'right arrow'
95
+ Blockly.Msg.EVENT_WHENKEYPRESSED_DOWN = 'down arrow'
96
+ Blockly.Msg.EVENT_WHENKEYPRESSED_UP = 'up arrow'
97
+ Blockly.Msg.EVENT_WHENKEYPRESSED_ANY = 'any'
98
98
 
99
99
  // Looks blocks
100
- Blockly.Msg.LOOKS_SAYFORSECS = 'say %1 for %2 seconds';
101
- Blockly.Msg.LOOKS_SAY = 'say %1';
102
- Blockly.Msg.LOOKS_HELLO = 'Hello!';
103
- Blockly.Msg.LOOKS_THINKFORSECS = 'think %1 for %2 seconds';
104
- Blockly.Msg.LOOKS_THINK = 'think %1';
105
- Blockly.Msg.LOOKS_HMM = 'Hmm...';
106
- Blockly.Msg.LOOKS_SHOW = 'show';
107
- Blockly.Msg.LOOKS_HIDE = 'hide';
108
- Blockly.Msg.LOOKS_HIDEALLSPRITES = 'hide all sprites';
109
- Blockly.Msg.LOOKS_EFFECT_COLOR = 'color';
110
- Blockly.Msg.LOOKS_EFFECT_FISHEYE = 'fisheye';
111
- Blockly.Msg.LOOKS_EFFECT_WHIRL = 'whirl';
112
- Blockly.Msg.LOOKS_EFFECT_PIXELATE = 'pixelate';
113
- Blockly.Msg.LOOKS_EFFECT_MOSAIC = 'mosaic';
114
- Blockly.Msg.LOOKS_EFFECT_BRIGHTNESS = 'brightness';
115
- Blockly.Msg.LOOKS_EFFECT_GHOST = 'ghost';
116
- Blockly.Msg.LOOKS_CHANGEEFFECTBY = 'change %1 effect by %2';
117
- Blockly.Msg.LOOKS_SETEFFECTTO = 'set %1 effect to %2';
118
- Blockly.Msg.LOOKS_CLEARGRAPHICEFFECTS = 'clear graphic effects';
119
- Blockly.Msg.LOOKS_CHANGESIZEBY = 'change size by %1';
120
- Blockly.Msg.LOOKS_SETSIZETO = 'set size to %1 %';
121
- Blockly.Msg.LOOKS_SIZE = 'size';
122
- Blockly.Msg.LOOKS_CHANGESTRETCHBY = 'change stretch by %1';
123
- Blockly.Msg.LOOKS_SETSTRETCHTO = 'set stretch to %1 %';
124
- Blockly.Msg.LOOKS_SWITCHCOSTUMETO = 'switch costume to %1';
125
- Blockly.Msg.LOOKS_NEXTCOSTUME = 'next costume';
126
- Blockly.Msg.LOOKS_SWITCHBACKDROPTO = 'switch backdrop to %1';
127
- Blockly.Msg.LOOKS_GOTOFRONTBACK = 'go to %1 layer';
128
- Blockly.Msg.LOOKS_GOTOFRONTBACK_FRONT = 'front';
129
- Blockly.Msg.LOOKS_GOTOFRONTBACK_BACK = 'back';
130
- Blockly.Msg.LOOKS_GOFORWARDBACKWARDLAYERS = 'go %1 %2 layers';
131
- Blockly.Msg.LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD = 'forward';
132
- Blockly.Msg.LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD = 'backward';
133
- Blockly.Msg.LOOKS_BACKDROPNUMBERNAME = 'backdrop %1';
134
- Blockly.Msg.LOOKS_COSTUMENUMBERNAME = 'costume %1';
135
- Blockly.Msg.LOOKS_NUMBERNAME_NUMBER = 'number';
136
- Blockly.Msg.LOOKS_NUMBERNAME_NAME = 'name';
137
- Blockly.Msg.LOOKS_SWITCHBACKDROPTOANDWAIT = 'switch backdrop to %1 and wait';
138
- Blockly.Msg.LOOKS_NEXTBACKDROP_BLOCK = 'next backdrop';
139
- Blockly.Msg.LOOKS_NEXTBACKDROP = 'next backdrop';
140
- Blockly.Msg.LOOKS_PREVIOUSBACKDROP = 'previous backdrop';
141
- Blockly.Msg.LOOKS_RANDOMBACKDROP = 'random backdrop';
100
+ Blockly.Msg.LOOKS_SAYFORSECS = 'say %1 for %2 seconds'
101
+ Blockly.Msg.LOOKS_SAY = 'say %1'
102
+ Blockly.Msg.LOOKS_HELLO = 'Hello!'
103
+ Blockly.Msg.LOOKS_THINKFORSECS = 'think %1 for %2 seconds'
104
+ Blockly.Msg.LOOKS_THINK = 'think %1'
105
+ Blockly.Msg.LOOKS_HMM = 'Hmm...'
106
+ Blockly.Msg.LOOKS_SHOW = 'show'
107
+ Blockly.Msg.LOOKS_HIDE = 'hide'
108
+ Blockly.Msg.LOOKS_HIDEALLSPRITES = 'hide all sprites'
109
+ Blockly.Msg.LOOKS_EFFECT_COLOR = 'color'
110
+ Blockly.Msg.LOOKS_EFFECT_FISHEYE = 'fisheye'
111
+ Blockly.Msg.LOOKS_EFFECT_WHIRL = 'whirl'
112
+ Blockly.Msg.LOOKS_EFFECT_PIXELATE = 'pixelate'
113
+ Blockly.Msg.LOOKS_EFFECT_MOSAIC = 'mosaic'
114
+ Blockly.Msg.LOOKS_EFFECT_BRIGHTNESS = 'brightness'
115
+ Blockly.Msg.LOOKS_EFFECT_GHOST = 'ghost'
116
+ Blockly.Msg.LOOKS_CHANGEEFFECTBY = 'change %1 effect by %2'
117
+ Blockly.Msg.LOOKS_SETEFFECTTO = 'set %1 effect to %2'
118
+ Blockly.Msg.LOOKS_CLEARGRAPHICEFFECTS = 'clear graphic effects'
119
+ Blockly.Msg.LOOKS_CHANGESIZEBY = 'change size by %1'
120
+ Blockly.Msg.LOOKS_SETSIZETO = 'set size to %1 %'
121
+ Blockly.Msg.LOOKS_SIZE = 'size'
122
+ Blockly.Msg.LOOKS_CHANGESTRETCHBY = 'change stretch by %1'
123
+ Blockly.Msg.LOOKS_SETSTRETCHTO = 'set stretch to %1 %'
124
+ Blockly.Msg.LOOKS_SWITCHCOSTUMETO = 'switch costume to %1'
125
+ Blockly.Msg.LOOKS_NEXTCOSTUME = 'next costume'
126
+ Blockly.Msg.LOOKS_SWITCHBACKDROPTO = 'switch backdrop to %1'
127
+ Blockly.Msg.LOOKS_GOTOFRONTBACK = 'go to %1 layer'
128
+ Blockly.Msg.LOOKS_GOTOFRONTBACK_FRONT = 'front'
129
+ Blockly.Msg.LOOKS_GOTOFRONTBACK_BACK = 'back'
130
+ Blockly.Msg.LOOKS_GOFORWARDBACKWARDLAYERS = 'go %1 %2 layers'
131
+ Blockly.Msg.LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD = 'forward'
132
+ Blockly.Msg.LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD = 'backward'
133
+ Blockly.Msg.LOOKS_BACKDROPNUMBERNAME = 'backdrop %1'
134
+ Blockly.Msg.LOOKS_COSTUMENUMBERNAME = 'costume %1'
135
+ Blockly.Msg.LOOKS_NUMBERNAME_NUMBER = 'number'
136
+ Blockly.Msg.LOOKS_NUMBERNAME_NAME = 'name'
137
+ Blockly.Msg.LOOKS_SWITCHBACKDROPTOANDWAIT = 'switch backdrop to %1 and wait'
138
+ Blockly.Msg.LOOKS_NEXTBACKDROP_BLOCK = 'next backdrop'
139
+ Blockly.Msg.LOOKS_NEXTBACKDROP = 'next backdrop'
140
+ Blockly.Msg.LOOKS_PREVIOUSBACKDROP = 'previous backdrop'
141
+ Blockly.Msg.LOOKS_RANDOMBACKDROP = 'random backdrop'
142
142
 
143
143
  // Motion blocks
144
- Blockly.Msg.MOTION_MOVESTEPS = 'move %1 steps';
145
- Blockly.Msg.MOTION_TURNLEFT = 'turn %1 %2 degrees';
146
- Blockly.Msg.MOTION_TURNRIGHT = 'turn %1 %2 degrees';
147
- Blockly.Msg.MOTION_POINTINDIRECTION = 'point in direction %1';
148
- Blockly.Msg.MOTION_POINTTOWARDS = 'point towards %1';
149
- Blockly.Msg.MOTION_POINTTOWARDS_POINTER = 'mouse-pointer';
150
- Blockly.Msg.MOTION_POINTTOWARDS_RANDOM = 'random direction';
151
- Blockly.Msg.MOTION_GOTO = 'go to %1';
152
- Blockly.Msg.MOTION_GOTO_POINTER = 'mouse-pointer';
153
- Blockly.Msg.MOTION_GOTO_RANDOM = 'random position';
154
- Blockly.Msg.MOTION_GOTOXY = 'go to x: %1 y: %2';
155
- Blockly.Msg.MOTION_GLIDESECSTOXY = 'glide %1 secs to x: %2 y: %3';
156
- Blockly.Msg.MOTION_GLIDETO = 'glide %1 secs to %2';
157
- Blockly.Msg.MOTION_GLIDETO_POINTER = 'mouse-pointer';
158
- Blockly.Msg.MOTION_GLIDETO_RANDOM = 'random position';
159
- Blockly.Msg.MOTION_CHANGEXBY = 'change x by %1';
160
- Blockly.Msg.MOTION_SETX = 'set x to %1';
161
- Blockly.Msg.MOTION_CHANGEYBY = 'change y by %1';
162
- Blockly.Msg.MOTION_SETY = 'set y to %1';
163
- Blockly.Msg.MOTION_IFONEDGEBOUNCE = 'if on edge, bounce';
164
- Blockly.Msg.MOTION_SETROTATIONSTYLE = 'set rotation style %1';
165
- Blockly.Msg.MOTION_SETROTATIONSTYLE_LEFTRIGHT = 'left-right';
166
- Blockly.Msg.MOTION_SETROTATIONSTYLE_DONTROTATE = 'don\'t rotate';
167
- Blockly.Msg.MOTION_SETROTATIONSTYLE_ALLAROUND = 'all around';
168
- Blockly.Msg.MOTION_XPOSITION = 'x position';
169
- Blockly.Msg.MOTION_YPOSITION = 'y position';
170
- Blockly.Msg.MOTION_DIRECTION = 'direction';
171
- Blockly.Msg.MOTION_SCROLLRIGHT = 'scroll right %1';
172
- Blockly.Msg.MOTION_SCROLLUP = 'scroll up %1';
173
- Blockly.Msg.MOTION_ALIGNSCENE = 'align scene %1';
174
- Blockly.Msg.MOTION_ALIGNSCENE_BOTTOMLEFT = 'bottom-left';
175
- Blockly.Msg.MOTION_ALIGNSCENE_BOTTOMRIGHT = 'bottom-right';
176
- Blockly.Msg.MOTION_ALIGNSCENE_MIDDLE = 'middle';
177
- Blockly.Msg.MOTION_ALIGNSCENE_TOPLEFT = 'top-left';
178
- Blockly.Msg.MOTION_ALIGNSCENE_TOPRIGHT = 'top-right';
179
- Blockly.Msg.MOTION_XSCROLL = 'x scroll';
180
- Blockly.Msg.MOTION_YSCROLL = 'y scroll';
181
- Blockly.Msg.MOTION_STAGE_SELECTED = 'Stage selected: no motion blocks';
144
+ Blockly.Msg.MOTION_MOVESTEPS = 'move %1 steps'
145
+ Blockly.Msg.MOTION_TURNLEFT = 'turn %1 %2 degrees'
146
+ Blockly.Msg.MOTION_TURNRIGHT = 'turn %1 %2 degrees'
147
+ Blockly.Msg.MOTION_POINTINDIRECTION = 'point in direction %1'
148
+ Blockly.Msg.MOTION_POINTTOWARDS = 'point towards %1'
149
+ Blockly.Msg.MOTION_POINTTOWARDS_POINTER = 'mouse-pointer'
150
+ Blockly.Msg.MOTION_POINTTOWARDS_RANDOM = 'random direction'
151
+ Blockly.Msg.MOTION_GOTO = 'go to %1'
152
+ Blockly.Msg.MOTION_GOTO_POINTER = 'mouse-pointer'
153
+ Blockly.Msg.MOTION_GOTO_RANDOM = 'random position'
154
+ Blockly.Msg.MOTION_GOTOXY = 'go to x: %1 y: %2'
155
+ Blockly.Msg.MOTION_GLIDESECSTOXY = 'glide %1 secs to x: %2 y: %3'
156
+ Blockly.Msg.MOTION_GLIDETO = 'glide %1 secs to %2'
157
+ Blockly.Msg.MOTION_GLIDETO_POINTER = 'mouse-pointer'
158
+ Blockly.Msg.MOTION_GLIDETO_RANDOM = 'random position'
159
+ Blockly.Msg.MOTION_CHANGEXBY = 'change x by %1'
160
+ Blockly.Msg.MOTION_SETX = 'set x to %1'
161
+ Blockly.Msg.MOTION_CHANGEYBY = 'change y by %1'
162
+ Blockly.Msg.MOTION_SETY = 'set y to %1'
163
+ Blockly.Msg.MOTION_IFONEDGEBOUNCE = 'if on edge, bounce'
164
+ Blockly.Msg.MOTION_SETROTATIONSTYLE = 'set rotation style %1'
165
+ Blockly.Msg.MOTION_SETROTATIONSTYLE_LEFTRIGHT = 'left-right'
166
+ Blockly.Msg.MOTION_SETROTATIONSTYLE_DONTROTATE = "don't rotate"
167
+ Blockly.Msg.MOTION_SETROTATIONSTYLE_ALLAROUND = 'all around'
168
+ Blockly.Msg.MOTION_XPOSITION = 'x position'
169
+ Blockly.Msg.MOTION_YPOSITION = 'y position'
170
+ Blockly.Msg.MOTION_DIRECTION = 'direction'
171
+ Blockly.Msg.MOTION_SCROLLRIGHT = 'scroll right %1'
172
+ Blockly.Msg.MOTION_SCROLLUP = 'scroll up %1'
173
+ Blockly.Msg.MOTION_ALIGNSCENE = 'align scene %1'
174
+ Blockly.Msg.MOTION_ALIGNSCENE_BOTTOMLEFT = 'bottom-left'
175
+ Blockly.Msg.MOTION_ALIGNSCENE_BOTTOMRIGHT = 'bottom-right'
176
+ Blockly.Msg.MOTION_ALIGNSCENE_MIDDLE = 'middle'
177
+ Blockly.Msg.MOTION_ALIGNSCENE_TOPLEFT = 'top-left'
178
+ Blockly.Msg.MOTION_ALIGNSCENE_TOPRIGHT = 'top-right'
179
+ Blockly.Msg.MOTION_XSCROLL = 'x scroll'
180
+ Blockly.Msg.MOTION_YSCROLL = 'y scroll'
181
+ Blockly.Msg.MOTION_STAGE_SELECTED = 'Stage selected: no motion blocks'
182
182
 
183
183
  // Operators blocks
184
- Blockly.Msg.OPERATORS_ADD = '%1 + %2';
185
- Blockly.Msg.OPERATORS_SUBTRACT = '%1 - %2';
186
- Blockly.Msg.OPERATORS_MULTIPLY = '%1 * %2';
187
- Blockly.Msg.OPERATORS_DIVIDE = '%1 / %2';
188
- Blockly.Msg.OPERATORS_RANDOM = 'pick random %1 to %2';
189
- Blockly.Msg.OPERATORS_GT = '%1 > %2';
190
- Blockly.Msg.OPERATORS_LT = '%1 < %2';
191
- Blockly.Msg.OPERATORS_EQUALS = '%1 = %2';
192
- Blockly.Msg.OPERATORS_AND = '%1 and %2';
193
- Blockly.Msg.OPERATORS_OR = '%1 or %2';
194
- Blockly.Msg.OPERATORS_NOT = 'not %1';
195
- Blockly.Msg.OPERATORS_JOIN = 'join %1 %2';
196
- Blockly.Msg.OPERATORS_JOIN_APPLE = 'apple';
197
- Blockly.Msg.OPERATORS_JOIN_BANANA = 'banana';
198
- Blockly.Msg.OPERATORS_LETTEROF = 'letter %1 of %2';
199
- Blockly.Msg.OPERATORS_LETTEROF_APPLE = 'a';
200
- Blockly.Msg.OPERATORS_LENGTH = 'length of %1';
201
- Blockly.Msg.OPERATORS_CONTAINS = '%1 contains %2?';
202
- Blockly.Msg.OPERATORS_MOD = '%1 mod %2';
203
- Blockly.Msg.OPERATORS_ROUND = 'round %1';
204
- Blockly.Msg.OPERATORS_MATHOP = '%1 of %2';
205
- Blockly.Msg.OPERATORS_MATHOP_ABS = 'abs';
206
- Blockly.Msg.OPERATORS_MATHOP_FLOOR = 'floor';
207
- Blockly.Msg.OPERATORS_MATHOP_CEILING = 'ceiling';
208
- Blockly.Msg.OPERATORS_MATHOP_SQRT = 'sqrt';
209
- Blockly.Msg.OPERATORS_MATHOP_SIN = 'sin';
210
- Blockly.Msg.OPERATORS_MATHOP_COS = 'cos';
211
- Blockly.Msg.OPERATORS_MATHOP_TAN = 'tan';
212
- Blockly.Msg.OPERATORS_MATHOP_ASIN = 'asin';
213
- Blockly.Msg.OPERATORS_MATHOP_ACOS = 'acos';
214
- Blockly.Msg.OPERATORS_MATHOP_ATAN = 'atan';
215
- Blockly.Msg.OPERATORS_MATHOP_LN = 'ln';
216
- Blockly.Msg.OPERATORS_MATHOP_LOG = 'log';
217
- Blockly.Msg.OPERATORS_MATHOP_EEXP = 'e ^';
218
- Blockly.Msg.OPERATORS_MATHOP_10EXP = '10 ^';
184
+ Blockly.Msg.OPERATORS_ADD = '%1 + %2'
185
+ Blockly.Msg.OPERATORS_SUBTRACT = '%1 - %2'
186
+ Blockly.Msg.OPERATORS_MULTIPLY = '%1 * %2'
187
+ Blockly.Msg.OPERATORS_DIVIDE = '%1 / %2'
188
+ Blockly.Msg.OPERATORS_RANDOM = 'pick random %1 to %2'
189
+ Blockly.Msg.OPERATORS_GT = '%1 > %2'
190
+ Blockly.Msg.OPERATORS_LT = '%1 < %2'
191
+ Blockly.Msg.OPERATORS_EQUALS = '%1 = %2'
192
+ Blockly.Msg.OPERATORS_AND = '%1 and %2'
193
+ Blockly.Msg.OPERATORS_OR = '%1 or %2'
194
+ Blockly.Msg.OPERATORS_NOT = 'not %1'
195
+ Blockly.Msg.OPERATORS_JOIN = 'join %1 %2'
196
+ Blockly.Msg.OPERATORS_JOIN_APPLE = 'apple'
197
+ Blockly.Msg.OPERATORS_JOIN_BANANA = 'banana'
198
+ Blockly.Msg.OPERATORS_LETTEROF = 'letter %1 of %2'
199
+ Blockly.Msg.OPERATORS_LETTEROF_APPLE = 'a'
200
+ Blockly.Msg.OPERATORS_LENGTH = 'length of %1'
201
+ Blockly.Msg.OPERATORS_CONTAINS = '%1 contains %2?'
202
+ Blockly.Msg.OPERATORS_MOD = '%1 mod %2'
203
+ Blockly.Msg.OPERATORS_ROUND = 'round %1'
204
+ Blockly.Msg.OPERATORS_MATHOP = '%1 of %2'
205
+ Blockly.Msg.OPERATORS_MATHOP_ABS = 'abs'
206
+ Blockly.Msg.OPERATORS_MATHOP_FLOOR = 'floor'
207
+ Blockly.Msg.OPERATORS_MATHOP_CEILING = 'ceiling'
208
+ Blockly.Msg.OPERATORS_MATHOP_SQRT = 'sqrt'
209
+ Blockly.Msg.OPERATORS_MATHOP_SIN = 'sin'
210
+ Blockly.Msg.OPERATORS_MATHOP_COS = 'cos'
211
+ Blockly.Msg.OPERATORS_MATHOP_TAN = 'tan'
212
+ Blockly.Msg.OPERATORS_MATHOP_ASIN = 'asin'
213
+ Blockly.Msg.OPERATORS_MATHOP_ACOS = 'acos'
214
+ Blockly.Msg.OPERATORS_MATHOP_ATAN = 'atan'
215
+ Blockly.Msg.OPERATORS_MATHOP_LN = 'ln'
216
+ Blockly.Msg.OPERATORS_MATHOP_LOG = 'log'
217
+ Blockly.Msg.OPERATORS_MATHOP_EEXP = 'e ^'
218
+ Blockly.Msg.OPERATORS_MATHOP_10EXP = '10 ^'
219
219
 
220
220
  // Procedures blocks
221
- Blockly.Msg.PROCEDURES_DEFINITION = 'define %1';
221
+ Blockly.Msg.PROCEDURES_DEFINITION = 'define %1'
222
222
 
223
223
  // Sensing blocks
224
- Blockly.Msg.SENSING_TOUCHINGOBJECT = 'touching %1?';
225
- Blockly.Msg.SENSING_TOUCHINGOBJECT_POINTER = 'mouse-pointer';
226
- Blockly.Msg.SENSING_TOUCHINGOBJECT_EDGE = 'edge';
227
- Blockly.Msg.SENSING_TOUCHINGCOLOR = 'touching color %1?';
228
- Blockly.Msg.SENSING_COLORISTOUCHINGCOLOR = 'color %1 is touching %2?';
229
- Blockly.Msg.SENSING_DISTANCETO = 'distance to %1';
230
- Blockly.Msg.SENSING_DISTANCETO_POINTER = 'mouse-pointer';
231
- Blockly.Msg.SENSING_ASKANDWAIT = 'ask %1 and wait';
232
- Blockly.Msg.SENSING_ASK_TEXT = 'What\'s your name?';
233
- Blockly.Msg.SENSING_ANSWER = 'answer';
234
- Blockly.Msg.SENSING_KEYPRESSED = 'key %1 pressed?';
235
- Blockly.Msg.SENSING_MOUSEDOWN = 'mouse down?';
236
- Blockly.Msg.SENSING_MOUSEX = 'mouse x';
237
- Blockly.Msg.SENSING_MOUSEY = 'mouse y';
238
- Blockly.Msg.SENSING_SETDRAGMODE = 'set drag mode %1';
239
- Blockly.Msg.SENSING_SETDRAGMODE_DRAGGABLE = 'draggable';
240
- Blockly.Msg.SENSING_SETDRAGMODE_NOTDRAGGABLE = 'not draggable';
241
- Blockly.Msg.SENSING_LOUDNESS = 'loudness';
242
- Blockly.Msg.SENSING_LOUD = 'loud?';
243
- Blockly.Msg.SENSING_TIMER = 'timer';
244
- Blockly.Msg.SENSING_RESETTIMER = 'reset timer';
245
- Blockly.Msg.SENSING_OF = '%1 of %2';
246
- Blockly.Msg.SENSING_OF_XPOSITION = 'x position';
247
- Blockly.Msg.SENSING_OF_YPOSITION = 'y position';
248
- Blockly.Msg.SENSING_OF_DIRECTION = 'direction';
249
- Blockly.Msg.SENSING_OF_COSTUMENUMBER = 'costume #';
250
- Blockly.Msg.SENSING_OF_COSTUMENAME = 'costume name';
251
- Blockly.Msg.SENSING_OF_SIZE = 'size';
252
- Blockly.Msg.SENSING_OF_VOLUME = 'volume';
253
- Blockly.Msg.SENSING_OF_BACKDROPNUMBER = 'backdrop #';
254
- Blockly.Msg.SENSING_OF_BACKDROPNAME = 'backdrop name';
255
- Blockly.Msg.SENSING_OF_STAGE = 'Stage';
256
- Blockly.Msg.SENSING_CURRENT = 'current %1';
257
- Blockly.Msg.SENSING_CURRENT_YEAR = 'year';
258
- Blockly.Msg.SENSING_CURRENT_MONTH = 'month';
259
- Blockly.Msg.SENSING_CURRENT_DATE = 'date';
260
- Blockly.Msg.SENSING_CURRENT_DAYOFWEEK = 'day of week';
261
- Blockly.Msg.SENSING_CURRENT_HOUR = 'hour';
262
- Blockly.Msg.SENSING_CURRENT_MINUTE = 'minute';
263
- Blockly.Msg.SENSING_CURRENT_SECOND = 'second';
264
- Blockly.Msg.SENSING_DAYSSINCE2000 = 'days since 2000';
265
- Blockly.Msg.SENSING_ONLINE = 'online?';
266
- Blockly.Msg.SENSING_USERNAME = 'username';
267
- Blockly.Msg.SENSING_USERID = 'user id';
224
+ Blockly.Msg.SENSING_TOUCHINGOBJECT = 'touching %1?'
225
+ Blockly.Msg.SENSING_TOUCHINGOBJECT_POINTER = 'mouse-pointer'
226
+ Blockly.Msg.SENSING_TOUCHINGOBJECT_EDGE = 'edge'
227
+ Blockly.Msg.SENSING_TOUCHINGCOLOR = 'touching color %1?'
228
+ Blockly.Msg.SENSING_COLORISTOUCHINGCOLOR = 'color %1 is touching %2?'
229
+ Blockly.Msg.SENSING_DISTANCETO = 'distance to %1'
230
+ Blockly.Msg.SENSING_DISTANCETO_POINTER = 'mouse-pointer'
231
+ Blockly.Msg.SENSING_ASKANDWAIT = 'ask %1 and wait'
232
+ Blockly.Msg.SENSING_ASK_TEXT = "What's your name?"
233
+ Blockly.Msg.SENSING_ANSWER = 'answer'
234
+ Blockly.Msg.SENSING_KEYPRESSED = 'key %1 pressed?'
235
+ Blockly.Msg.SENSING_MOUSEDOWN = 'mouse down?'
236
+ Blockly.Msg.SENSING_MOUSEX = 'mouse x'
237
+ Blockly.Msg.SENSING_MOUSEY = 'mouse y'
238
+ Blockly.Msg.SENSING_SETDRAGMODE = 'set drag mode %1'
239
+ Blockly.Msg.SENSING_SETDRAGMODE_DRAGGABLE = 'draggable'
240
+ Blockly.Msg.SENSING_SETDRAGMODE_NOTDRAGGABLE = 'not draggable'
241
+ Blockly.Msg.SENSING_LOUDNESS = 'loudness'
242
+ Blockly.Msg.SENSING_LOUD = 'loud?'
243
+ Blockly.Msg.SENSING_TIMER = 'timer'
244
+ Blockly.Msg.SENSING_RESETTIMER = 'reset timer'
245
+ Blockly.Msg.SENSING_OF = '%1 of %2'
246
+ Blockly.Msg.SENSING_OF_XPOSITION = 'x position'
247
+ Blockly.Msg.SENSING_OF_YPOSITION = 'y position'
248
+ Blockly.Msg.SENSING_OF_DIRECTION = 'direction'
249
+ Blockly.Msg.SENSING_OF_COSTUMENUMBER = 'costume #'
250
+ Blockly.Msg.SENSING_OF_COSTUMENAME = 'costume name'
251
+ Blockly.Msg.SENSING_OF_SIZE = 'size'
252
+ Blockly.Msg.SENSING_OF_VOLUME = 'volume'
253
+ Blockly.Msg.SENSING_OF_BACKDROPNUMBER = 'backdrop #'
254
+ Blockly.Msg.SENSING_OF_BACKDROPNAME = 'backdrop name'
255
+ Blockly.Msg.SENSING_OF_STAGE = 'Stage'
256
+ Blockly.Msg.SENSING_CURRENT = 'current %1'
257
+ Blockly.Msg.SENSING_CURRENT_YEAR = 'year'
258
+ Blockly.Msg.SENSING_CURRENT_MONTH = 'month'
259
+ Blockly.Msg.SENSING_CURRENT_DATE = 'date'
260
+ Blockly.Msg.SENSING_CURRENT_DAYOFWEEK = 'day of week'
261
+ Blockly.Msg.SENSING_CURRENT_HOUR = 'hour'
262
+ Blockly.Msg.SENSING_CURRENT_MINUTE = 'minute'
263
+ Blockly.Msg.SENSING_CURRENT_SECOND = 'second'
264
+ Blockly.Msg.SENSING_DAYSSINCE2000 = 'days since 2000'
265
+ Blockly.Msg.SENSING_ONLINE = 'online?'
266
+ Blockly.Msg.SENSING_USERNAME = 'username'
267
+ Blockly.Msg.SENSING_USERID = 'user id'
268
268
 
269
269
  // Sound blocks
270
- Blockly.Msg.SOUND_PLAY = 'start sound %1';
271
- Blockly.Msg.SOUND_PLAYUNTILDONE = 'play sound %1 until done';
272
- Blockly.Msg.SOUND_STOPALLSOUNDS = 'stop all sounds';
273
- Blockly.Msg.SOUND_SETEFFECTO = 'set %1 effect to %2';
274
- Blockly.Msg.SOUND_CHANGEEFFECTBY = 'change %1 effect by %2';
275
- Blockly.Msg.SOUND_CLEAREFFECTS = 'clear sound effects';
276
- Blockly.Msg.SOUND_EFFECTS_PITCH = 'pitch';
277
- Blockly.Msg.SOUND_EFFECTS_PAN = 'pan left/right';
278
- Blockly.Msg.SOUND_CHANGEVOLUMEBY = 'change volume by %1';
279
- Blockly.Msg.SOUND_SETVOLUMETO = 'set volume to %1%';
280
- Blockly.Msg.SOUND_VOLUME = 'volume';
281
- Blockly.Msg.SOUND_RECORD = 'record...';
270
+ Blockly.Msg.SOUND_PLAY = 'start sound %1'
271
+ Blockly.Msg.SOUND_PLAYUNTILDONE = 'play sound %1 until done'
272
+ Blockly.Msg.SOUND_STOPALLSOUNDS = 'stop all sounds'
273
+ Blockly.Msg.SOUND_SETEFFECTO = 'set %1 effect to %2'
274
+ Blockly.Msg.SOUND_CHANGEEFFECTBY = 'change %1 effect by %2'
275
+ Blockly.Msg.SOUND_CLEAREFFECTS = 'clear sound effects'
276
+ Blockly.Msg.SOUND_EFFECTS_PITCH = 'pitch'
277
+ Blockly.Msg.SOUND_EFFECTS_PAN = 'pan left/right'
278
+ Blockly.Msg.SOUND_CHANGEVOLUMEBY = 'change volume by %1'
279
+ Blockly.Msg.SOUND_SETVOLUMETO = 'set volume to %1%'
280
+ Blockly.Msg.SOUND_VOLUME = 'volume'
281
+ Blockly.Msg.SOUND_RECORD = 'record...'
282
282
 
283
283
  // Category labels
284
- Blockly.Msg.CATEGORY_MOTION = 'Motion';
285
- Blockly.Msg.CATEGORY_LOOKS = 'Looks';
286
- Blockly.Msg.CATEGORY_SOUND = 'Sound';
287
- Blockly.Msg.CATEGORY_EVENTS = 'Events';
288
- Blockly.Msg.CATEGORY_CONTROL = 'Control';
289
- Blockly.Msg.CATEGORY_SENSING = 'Sensing';
290
- Blockly.Msg.CATEGORY_OPERATORS = 'Operators';
291
- Blockly.Msg.CATEGORY_VARIABLES = 'Variables';
292
- Blockly.Msg.CATEGORY_MYBLOCKS = 'My Blocks';
284
+ Blockly.Msg.CATEGORY_MOTION = 'Motion'
285
+ Blockly.Msg.CATEGORY_LOOKS = 'Looks'
286
+ Blockly.Msg.CATEGORY_SOUND = 'Sound'
287
+ Blockly.Msg.CATEGORY_EVENTS = 'Events'
288
+ Blockly.Msg.CATEGORY_CONTROL = 'Control'
289
+ Blockly.Msg.CATEGORY_SENSING = 'Sensing'
290
+ Blockly.Msg.CATEGORY_OPERATORS = 'Operators'
291
+ Blockly.Msg.CATEGORY_VARIABLES = 'Variables'
292
+ Blockly.Msg.CATEGORY_MYBLOCKS = 'My Blocks'
293
293
 
294
294
  // Context menus
295
- Blockly.Msg.DUPLICATE = 'Duplicate';
296
- Blockly.Msg.DELETE = 'Delete';
297
- Blockly.Msg.ADD_COMMENT = 'Add Comment';
298
- Blockly.Msg.REMOVE_COMMENT = 'Remove Comment';
299
- Blockly.Msg.DELETE_BLOCK = 'Delete Block';
300
- Blockly.Msg.DELETE_X_BLOCKS = 'Delete %1 Blocks';
301
- Blockly.Msg.DELETE_ALL_BLOCKS = 'Delete all %1 blocks?';
302
- Blockly.Msg.CLEAN_UP = 'Clean up Blocks';
303
- Blockly.Msg.HELP = 'Help';
304
- Blockly.Msg.UNDO = 'Undo';
305
- Blockly.Msg.REDO = 'Redo';
306
- Blockly.Msg.EDIT_PROCEDURE = 'Edit';
307
- Blockly.Msg.SHOW_PROCEDURE_DEFINITION = 'Go to definition';
308
- Blockly.Msg.WORKSPACE_COMMENT_DEFAULT_TEXT = 'Say something...';
295
+ Blockly.Msg.DUPLICATE = 'Duplicate'
296
+ Blockly.Msg.DELETE = 'Delete'
297
+ Blockly.Msg.ADD_COMMENT = 'Add Comment'
298
+ Blockly.Msg.REMOVE_COMMENT = 'Remove Comment'
299
+ Blockly.Msg.DELETE_BLOCK = 'Delete Block'
300
+ Blockly.Msg.DELETE_X_BLOCKS = 'Delete %1 Blocks'
301
+ Blockly.Msg.DELETE_ALL_BLOCKS = 'Delete all %1 blocks?'
302
+ Blockly.Msg.CLEAN_UP = 'Clean up Blocks'
303
+ Blockly.Msg.HELP = 'Help'
304
+ Blockly.Msg.UNDO = 'Undo'
305
+ Blockly.Msg.REDO = 'Redo'
306
+ Blockly.Msg.EDIT_PROCEDURE = 'Edit'
307
+ Blockly.Msg.SHOW_PROCEDURE_DEFINITION = 'Go to definition'
308
+ Blockly.Msg.WORKSPACE_COMMENT_DEFAULT_TEXT = 'Say something...'
309
309
 
310
310
  // Color
311
- Blockly.Msg.COLOUR_HUE_LABEL = 'Color';
312
- Blockly.Msg.COLOUR_SATURATION_LABEL = 'Saturation';
313
- Blockly.Msg.COLOUR_BRIGHTNESS_LABEL = 'Brightness';
311
+ Blockly.Msg.COLOUR_HUE_LABEL = 'Color'
312
+ Blockly.Msg.COLOUR_SATURATION_LABEL = 'Saturation'
313
+ Blockly.Msg.COLOUR_BRIGHTNESS_LABEL = 'Brightness'
314
314
 
315
315
  // Variables
316
316
  // @todo Remove these once fully managed by Scratch VM / Scratch GUI
317
- Blockly.Msg.CHANGE_VALUE_TITLE = 'Change value:';
318
- Blockly.Msg.RENAME_VARIABLE = 'Rename variable';
319
- Blockly.Msg.RENAME_VARIABLE_TITLE = 'Rename all "%1" variables to:';
320
- Blockly.Msg.RENAME_VARIABLE_MODAL_TITLE = 'Rename Variable';
321
- Blockly.Msg.NEW_VARIABLE = 'Make a Variable';
322
- Blockly.Msg.NEW_VARIABLE_TITLE = 'New variable name:';
323
- Blockly.Msg.VARIABLE_MODAL_TITLE = 'New Variable';
324
- Blockly.Msg.VARIABLE_ALREADY_EXISTS = 'A variable named "%1" already exists.';
325
- Blockly.Msg.VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE = 'A variable named "%1" already exists for another variable of type "%2".';
326
- Blockly.Msg.DELETE_VARIABLE_CONFIRMATION = 'Delete %1 uses of the "%2" variable?';
327
- Blockly.Msg.CANNOT_DELETE_VARIABLE_PROCEDURE = 'Can\'t delete the variable "%1" because it\'s part of the definition of the function "%2"';
328
- Blockly.Msg.DELETE_VARIABLE = 'Delete the "%1" variable';
317
+ Blockly.Msg.CHANGE_VALUE_TITLE = 'Change value:'
318
+ Blockly.Msg.RENAME_VARIABLE = 'Rename variable'
319
+ Blockly.Msg.RENAME_VARIABLE_TITLE = 'Rename all "%1" variables to:'
320
+ Blockly.Msg.RENAME_VARIABLE_MODAL_TITLE = 'Rename Variable'
321
+ Blockly.Msg.NEW_VARIABLE = 'Make a Variable'
322
+ Blockly.Msg.NEW_VARIABLE_TITLE = 'New variable name:'
323
+ Blockly.Msg.VARIABLE_MODAL_TITLE = 'New Variable'
324
+ Blockly.Msg.VARIABLE_ALREADY_EXISTS = 'A variable named "%1" already exists.'
325
+ Blockly.Msg.VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE =
326
+ 'A variable named "%1" already exists for another variable of type "%2".'
327
+ Blockly.Msg.DELETE_VARIABLE_CONFIRMATION = 'Delete %1 uses of the "%2" variable?'
328
+ Blockly.Msg.CANNOT_DELETE_VARIABLE_PROCEDURE =
329
+ 'Can\'t delete the variable "%1" because it\'s part of the definition of the function "%2"'
330
+ Blockly.Msg.DELETE_VARIABLE = 'Delete the "%1" variable'
329
331
 
330
332
  // Custom Procedures
331
333
  // @todo Remove these once fully managed by Scratch VM / Scratch GUI
332
- Blockly.Msg.NEW_PROCEDURE = 'Make a Block';
333
- Blockly.Msg.PROCEDURE_ALREADY_EXISTS = 'A procedure named "%1" already exists.';
334
- Blockly.Msg.PROCEDURE_DEFAULT_NAME = 'block name';
335
- Blockly.Msg.PROCEDURE_USED = 'To delete a block definition, first remove all uses of the block';
334
+ Blockly.Msg.NEW_PROCEDURE = 'Make a Block'
335
+ Blockly.Msg.PROCEDURE_ALREADY_EXISTS = 'A procedure named "%1" already exists.'
336
+ Blockly.Msg.PROCEDURE_DEFAULT_NAME = 'block name'
337
+ Blockly.Msg.PROCEDURE_USED = 'To delete a block definition, first remove all uses of the block'
336
338
 
337
339
  // Lists
338
340
  // @todo Remove these once fully managed by Scratch VM / Scratch GUI
339
- Blockly.Msg.NEW_LIST = 'Make a List';
340
- Blockly.Msg.NEW_LIST_TITLE = 'New list name:';
341
- Blockly.Msg.LIST_MODAL_TITLE = 'New List';
342
- Blockly.Msg.LIST_ALREADY_EXISTS = 'A list named "%1" already exists.';
343
- Blockly.Msg.RENAME_LIST_TITLE = 'Rename all "%1" lists to:';
344
- Blockly.Msg.RENAME_LIST_MODAL_TITLE = 'Rename List';
345
- Blockly.Msg.DEFAULT_LIST_ITEM = 'thing';
346
- Blockly.Msg.DELETE_LIST = 'Delete the "%1" list';
347
- Blockly.Msg.RENAME_LIST = 'Rename list';
341
+ Blockly.Msg.NEW_LIST = 'Make a List'
342
+ Blockly.Msg.NEW_LIST_TITLE = 'New list name:'
343
+ Blockly.Msg.LIST_MODAL_TITLE = 'New List'
344
+ Blockly.Msg.LIST_ALREADY_EXISTS = 'A list named "%1" already exists.'
345
+ Blockly.Msg.RENAME_LIST_TITLE = 'Rename all "%1" lists to:'
346
+ Blockly.Msg.RENAME_LIST_MODAL_TITLE = 'Rename List'
347
+ Blockly.Msg.DEFAULT_LIST_ITEM = 'thing'
348
+ Blockly.Msg.DELETE_LIST = 'Delete the "%1" list'
349
+ Blockly.Msg.RENAME_LIST = 'Rename list'
348
350
 
349
351
  // Broadcast Messages
350
352
  // @todo Remove these once fully managed by Scratch VM / Scratch GUI
351
- Blockly.Msg.NEW_BROADCAST_MESSAGE = 'New message';
352
- Blockly.Msg.NEW_BROADCAST_MESSAGE_TITLE = 'New message name:';
353
- Blockly.Msg.BROADCAST_MODAL_TITLE = 'New Message';
354
- Blockly.Msg.DEFAULT_BROADCAST_MESSAGE_NAME = 'message1';
353
+ Blockly.Msg.NEW_BROADCAST_MESSAGE = 'New message'
354
+ Blockly.Msg.NEW_BROADCAST_MESSAGE_TITLE = 'New message name:'
355
+ Blockly.Msg.BROADCAST_MODAL_TITLE = 'New Message'
356
+ Blockly.Msg.DEFAULT_BROADCAST_MESSAGE_NAME = 'message1'