@blockdia/scratch-blocks 0.1.0

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 (243) hide show
  1. package/.nvmrc +1 -0
  2. package/LICENSE +674 -0
  3. package/README.md +57 -0
  4. package/TRADEMARK +1 -0
  5. package/blockly_compressed_horizontal.js +2268 -0
  6. package/blockly_compressed_vertical.js +2296 -0
  7. package/blockly_uncompressed_horizontal.js +1212 -0
  8. package/blockly_uncompressed_vertical.js +1212 -0
  9. package/blocks_common/colour.js +61 -0
  10. package/blocks_common/math.js +159 -0
  11. package/blocks_common/matrix.js +54 -0
  12. package/blocks_common/note.js +58 -0
  13. package/blocks_common/text.js +57 -0
  14. package/blocks_compressed.js +37 -0
  15. package/blocks_compressed_horizontal.js +68 -0
  16. package/blocks_compressed_vertical.js +216 -0
  17. package/blocks_horizontal/control.js +212 -0
  18. package/blocks_horizontal/default_toolbox.js +139 -0
  19. package/blocks_horizontal/event.js +190 -0
  20. package/blocks_horizontal/wedo.js +325 -0
  21. package/blocks_vertical/control.js +532 -0
  22. package/blocks_vertical/data.js +666 -0
  23. package/blocks_vertical/default_toolbox.js +571 -0
  24. package/blocks_vertical/event.js +329 -0
  25. package/blocks_vertical/extensions.js +294 -0
  26. package/blocks_vertical/looks.js +591 -0
  27. package/blocks_vertical/motion.js +587 -0
  28. package/blocks_vertical/operators.js +470 -0
  29. package/blocks_vertical/procedures.js +1051 -0
  30. package/blocks_vertical/sensing.js +555 -0
  31. package/blocks_vertical/sound.js +246 -0
  32. package/blocks_vertical/vertical_extensions.js +289 -0
  33. package/build/gen_blocks.js +1 -0
  34. package/build/test_expect.js +1 -0
  35. package/build/test_input.js +1 -0
  36. package/build.py +647 -0
  37. package/cleanup.sh +101 -0
  38. package/core/block.js +1837 -0
  39. package/core/block_animations.js +107 -0
  40. package/core/block_drag_surface.js +299 -0
  41. package/core/block_dragger.js +424 -0
  42. package/core/block_events.js +531 -0
  43. package/core/block_render_svg_horizontal.js +892 -0
  44. package/core/block_render_svg_vertical.js +1734 -0
  45. package/core/block_svg.js +1355 -0
  46. package/core/blockly.js +620 -0
  47. package/core/blocks.js +37 -0
  48. package/core/bubble.js +664 -0
  49. package/core/bubble_dragger.js +285 -0
  50. package/core/colours.js +177 -0
  51. package/core/comment.js +293 -0
  52. package/core/comment_events.js +539 -0
  53. package/core/connection.js +776 -0
  54. package/core/connection_db.js +300 -0
  55. package/core/constants.js +408 -0
  56. package/core/contextmenu.js +534 -0
  57. package/core/css.js +1354 -0
  58. package/core/data_category.js +490 -0
  59. package/core/dragged_connection_manager.js +260 -0
  60. package/core/dropdowndiv.js +408 -0
  61. package/core/events.js +429 -0
  62. package/core/events_abstract.js +113 -0
  63. package/core/extensions.js +450 -0
  64. package/core/field.js +810 -0
  65. package/core/field_angle.js +410 -0
  66. package/core/field_checkbox.js +133 -0
  67. package/core/field_colour.js +253 -0
  68. package/core/field_colour_slider.js +387 -0
  69. package/core/field_date.js +353 -0
  70. package/core/field_dropdown.js +447 -0
  71. package/core/field_iconmenu.js +309 -0
  72. package/core/field_image.js +200 -0
  73. package/core/field_label.js +136 -0
  74. package/core/field_label_serializable.js +125 -0
  75. package/core/field_matrix.js +566 -0
  76. package/core/field_note.js +850 -0
  77. package/core/field_number.js +366 -0
  78. package/core/field_numberdropdown.js +77 -0
  79. package/core/field_textdropdown.js +164 -0
  80. package/core/field_textinput.js +675 -0
  81. package/core/field_textinput_removable.js +105 -0
  82. package/core/field_variable.js +385 -0
  83. package/core/field_variable_getter.js +185 -0
  84. package/core/field_vertical_separator.js +161 -0
  85. package/core/flyout_base.js +935 -0
  86. package/core/flyout_button.js +324 -0
  87. package/core/flyout_dragger.js +83 -0
  88. package/core/flyout_extension_category_header.js +159 -0
  89. package/core/flyout_horizontal.js +475 -0
  90. package/core/flyout_vertical.js +770 -0
  91. package/core/generator.js +426 -0
  92. package/core/gesture.js +1010 -0
  93. package/core/grid.js +227 -0
  94. package/core/icon.js +205 -0
  95. package/core/inject.js +496 -0
  96. package/core/input.js +285 -0
  97. package/core/insertion_marker_manager.js +678 -0
  98. package/core/intersection_observer.js +102 -0
  99. package/core/msg.js +62 -0
  100. package/core/mutator.js +426 -0
  101. package/core/names.js +198 -0
  102. package/core/options.js +244 -0
  103. package/core/procedures.js +739 -0
  104. package/core/rendered_connection.js +417 -0
  105. package/core/scratch_block_comment.js +646 -0
  106. package/core/scratch_blocks_utils.js +246 -0
  107. package/core/scratch_bubble.js +699 -0
  108. package/core/scratch_events.js +131 -0
  109. package/core/scratch_msgs.js +85 -0
  110. package/core/scrollbar.js +875 -0
  111. package/core/toolbox.js +803 -0
  112. package/core/tooltip.js +337 -0
  113. package/core/touch.js +226 -0
  114. package/core/trashcan.js +343 -0
  115. package/core/ui_events.js +91 -0
  116. package/core/ui_menu_utils.js +68 -0
  117. package/core/utils.js +825 -0
  118. package/core/variable_events.js +259 -0
  119. package/core/variable_map.js +415 -0
  120. package/core/variable_model.js +116 -0
  121. package/core/variables.js +674 -0
  122. package/core/warning.js +199 -0
  123. package/core/widgetdiv.js +344 -0
  124. package/core/workspace.js +673 -0
  125. package/core/workspace_audio.js +170 -0
  126. package/core/workspace_comment.js +426 -0
  127. package/core/workspace_comment_render_svg.js +706 -0
  128. package/core/workspace_comment_svg.js +609 -0
  129. package/core/workspace_drag_surface_svg.js +195 -0
  130. package/core/workspace_dragger.js +132 -0
  131. package/core/workspace_svg.js +2382 -0
  132. package/core/xml.js +930 -0
  133. package/core/zoom_controls.js +301 -0
  134. package/dist/horizontal.js +222 -0
  135. package/dist/vertical.js +222 -0
  136. package/dist/web/horizontal.js +232 -0
  137. package/dist/web/vertical.js +232 -0
  138. package/i18n/common.py +234 -0
  139. package/i18n/create_messages.py +162 -0
  140. package/i18n/create_scratch_msgs.js +69 -0
  141. package/i18n/dedup_json.py +73 -0
  142. package/i18n/js_to_json.js +46 -0
  143. package/i18n/js_to_json.py +136 -0
  144. package/i18n/json_to_js.js +52 -0
  145. package/i18n/json_to_js.py +185 -0
  146. package/i18n/sync_tx_translations.js +111 -0
  147. package/i18n/test_scratch_msgs.js +87 -0
  148. package/i18n/tests.py +47 -0
  149. package/i18n/xliff_to_json.py +232 -0
  150. package/local_build.sh +70 -0
  151. package/media/click.mp3 +0 -0
  152. package/media/click.ogg +0 -0
  153. package/media/click.wav +0 -0
  154. package/media/comment-arrow-down.svg +10 -0
  155. package/media/comment-arrow-up.svg +10 -0
  156. package/media/delete-x.svg +10 -0
  157. package/media/delete.mp3 +0 -0
  158. package/media/delete.ogg +0 -0
  159. package/media/delete.wav +0 -0
  160. package/media/dropdown-arrow-dark.svg +1 -0
  161. package/media/dropdown-arrow.svg +1 -0
  162. package/media/extensions/microbit-block-icon.svg +130 -0
  163. package/media/extensions/music-block-icon.svg +17 -0
  164. package/media/extensions/pen-block-icon.svg +19 -0
  165. package/media/extensions/wedo2-block-icon.svg +36 -0
  166. package/media/eyedropper.svg +22 -0
  167. package/media/green-flag.svg +17 -0
  168. package/media/handclosed.cur +0 -0
  169. package/media/handdelete.cur +0 -0
  170. package/media/handopen.cur +0 -0
  171. package/media/icons/arrow.svg +12 -0
  172. package/media/icons/arrow_button.svg +1 -0
  173. package/media/icons/control_forever.svg +1 -0
  174. package/media/icons/control_repeat.svg +1 -0
  175. package/media/icons/control_stop.svg +1 -0
  176. package/media/icons/control_wait.svg +1 -0
  177. package/media/icons/event_broadcast_blue.svg +1 -0
  178. package/media/icons/event_broadcast_coral.svg +1 -0
  179. package/media/icons/event_broadcast_green.svg +1 -0
  180. package/media/icons/event_broadcast_magenta.svg +1 -0
  181. package/media/icons/event_broadcast_orange.svg +1 -0
  182. package/media/icons/event_broadcast_purple.svg +1 -0
  183. package/media/icons/event_when-broadcast-received_blue.svg +1 -0
  184. package/media/icons/event_when-broadcast-received_coral.svg +1 -0
  185. package/media/icons/event_when-broadcast-received_green.svg +1 -0
  186. package/media/icons/event_when-broadcast-received_magenta.svg +1 -0
  187. package/media/icons/event_when-broadcast-received_orange.svg +1 -0
  188. package/media/icons/event_when-broadcast-received_purple.svg +1 -0
  189. package/media/icons/event_whenflagclicked.svg +1 -0
  190. package/media/icons/remove.svg +19 -0
  191. package/media/icons/set-led_blue.svg +1 -0
  192. package/media/icons/set-led_coral.svg +1 -0
  193. package/media/icons/set-led_green.svg +1 -0
  194. package/media/icons/set-led_magenta.svg +1 -0
  195. package/media/icons/set-led_mystery.svg +1 -0
  196. package/media/icons/set-led_orange.svg +1 -0
  197. package/media/icons/set-led_purple.svg +1 -0
  198. package/media/icons/set-led_white.svg +1 -0
  199. package/media/icons/set-led_yellow.svg +1 -0
  200. package/media/icons/wedo_motor-clockwise.svg +1 -0
  201. package/media/icons/wedo_motor-counterclockwise.svg +1 -0
  202. package/media/icons/wedo_motor-speed_fast.svg +1 -0
  203. package/media/icons/wedo_motor-speed_med.svg +1 -0
  204. package/media/icons/wedo_motor-speed_slow.svg +1 -0
  205. package/media/icons/wedo_when-distance_close.svg +1 -0
  206. package/media/icons/wedo_when-tilt-backward.svg +1 -0
  207. package/media/icons/wedo_when-tilt-forward.svg +1 -0
  208. package/media/icons/wedo_when-tilt-left.svg +1 -0
  209. package/media/icons/wedo_when-tilt-right.svg +1 -0
  210. package/media/icons/wedo_when-tilt.svg +1 -0
  211. package/media/repeat.svg +18 -0
  212. package/media/rotate-left.svg +1 -0
  213. package/media/rotate-right.svg +1 -0
  214. package/media/sprites.png +0 -0
  215. package/media/status-not-ready.svg +13 -0
  216. package/media/status-ready.svg +13 -0
  217. package/media/zoom-in.svg +1 -0
  218. package/media/zoom-out.svg +1 -0
  219. package/media/zoom-reset.svg +1 -0
  220. package/msg/js/en.js +290 -0
  221. package/msg/json/en.json +285 -0
  222. package/msg/messages.js +359 -0
  223. package/msg/scratch_msgs.js +22969 -0
  224. package/package.json +60 -0
  225. package/pull_from_blockly.sh +151 -0
  226. package/renovate.json5 +15 -0
  227. package/shim/blockly_compressed_horizontal-blocks_compressed.js +1 -0
  228. package/shim/blockly_compressed_horizontal.Blockly.js +1 -0
  229. package/shim/blockly_compressed_horizontal.goog.js +1 -0
  230. package/shim/blockly_compressed_horizontal.js +1 -0
  231. package/shim/blockly_compressed_vertical-blocks_compressed.js +1 -0
  232. package/shim/blockly_compressed_vertical.Blockly.js +1 -0
  233. package/shim/blockly_compressed_vertical.goog.js +1 -0
  234. package/shim/blockly_compressed_vertical.js +1 -0
  235. package/shim/blocks_compressed_horizontal-blockly_compressed_horizontal-messages.js +1 -0
  236. package/shim/blocks_compressed_horizontal.js +1 -0
  237. package/shim/blocks_compressed_vertical-blockly_compressed_vertical-messages.js +1 -0
  238. package/shim/blocks_compressed_vertical.js +1 -0
  239. package/shim/gh-pages.js +1 -0
  240. package/shim/horizontal.js +1 -0
  241. package/shim/index.js +17 -0
  242. package/shim/vertical.js +1 -0
  243. package/universal-python.js +82 -0
package/msg/js/en.js ADDED
@@ -0,0 +1,290 @@
1
+ // This file was automatically generated. Do not modify.
2
+
3
+ 'use strict';
4
+
5
+ goog.provide('Blockly.Msg.en');
6
+ goog.require('Blockly.Msg');
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_USERNAME"] = "username";
223
+ Blockly.Msg["SENSING_USERID"] = "user id";
224
+ Blockly.Msg["SOUND_PLAY"] = "start sound %1";
225
+ Blockly.Msg["SOUND_PLAYUNTILDONE"] = "play sound %1 until done";
226
+ Blockly.Msg["SOUND_STOPALLSOUNDS"] = "stop all sounds";
227
+ Blockly.Msg["SOUND_SETEFFECTO"] = "set %1 effect to %2";
228
+ Blockly.Msg["SOUND_CHANGEEFFECTBY"] = "change %1 effect by %2";
229
+ Blockly.Msg["SOUND_CLEAREFFECTS"] = "clear sound effects";
230
+ Blockly.Msg["SOUND_EFFECTS_PITCH"] = "pitch";
231
+ Blockly.Msg["SOUND_EFFECTS_PAN"] = "pan left/right";
232
+ Blockly.Msg["SOUND_CHANGEVOLUMEBY"] = "change volume by %1";
233
+ Blockly.Msg["SOUND_SETVOLUMETO"] = "set volume to %1%";
234
+ Blockly.Msg["SOUND_VOLUME"] = "volume";
235
+ Blockly.Msg["SOUND_RECORD"] = "record...";
236
+ Blockly.Msg["CATEGORY_MOTION"] = "Motion";
237
+ Blockly.Msg["CATEGORY_LOOKS"] = "Looks";
238
+ Blockly.Msg["CATEGORY_SOUND"] = "Sound";
239
+ Blockly.Msg["CATEGORY_EVENTS"] = "Events";
240
+ Blockly.Msg["CATEGORY_CONTROL"] = "Control";
241
+ Blockly.Msg["CATEGORY_SENSING"] = "Sensing";
242
+ Blockly.Msg["CATEGORY_OPERATORS"] = "Operators";
243
+ Blockly.Msg["CATEGORY_VARIABLES"] = "Variables";
244
+ Blockly.Msg["CATEGORY_MYBLOCKS"] = "My Blocks";
245
+ Blockly.Msg["DUPLICATE"] = "Duplicate";
246
+ Blockly.Msg["DELETE"] = "Delete";
247
+ Blockly.Msg["ADD_COMMENT"] = "Add Comment";
248
+ Blockly.Msg["REMOVE_COMMENT"] = "Remove Comment";
249
+ Blockly.Msg["DELETE_BLOCK"] = "Delete Block";
250
+ Blockly.Msg["DELETE_X_BLOCKS"] = "Delete %1 Blocks";
251
+ Blockly.Msg["DELETE_ALL_BLOCKS"] = "Delete all %1 blocks?";
252
+ Blockly.Msg["CLEAN_UP"] = "Clean up Blocks";
253
+ Blockly.Msg["HELP"] = "Help";
254
+ Blockly.Msg["UNDO"] = "Undo";
255
+ Blockly.Msg["REDO"] = "Redo";
256
+ Blockly.Msg["EDIT_PROCEDURE"] = "Edit";
257
+ Blockly.Msg["SHOW_PROCEDURE_DEFINITION"] = "Go to definition";
258
+ Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something...";
259
+ Blockly.Msg["COLOUR_HUE_LABEL"] = "Color";
260
+ Blockly.Msg["COLOUR_SATURATION_LABEL"] = "Saturation";
261
+ Blockly.Msg["COLOUR_BRIGHTNESS_LABEL"] = "Brightness";
262
+ Blockly.Msg["CHANGE_VALUE_TITLE"] = "Change value:";
263
+ Blockly.Msg["RENAME_VARIABLE"] = "Rename variable";
264
+ Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Rename all \"%1\" variables to:";
265
+ Blockly.Msg["RENAME_VARIABLE_MODAL_TITLE"] = "Rename Variable";
266
+ Blockly.Msg["NEW_VARIABLE"] = "Make a Variable";
267
+ Blockly.Msg["NEW_VARIABLE_TITLE"] = "New variable name:";
268
+ Blockly.Msg["VARIABLE_MODAL_TITLE"] = "New Variable";
269
+ Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named \"%1\" already exists.";
270
+ Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named \"%1\" already exists for another variable of type \"%2\".";
271
+ Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the \"%2\" variable?";
272
+ Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable \"%1\" because it's part of the definition of the function \"%2\"";
273
+ Blockly.Msg["DELETE_VARIABLE"] = "Delete the \"%1\" variable";
274
+ Blockly.Msg["NEW_PROCEDURE"] = "Make a Block";
275
+ Blockly.Msg["PROCEDURE_ALREADY_EXISTS"] = "A procedure named \"%1\" already exists.";
276
+ Blockly.Msg["PROCEDURE_DEFAULT_NAME"] = "block name";
277
+ Blockly.Msg["PROCEDURE_USED"] = "To delete a block definition, first remove all uses of the block";
278
+ Blockly.Msg["NEW_LIST"] = "Make a List";
279
+ Blockly.Msg["NEW_LIST_TITLE"] = "New list name:";
280
+ Blockly.Msg["LIST_MODAL_TITLE"] = "New List";
281
+ Blockly.Msg["LIST_ALREADY_EXISTS"] = "A list named \"%1\" already exists.";
282
+ Blockly.Msg["RENAME_LIST_TITLE"] = "Rename all \"%1\" lists to:";
283
+ Blockly.Msg["RENAME_LIST_MODAL_TITLE"] = "Rename List";
284
+ Blockly.Msg["DEFAULT_LIST_ITEM"] = "thing";
285
+ Blockly.Msg["DELETE_LIST"] = "Delete the \"%1\" list";
286
+ Blockly.Msg["RENAME_LIST"] = "Rename list";
287
+ Blockly.Msg["NEW_BROADCAST_MESSAGE"] = "New message";
288
+ Blockly.Msg["NEW_BROADCAST_MESSAGE_TITLE"] = "New message name:";
289
+ Blockly.Msg["BROADCAST_MODAL_TITLE"] = "New Message";
290
+ Blockly.Msg["DEFAULT_BROADCAST_MESSAGE_NAME"] = "message1";
@@ -0,0 +1,285 @@
1
+ {
2
+ "CONTROL_FOREVER": "forever",
3
+ "CONTROL_REPEAT": "repeat %1",
4
+ "CONTROL_IF": "if %1 then",
5
+ "CONTROL_ELSE": "else",
6
+ "CONTROL_STOP": "stop",
7
+ "CONTROL_STOP_ALL": "all",
8
+ "CONTROL_STOP_THIS": "this script",
9
+ "CONTROL_STOP_OTHER": "other scripts in sprite",
10
+ "CONTROL_WAIT": "wait %1 seconds",
11
+ "CONTROL_WAITUNTIL": "wait until %1",
12
+ "CONTROL_REPEATUNTIL": "repeat until %1",
13
+ "CONTROL_WHILE": "while %1",
14
+ "CONTROL_FOREACH": "for each %1 in %2",
15
+ "CONTROL_STARTASCLONE": "when I start as a clone",
16
+ "CONTROL_CREATECLONEOF": "create clone of %1",
17
+ "CONTROL_CREATECLONEOF_MYSELF": "myself",
18
+ "CONTROL_DELETETHISCLONE": "delete this clone",
19
+ "CONTROL_COUNTER": "counter",
20
+ "CONTROL_INCRCOUNTER": "increment counter",
21
+ "CONTROL_CLEARCOUNTER": "clear counter",
22
+ "CONTROL_ALLATONCE": "all at once",
23
+ "DATA_SETVARIABLETO": "set %1 to %2",
24
+ "DATA_CHANGEVARIABLEBY": "change %1 by %2",
25
+ "DATA_SHOWVARIABLE": "show variable %1",
26
+ "DATA_HIDEVARIABLE": "hide variable %1",
27
+ "DATA_ADDTOLIST": "add %1 to %2",
28
+ "DATA_DELETEOFLIST": "delete %1 of %2",
29
+ "DATA_DELETEALLOFLIST": "delete all of %1",
30
+ "DATA_INSERTATLIST": "insert %1 at %2 of %3",
31
+ "DATA_REPLACEITEMOFLIST": "replace item %1 of %2 with %3",
32
+ "DATA_ITEMOFLIST": "item %1 of %2",
33
+ "DATA_ITEMNUMOFLIST": "item # of %1 in %2",
34
+ "DATA_LENGTHOFLIST": "length of %1",
35
+ "DATA_LISTCONTAINSITEM": "%1 contains %2?",
36
+ "DATA_SHOWLIST": "show list %1",
37
+ "DATA_HIDELIST": "hide list %1",
38
+ "DATA_INDEX_ALL": "all",
39
+ "DATA_INDEX_LAST": "last",
40
+ "DATA_INDEX_RANDOM": "random",
41
+ "EVENT_WHENFLAGCLICKED": "when %1 clicked",
42
+ "EVENT_WHENTHISSPRITECLICKED": "when this sprite clicked",
43
+ "EVENT_WHENSTAGECLICKED": "when stage clicked",
44
+ "EVENT_WHENTOUCHINGOBJECT": "when this sprite touches %1",
45
+ "EVENT_WHENBROADCASTRECEIVED": "when I receive %1",
46
+ "EVENT_WHENBACKDROPSWITCHESTO": "when backdrop switches to %1",
47
+ "EVENT_WHENGREATERTHAN": "when %1 > %2",
48
+ "EVENT_WHENGREATERTHAN_TIMER": "timer",
49
+ "EVENT_WHENGREATERTHAN_LOUDNESS": "loudness",
50
+ "EVENT_BROADCAST": "broadcast %1",
51
+ "EVENT_BROADCASTANDWAIT": "broadcast %1 and wait",
52
+ "EVENT_WHENKEYPRESSED": "when %1 key pressed",
53
+ "EVENT_WHENKEYPRESSED_SPACE": "space",
54
+ "EVENT_WHENKEYPRESSED_LEFT": "left arrow",
55
+ "EVENT_WHENKEYPRESSED_RIGHT": "right arrow",
56
+ "EVENT_WHENKEYPRESSED_DOWN": "down arrow",
57
+ "EVENT_WHENKEYPRESSED_UP": "up arrow",
58
+ "EVENT_WHENKEYPRESSED_ANY": "any",
59
+ "LOOKS_SAYFORSECS": "say %1 for %2 seconds",
60
+ "LOOKS_SAY": "say %1",
61
+ "LOOKS_HELLO": "Hello!",
62
+ "LOOKS_THINKFORSECS": "think %1 for %2 seconds",
63
+ "LOOKS_THINK": "think %1",
64
+ "LOOKS_HMM": "Hmm...",
65
+ "LOOKS_SHOW": "show",
66
+ "LOOKS_HIDE": "hide",
67
+ "LOOKS_HIDEALLSPRITES": "hide all sprites",
68
+ "LOOKS_EFFECT_COLOR": "color",
69
+ "LOOKS_EFFECT_FISHEYE": "fisheye",
70
+ "LOOKS_EFFECT_WHIRL": "whirl",
71
+ "LOOKS_EFFECT_PIXELATE": "pixelate",
72
+ "LOOKS_EFFECT_MOSAIC": "mosaic",
73
+ "LOOKS_EFFECT_BRIGHTNESS": "brightness",
74
+ "LOOKS_EFFECT_GHOST": "ghost",
75
+ "LOOKS_CHANGEEFFECTBY": "change %1 effect by %2",
76
+ "LOOKS_SETEFFECTTO": "set %1 effect to %2",
77
+ "LOOKS_CLEARGRAPHICEFFECTS": "clear graphic effects",
78
+ "LOOKS_CHANGESIZEBY": "change size by %1",
79
+ "LOOKS_SETSIZETO": "set size to %1 %",
80
+ "LOOKS_SIZE": "size",
81
+ "LOOKS_CHANGESTRETCHBY": "change stretch by %1",
82
+ "LOOKS_SETSTRETCHTO": "set stretch to %1 %",
83
+ "LOOKS_SWITCHCOSTUMETO": "switch costume to %1",
84
+ "LOOKS_NEXTCOSTUME": "next costume",
85
+ "LOOKS_SWITCHBACKDROPTO": "switch backdrop to %1",
86
+ "LOOKS_GOTOFRONTBACK": "go to %1 layer",
87
+ "LOOKS_GOTOFRONTBACK_FRONT": "front",
88
+ "LOOKS_GOTOFRONTBACK_BACK": "back",
89
+ "LOOKS_GOFORWARDBACKWARDLAYERS": "go %1 %2 layers",
90
+ "LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD": "forward",
91
+ "LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD": "backward",
92
+ "LOOKS_BACKDROPNUMBERNAME": "backdrop %1",
93
+ "LOOKS_COSTUMENUMBERNAME": "costume %1",
94
+ "LOOKS_NUMBERNAME_NUMBER": "number",
95
+ "LOOKS_NUMBERNAME_NAME": "name",
96
+ "LOOKS_SWITCHBACKDROPTOANDWAIT": "switch backdrop to %1 and wait",
97
+ "LOOKS_NEXTBACKDROP_BLOCK": "next backdrop",
98
+ "LOOKS_NEXTBACKDROP": "next backdrop",
99
+ "LOOKS_PREVIOUSBACKDROP": "previous backdrop",
100
+ "LOOKS_RANDOMBACKDROP": "random backdrop",
101
+ "MOTION_MOVESTEPS": "move %1 steps",
102
+ "MOTION_TURNLEFT": "turn %1 %2 degrees",
103
+ "MOTION_TURNRIGHT": "turn %1 %2 degrees",
104
+ "MOTION_POINTINDIRECTION": "point in direction %1",
105
+ "MOTION_POINTTOWARDS": "point towards %1",
106
+ "MOTION_POINTTOWARDS_POINTER": "mouse-pointer",
107
+ "MOTION_POINTTOWARDS_RANDOM": "random direction",
108
+ "MOTION_GOTO": "go to %1",
109
+ "MOTION_GOTO_POINTER": "mouse-pointer",
110
+ "MOTION_GOTO_RANDOM": "random position",
111
+ "MOTION_GOTOXY": "go to x: %1 y: %2",
112
+ "MOTION_GLIDESECSTOXY": "glide %1 secs to x: %2 y: %3",
113
+ "MOTION_GLIDETO": "glide %1 secs to %2",
114
+ "MOTION_GLIDETO_POINTER": "mouse-pointer",
115
+ "MOTION_GLIDETO_RANDOM": "random position",
116
+ "MOTION_CHANGEXBY": "change x by %1",
117
+ "MOTION_SETX": "set x to %1",
118
+ "MOTION_CHANGEYBY": "change y by %1",
119
+ "MOTION_SETY": "set y to %1",
120
+ "MOTION_IFONEDGEBOUNCE": "if on edge, bounce",
121
+ "MOTION_SETROTATIONSTYLE": "set rotation style %1",
122
+ "MOTION_SETROTATIONSTYLE_LEFTRIGHT": "left-right",
123
+ "MOTION_SETROTATIONSTYLE_DONTROTATE": "don't rotate",
124
+ "MOTION_SETROTATIONSTYLE_ALLAROUND": "all around",
125
+ "MOTION_XPOSITION": "x position",
126
+ "MOTION_YPOSITION": "y position",
127
+ "MOTION_DIRECTION": "direction",
128
+ "MOTION_SCROLLRIGHT": "scroll right %1",
129
+ "MOTION_SCROLLUP": "scroll up %1",
130
+ "MOTION_ALIGNSCENE": "align scene %1",
131
+ "MOTION_ALIGNSCENE_BOTTOMLEFT": "bottom-left",
132
+ "MOTION_ALIGNSCENE_BOTTOMRIGHT": "bottom-right",
133
+ "MOTION_ALIGNSCENE_MIDDLE": "middle",
134
+ "MOTION_ALIGNSCENE_TOPLEFT": "top-left",
135
+ "MOTION_ALIGNSCENE_TOPRIGHT": "top-right",
136
+ "MOTION_XSCROLL": "x scroll",
137
+ "MOTION_YSCROLL": "y scroll",
138
+ "MOTION_STAGE_SELECTED": "Stage selected: no motion blocks",
139
+ "OPERATORS_ADD": "%1 + %2",
140
+ "OPERATORS_SUBTRACT": "%1 - %2",
141
+ "OPERATORS_MULTIPLY": "%1 * %2",
142
+ "OPERATORS_DIVIDE": "%1 / %2",
143
+ "OPERATORS_RANDOM": "pick random %1 to %2",
144
+ "OPERATORS_GT": "%1 > %2",
145
+ "OPERATORS_LT": "%1 < %2",
146
+ "OPERATORS_EQUALS": "%1 = %2",
147
+ "OPERATORS_AND": "%1 and %2",
148
+ "OPERATORS_OR": "%1 or %2",
149
+ "OPERATORS_NOT": "not %1",
150
+ "OPERATORS_JOIN": "join %1 %2",
151
+ "OPERATORS_JOIN_APPLE": "apple",
152
+ "OPERATORS_JOIN_BANANA": "banana",
153
+ "OPERATORS_LETTEROF": "letter %1 of %2",
154
+ "OPERATORS_LETTEROF_APPLE": "a",
155
+ "OPERATORS_LENGTH": "length of %1",
156
+ "OPERATORS_CONTAINS": "%1 contains %2?",
157
+ "OPERATORS_MOD": "%1 mod %2",
158
+ "OPERATORS_ROUND": "round %1",
159
+ "OPERATORS_MATHOP": "%1 of %2",
160
+ "OPERATORS_MATHOP_ABS": "abs",
161
+ "OPERATORS_MATHOP_FLOOR": "floor",
162
+ "OPERATORS_MATHOP_CEILING": "ceiling",
163
+ "OPERATORS_MATHOP_SQRT": "sqrt",
164
+ "OPERATORS_MATHOP_SIN": "sin",
165
+ "OPERATORS_MATHOP_COS": "cos",
166
+ "OPERATORS_MATHOP_TAN": "tan",
167
+ "OPERATORS_MATHOP_ASIN": "asin",
168
+ "OPERATORS_MATHOP_ACOS": "acos",
169
+ "OPERATORS_MATHOP_ATAN": "atan",
170
+ "OPERATORS_MATHOP_LN": "ln",
171
+ "OPERATORS_MATHOP_LOG": "log",
172
+ "OPERATORS_MATHOP_EEXP": "e ^",
173
+ "OPERATORS_MATHOP_10EXP": "10 ^",
174
+ "PROCEDURES_DEFINITION": "define %1",
175
+ "SENSING_TOUCHINGOBJECT": "touching %1?",
176
+ "SENSING_TOUCHINGOBJECT_POINTER": "mouse-pointer",
177
+ "SENSING_TOUCHINGOBJECT_EDGE": "edge",
178
+ "SENSING_TOUCHINGCOLOR": "touching color %1?",
179
+ "SENSING_COLORISTOUCHINGCOLOR": "color %1 is touching %2?",
180
+ "SENSING_DISTANCETO": "distance to %1",
181
+ "SENSING_DISTANCETO_POINTER": "mouse-pointer",
182
+ "SENSING_ASKANDWAIT": "ask %1 and wait",
183
+ "SENSING_ASK_TEXT": "What's your name?",
184
+ "SENSING_ANSWER": "answer",
185
+ "SENSING_KEYPRESSED": "key %1 pressed?",
186
+ "SENSING_MOUSEDOWN": "mouse down?",
187
+ "SENSING_MOUSEX": "mouse x",
188
+ "SENSING_MOUSEY": "mouse y",
189
+ "SENSING_SETDRAGMODE": "set drag mode %1",
190
+ "SENSING_SETDRAGMODE_DRAGGABLE": "draggable",
191
+ "SENSING_SETDRAGMODE_NOTDRAGGABLE": "not draggable",
192
+ "SENSING_LOUDNESS": "loudness",
193
+ "SENSING_LOUD": "loud?",
194
+ "SENSING_TIMER": "timer",
195
+ "SENSING_RESETTIMER": "reset timer",
196
+ "SENSING_OF": "%1 of %2",
197
+ "SENSING_OF_XPOSITION": "x position",
198
+ "SENSING_OF_YPOSITION": "y position",
199
+ "SENSING_OF_DIRECTION": "direction",
200
+ "SENSING_OF_COSTUMENUMBER": "costume #",
201
+ "SENSING_OF_COSTUMENAME": "costume name",
202
+ "SENSING_OF_SIZE": "size",
203
+ "SENSING_OF_VOLUME": "volume",
204
+ "SENSING_OF_BACKDROPNUMBER": "backdrop #",
205
+ "SENSING_OF_BACKDROPNAME": "backdrop name",
206
+ "SENSING_OF_STAGE": "Stage",
207
+ "SENSING_CURRENT": "current %1",
208
+ "SENSING_CURRENT_YEAR": "year",
209
+ "SENSING_CURRENT_MONTH": "month",
210
+ "SENSING_CURRENT_DATE": "date",
211
+ "SENSING_CURRENT_DAYOFWEEK": "day of week",
212
+ "SENSING_CURRENT_HOUR": "hour",
213
+ "SENSING_CURRENT_MINUTE": "minute",
214
+ "SENSING_CURRENT_SECOND": "second",
215
+ "SENSING_DAYSSINCE2000": "days since 2000",
216
+ "SENSING_USERNAME": "username",
217
+ "SENSING_USERID": "user id",
218
+ "SOUND_PLAY": "start sound %1",
219
+ "SOUND_PLAYUNTILDONE": "play sound %1 until done",
220
+ "SOUND_STOPALLSOUNDS": "stop all sounds",
221
+ "SOUND_SETEFFECTO": "set %1 effect to %2",
222
+ "SOUND_CHANGEEFFECTBY": "change %1 effect by %2",
223
+ "SOUND_CLEAREFFECTS": "clear sound effects",
224
+ "SOUND_EFFECTS_PITCH": "pitch",
225
+ "SOUND_EFFECTS_PAN": "pan left/right",
226
+ "SOUND_CHANGEVOLUMEBY": "change volume by %1",
227
+ "SOUND_SETVOLUMETO": "set volume to %1%",
228
+ "SOUND_VOLUME": "volume",
229
+ "SOUND_RECORD": "record...",
230
+ "CATEGORY_MOTION": "Motion",
231
+ "CATEGORY_LOOKS": "Looks",
232
+ "CATEGORY_SOUND": "Sound",
233
+ "CATEGORY_EVENTS": "Events",
234
+ "CATEGORY_CONTROL": "Control",
235
+ "CATEGORY_SENSING": "Sensing",
236
+ "CATEGORY_OPERATORS": "Operators",
237
+ "CATEGORY_VARIABLES": "Variables",
238
+ "CATEGORY_MYBLOCKS": "My Blocks",
239
+ "DUPLICATE": "Duplicate",
240
+ "DELETE": "Delete",
241
+ "ADD_COMMENT": "Add Comment",
242
+ "REMOVE_COMMENT": "Remove Comment",
243
+ "DELETE_BLOCK": "Delete Block",
244
+ "DELETE_X_BLOCKS": "Delete %1 Blocks",
245
+ "DELETE_ALL_BLOCKS": "Delete all %1 blocks?",
246
+ "CLEAN_UP": "Clean up Blocks",
247
+ "HELP": "Help",
248
+ "UNDO": "Undo",
249
+ "REDO": "Redo",
250
+ "EDIT_PROCEDURE": "Edit",
251
+ "SHOW_PROCEDURE_DEFINITION": "Go to definition",
252
+ "WORKSPACE_COMMENT_DEFAULT_TEXT": "Say something...",
253
+ "COLOUR_HUE_LABEL": "Color",
254
+ "COLOUR_SATURATION_LABEL": "Saturation",
255
+ "COLOUR_BRIGHTNESS_LABEL": "Brightness",
256
+ "CHANGE_VALUE_TITLE": "Change value:",
257
+ "RENAME_VARIABLE": "Rename variable",
258
+ "RENAME_VARIABLE_TITLE": "Rename all \"%1\" variables to:",
259
+ "RENAME_VARIABLE_MODAL_TITLE": "Rename Variable",
260
+ "NEW_VARIABLE": "Make a Variable",
261
+ "NEW_VARIABLE_TITLE": "New variable name:",
262
+ "VARIABLE_MODAL_TITLE": "New Variable",
263
+ "VARIABLE_ALREADY_EXISTS": "A variable named \"%1\" already exists.",
264
+ "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "A variable named \"%1\" already exists for another variable of type \"%2\".",
265
+ "DELETE_VARIABLE_CONFIRMATION": "Delete %1 uses of the \"%2\" variable?",
266
+ "CANNOT_DELETE_VARIABLE_PROCEDURE": "Can't delete the variable \"%1\" because it's part of the definition of the function \"%2\"",
267
+ "DELETE_VARIABLE": "Delete the \"%1\" variable",
268
+ "NEW_PROCEDURE": "Make a Block",
269
+ "PROCEDURE_ALREADY_EXISTS": "A procedure named \"%1\" already exists.",
270
+ "PROCEDURE_DEFAULT_NAME": "block name",
271
+ "PROCEDURE_USED": "To delete a block definition, first remove all uses of the block",
272
+ "NEW_LIST": "Make a List",
273
+ "NEW_LIST_TITLE": "New list name:",
274
+ "LIST_MODAL_TITLE": "New List",
275
+ "LIST_ALREADY_EXISTS": "A list named \"%1\" already exists.",
276
+ "RENAME_LIST_TITLE": "Rename all \"%1\" lists to:",
277
+ "RENAME_LIST_MODAL_TITLE": "Rename List",
278
+ "DEFAULT_LIST_ITEM": "thing",
279
+ "DELETE_LIST": "Delete the \"%1\" list",
280
+ "RENAME_LIST": "Rename list",
281
+ "NEW_BROADCAST_MESSAGE": "New message",
282
+ "NEW_BROADCAST_MESSAGE_TITLE": "New message name:",
283
+ "BROADCAST_MODAL_TITLE": "New Message",
284
+ "DEFAULT_BROADCAST_MESSAGE_NAME": "message1"
285
+ }