blockly 12.0.0-beta.4 → 12.0.0-beta.6

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 (336) hide show
  1. package/blockly.min.js +715 -664
  2. package/blockly.mjs +11 -1
  3. package/blockly_compressed.js +679 -661
  4. package/blockly_compressed.js.map +1 -1
  5. package/blocks_compressed.js +3 -3
  6. package/blocks_compressed.js.map +1 -1
  7. package/core/block.d.ts +1 -16
  8. package/core/block_svg.d.ts +19 -31
  9. package/core/blockly.d.ts +15 -7
  10. package/core/bubbles/bubble.d.ts +22 -3
  11. package/core/bubbles/textinput_bubble.d.ts +3 -5
  12. package/core/comments/rendered_workspace_comment.d.ts +11 -0
  13. package/core/common.d.ts +19 -7
  14. package/core/connection.d.ts +3 -2
  15. package/core/contextmenu_registry.d.ts +11 -9
  16. package/core/dialog.d.ts +36 -16
  17. package/core/events/events.d.ts +0 -2
  18. package/core/events/predicates.d.ts +0 -3
  19. package/core/events/utils.d.ts +1 -5
  20. package/core/field.d.ts +28 -30
  21. package/core/field_dropdown.d.ts +17 -3
  22. package/core/field_image.d.ts +0 -2
  23. package/core/field_input.d.ts +9 -0
  24. package/core/field_variable.d.ts +0 -2
  25. package/core/flyout_base.d.ts +25 -1
  26. package/core/flyout_button.d.ts +15 -13
  27. package/core/flyout_item.d.ts +3 -9
  28. package/core/flyout_navigator.d.ts +11 -0
  29. package/core/flyout_separator.d.ts +20 -1
  30. package/core/focus_manager.d.ts +86 -14
  31. package/core/icons/comment_icon.d.ts +3 -0
  32. package/core/icons/icon.d.ts +13 -0
  33. package/core/icons/mutator_icon.d.ts +3 -0
  34. package/core/icons/warning_icon.d.ts +3 -0
  35. package/core/interfaces/i_autohideable.d.ts +2 -0
  36. package/core/interfaces/i_bubble.d.ts +2 -1
  37. package/core/interfaces/i_flyout.d.ts +2 -1
  38. package/core/interfaces/i_focusable_node.d.ts +71 -8
  39. package/core/interfaces/i_focusable_tree.d.ts +67 -0
  40. package/core/interfaces/i_has_bubble.d.ts +13 -0
  41. package/core/interfaces/i_icon.d.ts +2 -1
  42. package/core/interfaces/i_navigation_policy.d.ts +63 -0
  43. package/core/interfaces/i_selectable.d.ts +7 -1
  44. package/core/interfaces/i_toolbox.d.ts +2 -1
  45. package/core/interfaces/i_toolbox_item.d.ts +2 -1
  46. package/core/keyboard_nav/block_navigation_policy.d.ts +59 -0
  47. package/core/keyboard_nav/connection_navigation_policy.d.ts +67 -0
  48. package/core/keyboard_nav/field_navigation_policy.d.ts +56 -0
  49. package/core/keyboard_nav/flyout_button_navigation_policy.d.ts +56 -0
  50. package/core/keyboard_nav/flyout_navigation_policy.d.ts +65 -0
  51. package/core/keyboard_nav/flyout_separator_navigation_policy.d.ts +33 -0
  52. package/core/keyboard_nav/line_cursor.d.ts +24 -185
  53. package/core/keyboard_nav/marker.d.ts +17 -29
  54. package/core/keyboard_nav/workspace_navigation_policy.d.ts +56 -0
  55. package/core/layer_manager.d.ts +3 -2
  56. package/core/marker_manager.d.ts +0 -26
  57. package/core/navigator.d.ts +65 -0
  58. package/core/rendered_connection.d.ts +24 -1
  59. package/core/renderers/common/block_rendering.d.ts +1 -2
  60. package/core/renderers/common/drawer.d.ts +1 -1
  61. package/core/renderers/common/i_path_object.d.ts +1 -25
  62. package/core/renderers/common/path_object.d.ts +1 -26
  63. package/core/renderers/common/renderer.d.ts +0 -11
  64. package/core/renderers/zelos/drawer.d.ts +1 -1
  65. package/core/renderers/zelos/renderer.d.ts +0 -11
  66. package/core/renderers/zelos/zelos.d.ts +1 -2
  67. package/core/shortcut_registry.d.ts +7 -2
  68. package/core/toast.d.ts +74 -0
  69. package/core/toolbox/toolbox.d.ts +25 -1
  70. package/core/toolbox/toolbox_item.d.ts +11 -0
  71. package/core/utils/aria.d.ts +5 -2
  72. package/core/utils/object.d.ts +3 -0
  73. package/core/variable_map.d.ts +11 -6
  74. package/core/variables.d.ts +3 -1
  75. package/core/workspace.d.ts +11 -11
  76. package/core/workspace_dragger.d.ts +5 -0
  77. package/core/workspace_svg.d.ts +99 -48
  78. package/index.mjs +11 -1
  79. package/msg/ab.js +33 -0
  80. package/msg/ab.mjs +33 -0
  81. package/msg/ace.js +33 -0
  82. package/msg/ace.mjs +33 -0
  83. package/msg/af.js +33 -0
  84. package/msg/af.mjs +33 -0
  85. package/msg/am.js +33 -0
  86. package/msg/am.mjs +33 -0
  87. package/msg/ar.js +33 -0
  88. package/msg/ar.mjs +33 -0
  89. package/msg/ast.js +33 -0
  90. package/msg/ast.mjs +33 -0
  91. package/msg/az.js +33 -0
  92. package/msg/az.mjs +33 -0
  93. package/msg/ba.js +33 -0
  94. package/msg/ba.mjs +33 -0
  95. package/msg/bcc.js +33 -0
  96. package/msg/bcc.mjs +33 -0
  97. package/msg/be-tarask.js +33 -0
  98. package/msg/be-tarask.mjs +33 -0
  99. package/msg/be.js +33 -0
  100. package/msg/be.mjs +33 -0
  101. package/msg/bg.js +33 -0
  102. package/msg/bg.mjs +33 -0
  103. package/msg/bn.js +33 -0
  104. package/msg/bn.mjs +33 -0
  105. package/msg/br.js +33 -0
  106. package/msg/br.mjs +33 -0
  107. package/msg/bs.js +33 -0
  108. package/msg/bs.mjs +33 -0
  109. package/msg/ca.js +33 -0
  110. package/msg/ca.mjs +33 -0
  111. package/msg/cdo.js +33 -0
  112. package/msg/cdo.mjs +33 -0
  113. package/msg/ce.js +33 -0
  114. package/msg/ce.mjs +33 -0
  115. package/msg/cs.js +33 -0
  116. package/msg/cs.mjs +33 -0
  117. package/msg/da.js +33 -0
  118. package/msg/da.mjs +33 -0
  119. package/msg/de.js +33 -0
  120. package/msg/de.mjs +33 -0
  121. package/msg/diq.js +33 -0
  122. package/msg/diq.mjs +33 -0
  123. package/msg/dtp.js +33 -0
  124. package/msg/dtp.mjs +33 -0
  125. package/msg/dty.js +33 -0
  126. package/msg/dty.mjs +33 -0
  127. package/msg/ee.js +33 -0
  128. package/msg/ee.mjs +33 -0
  129. package/msg/el.js +33 -0
  130. package/msg/el.mjs +33 -0
  131. package/msg/en-gb.js +33 -0
  132. package/msg/en-gb.mjs +33 -0
  133. package/msg/en.js +33 -0
  134. package/msg/en.mjs +33 -0
  135. package/msg/eo.js +33 -0
  136. package/msg/eo.mjs +33 -0
  137. package/msg/es.js +33 -0
  138. package/msg/es.mjs +33 -0
  139. package/msg/et.js +33 -0
  140. package/msg/et.mjs +33 -0
  141. package/msg/eu.js +33 -0
  142. package/msg/eu.mjs +33 -0
  143. package/msg/fa.js +33 -0
  144. package/msg/fa.mjs +33 -0
  145. package/msg/fi.js +33 -0
  146. package/msg/fi.mjs +33 -0
  147. package/msg/fo.js +33 -0
  148. package/msg/fo.mjs +33 -0
  149. package/msg/fr.js +33 -0
  150. package/msg/fr.mjs +33 -0
  151. package/msg/frr.js +33 -0
  152. package/msg/frr.mjs +33 -0
  153. package/msg/gl.js +33 -0
  154. package/msg/gl.mjs +33 -0
  155. package/msg/gn.js +33 -0
  156. package/msg/gn.mjs +33 -0
  157. package/msg/gor.js +33 -0
  158. package/msg/gor.mjs +33 -0
  159. package/msg/ha.js +33 -0
  160. package/msg/ha.mjs +33 -0
  161. package/msg/hak.js +33 -0
  162. package/msg/hak.mjs +33 -0
  163. package/msg/he.js +33 -0
  164. package/msg/he.mjs +33 -0
  165. package/msg/hi.js +33 -0
  166. package/msg/hi.mjs +33 -0
  167. package/msg/hr.js +33 -0
  168. package/msg/hr.mjs +33 -0
  169. package/msg/hrx.js +33 -0
  170. package/msg/hrx.mjs +33 -0
  171. package/msg/hsb.js +33 -0
  172. package/msg/hsb.mjs +33 -0
  173. package/msg/hu.js +33 -0
  174. package/msg/hu.mjs +33 -0
  175. package/msg/hy.js +33 -0
  176. package/msg/hy.mjs +33 -0
  177. package/msg/ia.js +33 -0
  178. package/msg/ia.mjs +33 -0
  179. package/msg/id.js +33 -0
  180. package/msg/id.mjs +33 -0
  181. package/msg/ig.js +33 -0
  182. package/msg/ig.mjs +33 -0
  183. package/msg/inh.js +33 -0
  184. package/msg/inh.mjs +33 -0
  185. package/msg/is.js +33 -0
  186. package/msg/is.mjs +33 -0
  187. package/msg/it.js +33 -0
  188. package/msg/it.mjs +33 -0
  189. package/msg/ja.js +33 -0
  190. package/msg/ja.mjs +33 -0
  191. package/msg/ka.js +33 -0
  192. package/msg/ka.mjs +33 -0
  193. package/msg/kab.js +33 -0
  194. package/msg/kab.mjs +33 -0
  195. package/msg/kbd-cyrl.js +33 -0
  196. package/msg/kbd-cyrl.mjs +33 -0
  197. package/msg/km.js +33 -0
  198. package/msg/km.mjs +33 -0
  199. package/msg/kn.js +33 -0
  200. package/msg/kn.mjs +33 -0
  201. package/msg/ko.js +33 -0
  202. package/msg/ko.mjs +33 -0
  203. package/msg/ksh.js +33 -0
  204. package/msg/ksh.mjs +33 -0
  205. package/msg/ku-latn.js +33 -0
  206. package/msg/ku-latn.mjs +33 -0
  207. package/msg/ky.js +33 -0
  208. package/msg/ky.mjs +33 -0
  209. package/msg/la.js +33 -0
  210. package/msg/la.mjs +33 -0
  211. package/msg/lb.js +33 -0
  212. package/msg/lb.mjs +33 -0
  213. package/msg/lki.js +33 -0
  214. package/msg/lki.mjs +33 -0
  215. package/msg/lo.js +33 -0
  216. package/msg/lo.mjs +33 -0
  217. package/msg/lrc.js +33 -0
  218. package/msg/lrc.mjs +33 -0
  219. package/msg/lt.js +33 -0
  220. package/msg/lt.mjs +33 -0
  221. package/msg/lv.js +33 -0
  222. package/msg/lv.mjs +33 -0
  223. package/msg/mg.js +33 -0
  224. package/msg/mg.mjs +33 -0
  225. package/msg/mk.js +33 -0
  226. package/msg/mk.mjs +33 -0
  227. package/msg/ml.js +33 -0
  228. package/msg/ml.mjs +33 -0
  229. package/msg/mnw.js +33 -0
  230. package/msg/mnw.mjs +33 -0
  231. package/msg/ms.js +33 -0
  232. package/msg/ms.mjs +33 -0
  233. package/msg/my.js +33 -0
  234. package/msg/my.mjs +33 -0
  235. package/msg/mzn.js +33 -0
  236. package/msg/mzn.mjs +33 -0
  237. package/msg/nb.js +33 -0
  238. package/msg/nb.mjs +33 -0
  239. package/msg/ne.js +33 -0
  240. package/msg/ne.mjs +33 -0
  241. package/msg/nl.js +33 -0
  242. package/msg/nl.mjs +33 -0
  243. package/msg/oc.js +33 -0
  244. package/msg/oc.mjs +33 -0
  245. package/msg/olo.js +33 -0
  246. package/msg/olo.mjs +33 -0
  247. package/msg/pa.js +33 -0
  248. package/msg/pa.mjs +33 -0
  249. package/msg/pl.js +33 -0
  250. package/msg/pl.mjs +33 -0
  251. package/msg/pms.js +33 -0
  252. package/msg/pms.mjs +33 -0
  253. package/msg/ps.js +33 -0
  254. package/msg/ps.mjs +33 -0
  255. package/msg/pt-br.js +33 -0
  256. package/msg/pt-br.mjs +33 -0
  257. package/msg/pt.js +33 -0
  258. package/msg/pt.mjs +33 -0
  259. package/msg/ro.js +33 -0
  260. package/msg/ro.mjs +33 -0
  261. package/msg/ru.js +33 -0
  262. package/msg/ru.mjs +33 -0
  263. package/msg/sc.js +33 -0
  264. package/msg/sc.mjs +33 -0
  265. package/msg/sco.js +33 -0
  266. package/msg/sco.mjs +33 -0
  267. package/msg/sd.js +33 -0
  268. package/msg/sd.mjs +33 -0
  269. package/msg/shn.js +33 -0
  270. package/msg/shn.mjs +33 -0
  271. package/msg/si.js +33 -0
  272. package/msg/si.mjs +33 -0
  273. package/msg/sk.js +33 -0
  274. package/msg/sk.mjs +33 -0
  275. package/msg/skr-arab.js +33 -0
  276. package/msg/skr-arab.mjs +33 -0
  277. package/msg/sl.js +33 -0
  278. package/msg/sl.mjs +33 -0
  279. package/msg/smn.js +33 -0
  280. package/msg/smn.mjs +33 -0
  281. package/msg/sq.js +33 -0
  282. package/msg/sq.mjs +33 -0
  283. package/msg/sr-latn.js +33 -0
  284. package/msg/sr-latn.mjs +33 -0
  285. package/msg/sr.js +33 -0
  286. package/msg/sr.mjs +33 -0
  287. package/msg/sv.js +33 -0
  288. package/msg/sv.mjs +33 -0
  289. package/msg/sw.js +33 -0
  290. package/msg/sw.mjs +33 -0
  291. package/msg/ta.js +33 -0
  292. package/msg/ta.mjs +33 -0
  293. package/msg/tcy.js +33 -0
  294. package/msg/tcy.mjs +33 -0
  295. package/msg/tdd.js +33 -0
  296. package/msg/tdd.mjs +33 -0
  297. package/msg/te.js +33 -0
  298. package/msg/te.mjs +33 -0
  299. package/msg/th.js +33 -0
  300. package/msg/th.mjs +33 -0
  301. package/msg/ti.js +33 -0
  302. package/msg/ti.mjs +33 -0
  303. package/msg/tl.js +33 -0
  304. package/msg/tl.mjs +33 -0
  305. package/msg/tlh.js +33 -0
  306. package/msg/tlh.mjs +33 -0
  307. package/msg/tr.js +33 -0
  308. package/msg/tr.mjs +33 -0
  309. package/msg/ug-arab.js +33 -0
  310. package/msg/ug-arab.mjs +33 -0
  311. package/msg/uk.js +33 -0
  312. package/msg/uk.mjs +33 -0
  313. package/msg/ur.js +33 -0
  314. package/msg/ur.mjs +33 -0
  315. package/msg/uz.js +33 -0
  316. package/msg/uz.mjs +33 -0
  317. package/msg/vi.js +33 -0
  318. package/msg/vi.mjs +33 -0
  319. package/msg/xmf.js +33 -0
  320. package/msg/xmf.mjs +33 -0
  321. package/msg/yo.js +33 -0
  322. package/msg/yo.mjs +33 -0
  323. package/msg/zgh.js +33 -0
  324. package/msg/zgh.mjs +33 -0
  325. package/msg/zh-hans.js +33 -0
  326. package/msg/zh-hans.mjs +33 -0
  327. package/msg/zh-hant.js +33 -0
  328. package/msg/zh-hant.mjs +33 -0
  329. package/package.json +4 -4
  330. package/core/events/events_marker_move.d.ts +0 -69
  331. package/core/interfaces/i_ast_node_location.d.ts +0 -11
  332. package/core/interfaces/i_ast_node_location_svg.d.ts +0 -24
  333. package/core/interfaces/i_ast_node_location_with_block.d.ts +0 -19
  334. package/core/keyboard_nav/ast_node.d.ts +0 -297
  335. package/core/renderers/common/marker_svg.d.ts +0 -256
  336. package/core/renderers/zelos/marker_svg.d.ts +0 -49
package/msg/yo.mjs CHANGED
@@ -22,6 +22,7 @@ export const {
22
22
  DELETE_X_BLOCKS,
23
23
  DELETE_ALL_BLOCKS,
24
24
  CLEAN_UP,
25
+ CLOSE,
25
26
  COLLAPSE_BLOCK,
26
27
  COLLAPSE_ALL,
27
28
  EXPAND_BLOCK,
@@ -420,4 +421,36 @@ export const {
420
421
  COLLAPSED_WARNINGS_WARNING,
421
422
  DIALOG_OK,
422
423
  DIALOG_CANCEL,
424
+ DELETE_SHORTCUT,
425
+ DELETE_KEY,
426
+ EDIT_BLOCK_CONTENTS,
427
+ INSERT_BLOCK,
428
+ START_MOVE,
429
+ FINISH_MOVE,
430
+ ABORT_MOVE,
431
+ MOVE_LEFT_CONSTRAINED,
432
+ MOVE_RIGHT_CONSTRAINED,
433
+ MOVE_UP_CONSTRAINED,
434
+ MOVE_DOWN_CONSTRAINED,
435
+ MOVE_LEFT_UNCONSTRAINED,
436
+ MOVE_RIGHT_UNCONSTRAINED,
437
+ MOVE_UP_UNCONSTRAINED,
438
+ MOVE_DOWN_UNCONSTRAINED,
439
+ MOVE_BLOCK,
440
+ WINDOWS,
441
+ MAC_OS,
442
+ CHROME_OS,
443
+ LINUX,
444
+ UNKNOWN,
445
+ CONTROL_KEY,
446
+ COMMAND_KEY,
447
+ OPTION_KEY,
448
+ ALT_KEY,
449
+ CUT_SHORTCUT,
450
+ COPY_SHORTCUT,
451
+ PASTE_SHORTCUT,
452
+ HELP_PROMPT,
453
+ SHORTCUTS_GENERAL,
454
+ SHORTCUTS_EDITING,
455
+ SHORTCUTS_CODE_NAVIGATION,
423
456
  } = yo;
package/msg/zgh.js CHANGED
@@ -17,10 +17,14 @@
17
17
 
18
18
  var Blockly = Blockly || { Msg: Object.create(null) };
19
19
 
20
+ Blockly.Msg["ABORT_MOVE"] = "Abort move"; // untranslated
20
21
  Blockly.Msg["ADD_COMMENT"] = "ⵔⵏⵓ ⴰⵅⴼⴰⵡⴰⵍ";
22
+ Blockly.Msg["ALT_KEY"] = "Alt"; // untranslated
21
23
  Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated
22
24
  Blockly.Msg["CHANGE_VALUE_TITLE"] = "ⵙⵏⴼⵍ ⴰⵣⴰⵍ:";
25
+ Blockly.Msg["CHROME_OS"] = "ChromeOS"; // untranslated
23
26
  Blockly.Msg["CLEAN_UP"] = "Clean up Blocks"; // untranslated
27
+ Blockly.Msg["CLOSE"] = "Close"; // untranslated
24
28
  Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated
25
29
  Blockly.Msg["COLLAPSE_ALL"] = "Collapse Blocks"; // untranslated
26
30
  Blockly.Msg["COLLAPSE_BLOCK"] = "Collapse Block"; // untranslated
@@ -41,6 +45,7 @@ Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorper
41
45
  Blockly.Msg["COLOUR_RGB_RED"] = "ⴰⵣⴳⴳⵯⴰⵖ";
42
46
  Blockly.Msg["COLOUR_RGB_TITLE"] = "ⴽⵍⵓ ⵙ";
43
47
  Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "ⴰⵣⴰⵍⵏ ⵉⴼⵓⴽⴽ ⴰⴷ ⵉⵍⵉⵏ ⴳⵔ 0 ⴷ 100.";
48
+ Blockly.Msg["COMMAND_KEY"] = "⌘ Command"; // untranslated
44
49
  Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated
45
50
  Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "break out of loop"; // untranslated
46
51
  Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "continue with next iteration of loop"; // untranslated
@@ -73,8 +78,13 @@ Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "ⴰⵍⵙ ⴰⵔⴷ";
73
78
  Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "ⴰⵍⵙ ⴰⴷⴷⴰⴳ";
74
79
  Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "While a value is false, then do some statements."; // untranslated
75
80
  Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "ⴽⵓⴷ ⵉⴷⵜⵜⴰ ⵡⴰⵣⴰⵍ, ⵙⵙⵍⴽⵎ ⴽⵔⴰ ⵏ ⵡⴰⵏⴰⴹⵏ.";
81
+ Blockly.Msg["CONTROL_KEY"] = "Ctrl"; // untranslated
82
+ Blockly.Msg["COPY_SHORTCUT"] = "Copy (%1)"; // untranslated
83
+ Blockly.Msg["CUT_SHORTCUT"] = "Cut (%1)"; // untranslated
76
84
  Blockly.Msg["DELETE_ALL_BLOCKS"] = "ⴽⴽⵙ %1 ⵉⴱⵍⵓⴽⵏ ⵎⴰⵕⵕⴰ?";
77
85
  Blockly.Msg["DELETE_BLOCK"] = "ⴽⴽⵙ ⴰⴱⵍⵓⴽ";
86
+ Blockly.Msg["DELETE_KEY"] = "Del"; // untranslated
87
+ Blockly.Msg["DELETE_SHORTCUT"] = "Delete block (%1)"; // untranslated
78
88
  Blockly.Msg["DELETE_VARIABLE"] = "ⴽⴽⵙ ⴰⵎⵙⴽⵉⵍ '%1'";
79
89
  Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated
80
90
  Blockly.Msg["DELETE_X_BLOCKS"] = "ⴽⴽⵙ %1 ⵉⴱⵍⵓⴽⵏ";
@@ -83,12 +93,17 @@ Blockly.Msg["DIALOG_OK"] = "ⵡⴰⵅⵅⴰ";
83
93
  Blockly.Msg["DISABLE_BLOCK"] = "Disable Block"; // untranslated
84
94
  Blockly.Msg["DUPLICATE_BLOCK"] = "Duplicate"; // untranslated
85
95
  Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated
96
+ Blockly.Msg["EDIT_BLOCK_CONTENTS"] = "Edit Block contents (%1)"; // untranslated
86
97
  Blockly.Msg["ENABLE_BLOCK"] = "Enable Block"; // untranslated
87
98
  Blockly.Msg["EXPAND_ALL"] = "Expand Blocks"; // untranslated
88
99
  Blockly.Msg["EXPAND_BLOCK"] = "Expand Block"; // untranslated
89
100
  Blockly.Msg["EXTERNAL_INPUTS"] = "External Inputs"; // untranslated
101
+ Blockly.Msg["FINISH_MOVE"] = "Finish move"; // untranslated
90
102
  Blockly.Msg["HELP"] = "ⵜⵉⵡⵉⵙⵉ";
103
+ Blockly.Msg["HELP_PROMPT"] = "Press %1 for help on keyboard controls"; // untranslated
91
104
  Blockly.Msg["INLINE_INPUTS"] = "Inline Inputs"; // untranslated
105
+ Blockly.Msg["INSERT_BLOCK"] = "Insert Block (%1)"; // untranslated
106
+ Blockly.Msg["LINUX"] = "Linux"; // untranslated
92
107
  Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated
93
108
  Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "create empty list"; // untranslated
94
109
  Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Returns a list, of length 0, containing no data records"; // untranslated
@@ -201,6 +216,7 @@ Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; //
201
216
  Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "ⵎⴽ ⵓⵔ ⵉⴷⵜⵜⵉ";
202
217
  Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "ⵎⴽ ⵉⴷⵜⵜⴰ";
203
218
  Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value."; // untranslated
219
+ Blockly.Msg["MAC_OS"] = "macOS"; // untranslated
204
220
  Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated
205
221
  Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://en.wikipedia.org/wiki/Arithmetic"; // untranslated
206
222
  Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Return the sum of the two numbers."; // untranslated
@@ -287,13 +303,24 @@ Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Return the arctangent of a number."; /
287
303
  Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Return the cosine of a degree (not radian)."; // untranslated
288
304
  Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Return the sine of a degree (not radian)."; // untranslated
289
305
  Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Return the tangent of a degree (not radian)."; // untranslated
306
+ Blockly.Msg["MOVE_BLOCK"] = "Move Block (%1)"; // untranslated
307
+ Blockly.Msg["MOVE_DOWN_CONSTRAINED"] = "Move down constrained"; // untranslated
308
+ Blockly.Msg["MOVE_DOWN_UNCONSTRAINED"] = "Move down, unconstrained"; // untranslated
309
+ Blockly.Msg["MOVE_LEFT_CONSTRAINED"] = "Move left, constrained"; // untranslated
310
+ Blockly.Msg["MOVE_LEFT_UNCONSTRAINED"] = "Move left, unconstrained"; // untranslated
311
+ Blockly.Msg["MOVE_RIGHT_CONSTRAINED"] = "Move right constrained"; // untranslated
312
+ Blockly.Msg["MOVE_RIGHT_UNCONSTRAINED"] = "Move right, unconstrained"; // untranslated
313
+ Blockly.Msg["MOVE_UP_CONSTRAINED"] = "Move up, constrained"; // untranslated
314
+ Blockly.Msg["MOVE_UP_UNCONSTRAINED"] = "Move up unconstrained"; // untranslated
290
315
  Blockly.Msg["NEW_COLOUR_VARIABLE"] = "ⵙⴽⵔ ⴰⴽⵍⵓ ⴰⵎⵙⴽⵉⵍ...";
291
316
  Blockly.Msg["NEW_NUMBER_VARIABLE"] = "ⵙⴽⵔ ⴰⵎⴹⴰⵏ ⴰⵎⵙⴽⵉⵍ...";
292
317
  Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated
293
318
  Blockly.Msg["NEW_VARIABLE"] = "ⵙⴽⵔ ⴰⵎⵙⴽⵉⵍ...";
294
319
  Blockly.Msg["NEW_VARIABLE_TITLE"] = "ⵉⵙⵎ ⵏ ⵓⵎⵙⴽⵉⵍ ⴰⵎⴰⵢⵏⵓ:";
295
320
  Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "ⴰⵏⴰⵡ ⴰⵎⴰⵢⵏⵓ ⵏ ⵓⵎⵙⴽⵉⵍ:";
321
+ Blockly.Msg["OPTION_KEY"] = "⌥ Option"; // untranslated
296
322
  Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated
323
+ Blockly.Msg["PASTE_SHORTCUT"] = "Paste (%1)"; // untranslated
297
324
  Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated
298
325
  Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "ⵙ:";
299
326
  Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated
@@ -325,6 +352,10 @@ Blockly.Msg["REDO"] = "ⴰⵍⵙ";
325
352
  Blockly.Msg["REMOVE_COMMENT"] = "ⴽⴽⵙ ⴰⵅⴼⴰⵡⴰⵍ";
326
353
  Blockly.Msg["RENAME_VARIABLE"] = "ⵙⵏⴼⵍ ⵉⵙⵎ ⵏ ⵓⵎⵙⴽⵉⵍ...";
327
354
  Blockly.Msg["RENAME_VARIABLE_TITLE"] = "ⵙⵏⴼⵍ ⵉⵎⵙⴽⵉⵍⵏ ⴰⴽⴽ '%1' ⵖⵔ:";
355
+ Blockly.Msg["SHORTCUTS_CODE_NAVIGATION"] = "Code navigation"; // untranslated
356
+ Blockly.Msg["SHORTCUTS_EDITING"] = "Editing"; // untranslated
357
+ Blockly.Msg["SHORTCUTS_GENERAL"] = "General"; // untranslated
358
+ Blockly.Msg["START_MOVE"] = "Start move"; // untranslated
328
359
  Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated
329
360
  Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; // untranslated
330
361
  Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'."; // untranslated
@@ -395,6 +426,7 @@ Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "trim spaces from right side of"; //
395
426
  Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Return a copy of the text with spaces removed from one or both ends."; // untranslated
396
427
  Blockly.Msg["TODAY"] = "ⴰⵙⵙⴰ";
397
428
  Blockly.Msg["UNDO"] = "ⵙⵔ";
429
+ Blockly.Msg["UNKNOWN"] = "Unknown"; // untranslated
398
430
  Blockly.Msg["UNNAMED_KEY"] = "ⴰⵔⵉⵙⵎ";
399
431
  Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "ⴰⴼⵔⴷⵉⵙ";
400
432
  Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Create 'set %1'"; // untranslated
@@ -407,6 +439,7 @@ Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Sets this variable to be equal to the in
407
439
  Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named '%1' already exists."; // untranslated
408
440
  Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated
409
441
  Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_A_PARAMETER"] = "A variable named '%1' already exists as a parameter in the procedure '%2'."; // untranslated
442
+ Blockly.Msg["WINDOWS"] = "Windows"; // untranslated
410
443
  Blockly.Msg["WORKSPACE_ARIA_LABEL"] = "Blockly Workspace"; // untranslated
411
444
  Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated
412
445
  Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"];
package/msg/zgh.mjs CHANGED
@@ -22,6 +22,7 @@ export const {
22
22
  DELETE_X_BLOCKS,
23
23
  DELETE_ALL_BLOCKS,
24
24
  CLEAN_UP,
25
+ CLOSE,
25
26
  COLLAPSE_BLOCK,
26
27
  COLLAPSE_ALL,
27
28
  EXPAND_BLOCK,
@@ -420,4 +421,36 @@ export const {
420
421
  COLLAPSED_WARNINGS_WARNING,
421
422
  DIALOG_OK,
422
423
  DIALOG_CANCEL,
424
+ DELETE_SHORTCUT,
425
+ DELETE_KEY,
426
+ EDIT_BLOCK_CONTENTS,
427
+ INSERT_BLOCK,
428
+ START_MOVE,
429
+ FINISH_MOVE,
430
+ ABORT_MOVE,
431
+ MOVE_LEFT_CONSTRAINED,
432
+ MOVE_RIGHT_CONSTRAINED,
433
+ MOVE_UP_CONSTRAINED,
434
+ MOVE_DOWN_CONSTRAINED,
435
+ MOVE_LEFT_UNCONSTRAINED,
436
+ MOVE_RIGHT_UNCONSTRAINED,
437
+ MOVE_UP_UNCONSTRAINED,
438
+ MOVE_DOWN_UNCONSTRAINED,
439
+ MOVE_BLOCK,
440
+ WINDOWS,
441
+ MAC_OS,
442
+ CHROME_OS,
443
+ LINUX,
444
+ UNKNOWN,
445
+ CONTROL_KEY,
446
+ COMMAND_KEY,
447
+ OPTION_KEY,
448
+ ALT_KEY,
449
+ CUT_SHORTCUT,
450
+ COPY_SHORTCUT,
451
+ PASTE_SHORTCUT,
452
+ HELP_PROMPT,
453
+ SHORTCUTS_GENERAL,
454
+ SHORTCUTS_EDITING,
455
+ SHORTCUTS_CODE_NAVIGATION,
423
456
  } = zgh;
package/msg/zh-hans.js CHANGED
@@ -17,10 +17,14 @@
17
17
 
18
18
  var Blockly = Blockly || { Msg: Object.create(null) };
19
19
 
20
+ Blockly.Msg["ABORT_MOVE"] = "Abort move"; // untranslated
20
21
  Blockly.Msg["ADD_COMMENT"] = "添加注释";
22
+ Blockly.Msg["ALT_KEY"] = "Alt"; // untranslated
21
23
  Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "不能删除变量“%1”,因为它是函数“%2”定义的一部分";
22
24
  Blockly.Msg["CHANGE_VALUE_TITLE"] = "更改值:";
25
+ Blockly.Msg["CHROME_OS"] = "ChromeOS"; // untranslated
23
26
  Blockly.Msg["CLEAN_UP"] = "整理块";
27
+ Blockly.Msg["CLOSE"] = "Close"; // untranslated
24
28
  Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "已收起的信息块内包含警告。";
25
29
  Blockly.Msg["COLLAPSE_ALL"] = "折叠块";
26
30
  Blockly.Msg["COLLAPSE_BLOCK"] = "折叠块";
@@ -41,6 +45,7 @@ Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorper
41
45
  Blockly.Msg["COLOUR_RGB_RED"] = "红色";
42
46
  Blockly.Msg["COLOUR_RGB_TITLE"] = "颜色";
43
47
  Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "通过指定红色、绿色和蓝色的量创建一种颜色。所有的值必须在0和100之间。";
48
+ Blockly.Msg["COMMAND_KEY"] = "⌘ Command"; // untranslated
44
49
  Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated
45
50
  Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "跳出循环";
46
51
  Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "继续下一轮循环";
@@ -73,8 +78,13 @@ Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "重复直到条件满足";
73
78
  Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "当条件满足时重复";
74
79
  Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "只要值为假,就一直循环执行一些语句。";
75
80
  Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "只要值为真,就一直循环执行一些语句。";
81
+ Blockly.Msg["CONTROL_KEY"] = "Ctrl"; // untranslated
82
+ Blockly.Msg["COPY_SHORTCUT"] = "Copy (%1)"; // untranslated
83
+ Blockly.Msg["CUT_SHORTCUT"] = "Cut (%1)"; // untranslated
76
84
  Blockly.Msg["DELETE_ALL_BLOCKS"] = "删除所有 %1 个块吗?";
77
85
  Blockly.Msg["DELETE_BLOCK"] = "删除块";
86
+ Blockly.Msg["DELETE_KEY"] = "Del"; // untranslated
87
+ Blockly.Msg["DELETE_SHORTCUT"] = "Delete block (%1)"; // untranslated
78
88
  Blockly.Msg["DELETE_VARIABLE"] = "删除变量“%1”";
79
89
  Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "要删除对变量“%2”的%1个引用吗?";
80
90
  Blockly.Msg["DELETE_X_BLOCKS"] = "删除 %1 个块";
@@ -83,12 +93,17 @@ Blockly.Msg["DIALOG_OK"] = "确认";
83
93
  Blockly.Msg["DISABLE_BLOCK"] = "禁用块";
84
94
  Blockly.Msg["DUPLICATE_BLOCK"] = "复制";
85
95
  Blockly.Msg["DUPLICATE_COMMENT"] = "复制注释";
96
+ Blockly.Msg["EDIT_BLOCK_CONTENTS"] = "Edit Block contents (%1)"; // untranslated
86
97
  Blockly.Msg["ENABLE_BLOCK"] = "启用块";
87
98
  Blockly.Msg["EXPAND_ALL"] = "展开块";
88
99
  Blockly.Msg["EXPAND_BLOCK"] = "展开块";
89
100
  Blockly.Msg["EXTERNAL_INPUTS"] = "外部输入";
101
+ Blockly.Msg["FINISH_MOVE"] = "Finish move"; // untranslated
90
102
  Blockly.Msg["HELP"] = "帮助";
103
+ Blockly.Msg["HELP_PROMPT"] = "Press %1 for help on keyboard controls"; // untranslated
91
104
  Blockly.Msg["INLINE_INPUTS"] = "单行输入";
105
+ Blockly.Msg["INSERT_BLOCK"] = "Insert Block (%1)"; // untranslated
106
+ Blockly.Msg["LINUX"] = "Linux"; // untranslated
92
107
  Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated
93
108
  Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "创建空列表";
94
109
  Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "返回一个列表,长度为 0,不包含任何数据记录";
@@ -201,6 +216,7 @@ Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://zh.wikipedia.org/wiki/条件运
201
216
  Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "如果为 false";
202
217
  Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "如果为 true";
203
218
  Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "检查“断言”里的条件语句。如果条件为真,则返回“如果为真”的值,否则,则返回“如果为假”的值。";
219
+ Blockly.Msg["MAC_OS"] = "macOS"; // untranslated
204
220
  Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated
205
221
  Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://zh.wikipedia.org/wiki/算术";
206
222
  Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "返回两个数的和。";
@@ -287,13 +303,24 @@ Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "返回一个数的反正切。";
287
303
  Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "返回角度(非弧度)的余弦。";
288
304
  Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "返回角度(非弧度)的正弦。";
289
305
  Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "返回角度(非弧度)的正切。";
306
+ Blockly.Msg["MOVE_BLOCK"] = "Move Block (%1)"; // untranslated
307
+ Blockly.Msg["MOVE_DOWN_CONSTRAINED"] = "Move down constrained"; // untranslated
308
+ Blockly.Msg["MOVE_DOWN_UNCONSTRAINED"] = "Move down, unconstrained"; // untranslated
309
+ Blockly.Msg["MOVE_LEFT_CONSTRAINED"] = "Move left, constrained"; // untranslated
310
+ Blockly.Msg["MOVE_LEFT_UNCONSTRAINED"] = "Move left, unconstrained"; // untranslated
311
+ Blockly.Msg["MOVE_RIGHT_CONSTRAINED"] = "Move right constrained"; // untranslated
312
+ Blockly.Msg["MOVE_RIGHT_UNCONSTRAINED"] = "Move right, unconstrained"; // untranslated
313
+ Blockly.Msg["MOVE_UP_CONSTRAINED"] = "Move up, constrained"; // untranslated
314
+ Blockly.Msg["MOVE_UP_UNCONSTRAINED"] = "Move up unconstrained"; // untranslated
290
315
  Blockly.Msg["NEW_COLOUR_VARIABLE"] = "创建颜色变量...";
291
316
  Blockly.Msg["NEW_NUMBER_VARIABLE"] = "创建数变量...";
292
317
  Blockly.Msg["NEW_STRING_VARIABLE"] = "创建字符串变量...";
293
318
  Blockly.Msg["NEW_VARIABLE"] = "创建变量...";
294
319
  Blockly.Msg["NEW_VARIABLE_TITLE"] = "新变量的名称:";
295
320
  Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "新变量的类型:";
321
+ Blockly.Msg["OPTION_KEY"] = "⌥ Option"; // untranslated
296
322
  Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated
323
+ Blockly.Msg["PASTE_SHORTCUT"] = "Paste (%1)"; // untranslated
297
324
  Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "允许声明";
298
325
  Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "与:";
299
326
  Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://zh.wikipedia.org/wiki/子程序";
@@ -325,6 +352,10 @@ Blockly.Msg["REDO"] = "重做";
325
352
  Blockly.Msg["REMOVE_COMMENT"] = "删除注释";
326
353
  Blockly.Msg["RENAME_VARIABLE"] = "重命名变量...";
327
354
  Blockly.Msg["RENAME_VARIABLE_TITLE"] = "将所有“%1”变量重命名为:";
355
+ Blockly.Msg["SHORTCUTS_CODE_NAVIGATION"] = "Code navigation"; // untranslated
356
+ Blockly.Msg["SHORTCUTS_EDITING"] = "Editing"; // untranslated
357
+ Blockly.Msg["SHORTCUTS_GENERAL"] = "General"; // untranslated
358
+ Blockly.Msg["START_MOVE"] = "Start move"; // untranslated
328
359
  Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated
329
360
  Blockly.Msg["TEXT_APPEND_TITLE"] = "在%1之后加上文本%2";
330
361
  Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "将一些文本追加到变量“%1”里。";
@@ -395,6 +426,7 @@ Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "消除其右侧的空格";
395
426
  Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "从某一端或同时从两端删除多余的空白,并返回这段文字的一个副本。";
396
427
  Blockly.Msg["TODAY"] = "今天";
397
428
  Blockly.Msg["UNDO"] = "撤销";
429
+ Blockly.Msg["UNKNOWN"] = "Unknown"; // untranslated
398
430
  Blockly.Msg["UNNAMED_KEY"] = "未命名";
399
431
  Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "项目";
400
432
  Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "创建“设定%1”";
@@ -407,6 +439,7 @@ Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "设置此变量,以使它和输入值
407
439
  Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "名字叫“%1”的变量已经存在了。";
408
440
  Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "名字叫“%1”的变量已经有了另一个类型:“%2”。";
409
441
  Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_A_PARAMETER"] = "名为“%1”的变量已经作为参数存在于流程“%2”中。";
442
+ Blockly.Msg["WINDOWS"] = "Windows"; // untranslated
410
443
  Blockly.Msg["WORKSPACE_ARIA_LABEL"] = "Blockly工作区";
411
444
  Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "说点什么...";
412
445
  Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"];
package/msg/zh-hans.mjs CHANGED
@@ -22,6 +22,7 @@ export const {
22
22
  DELETE_X_BLOCKS,
23
23
  DELETE_ALL_BLOCKS,
24
24
  CLEAN_UP,
25
+ CLOSE,
25
26
  COLLAPSE_BLOCK,
26
27
  COLLAPSE_ALL,
27
28
  EXPAND_BLOCK,
@@ -420,4 +421,36 @@ export const {
420
421
  COLLAPSED_WARNINGS_WARNING,
421
422
  DIALOG_OK,
422
423
  DIALOG_CANCEL,
424
+ DELETE_SHORTCUT,
425
+ DELETE_KEY,
426
+ EDIT_BLOCK_CONTENTS,
427
+ INSERT_BLOCK,
428
+ START_MOVE,
429
+ FINISH_MOVE,
430
+ ABORT_MOVE,
431
+ MOVE_LEFT_CONSTRAINED,
432
+ MOVE_RIGHT_CONSTRAINED,
433
+ MOVE_UP_CONSTRAINED,
434
+ MOVE_DOWN_CONSTRAINED,
435
+ MOVE_LEFT_UNCONSTRAINED,
436
+ MOVE_RIGHT_UNCONSTRAINED,
437
+ MOVE_UP_UNCONSTRAINED,
438
+ MOVE_DOWN_UNCONSTRAINED,
439
+ MOVE_BLOCK,
440
+ WINDOWS,
441
+ MAC_OS,
442
+ CHROME_OS,
443
+ LINUX,
444
+ UNKNOWN,
445
+ CONTROL_KEY,
446
+ COMMAND_KEY,
447
+ OPTION_KEY,
448
+ ALT_KEY,
449
+ CUT_SHORTCUT,
450
+ COPY_SHORTCUT,
451
+ PASTE_SHORTCUT,
452
+ HELP_PROMPT,
453
+ SHORTCUTS_GENERAL,
454
+ SHORTCUTS_EDITING,
455
+ SHORTCUTS_CODE_NAVIGATION,
423
456
  } = zh_hans;
package/msg/zh-hant.js CHANGED
@@ -17,10 +17,14 @@
17
17
 
18
18
  var Blockly = Blockly || { Msg: Object.create(null) };
19
19
 
20
+ Blockly.Msg["ABORT_MOVE"] = "Abort move"; // untranslated
20
21
  Blockly.Msg["ADD_COMMENT"] = "添加評論";
22
+ Blockly.Msg["ALT_KEY"] = "Alt"; // untranslated
21
23
  Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "無法刪除變數「%1」,因為這是功能「%2」定義的一部份內容";
22
24
  Blockly.Msg["CHANGE_VALUE_TITLE"] = "修改值:";
25
+ Blockly.Msg["CHROME_OS"] = "ChromeOS"; // untranslated
23
26
  Blockly.Msg["CLEAN_UP"] = "清理區塊";
27
+ Blockly.Msg["CLOSE"] = "Close"; // untranslated
24
28
  Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "收合含有警告的區塊。";
25
29
  Blockly.Msg["COLLAPSE_ALL"] = "收合區塊";
26
30
  Blockly.Msg["COLLAPSE_BLOCK"] = "收合區塊";
@@ -41,6 +45,7 @@ Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorper
41
45
  Blockly.Msg["COLOUR_RGB_RED"] = "紅";
42
46
  Blockly.Msg["COLOUR_RGB_TITLE"] = "顏色";
43
47
  Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "透過指定紅、綠、 藍色的值來建立一種顏色。所有的值必須介於 0 和 100 之間。";
48
+ Blockly.Msg["COMMAND_KEY"] = "⌘ Command"; // untranslated
44
49
  Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated
45
50
  Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "中斷循環";
46
51
  Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "繼續下一個循環";
@@ -73,8 +78,13 @@ Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "重複直到";
73
78
  Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "重複,當";
74
79
  Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "當值為 false 時,執行一些陳述式。";
75
80
  Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "當值為 true 時,執行一些陳述式。";
81
+ Blockly.Msg["CONTROL_KEY"] = "Ctrl"; // untranslated
82
+ Blockly.Msg["COPY_SHORTCUT"] = "Copy (%1)"; // untranslated
83
+ Blockly.Msg["CUT_SHORTCUT"] = "Cut (%1)"; // untranslated
76
84
  Blockly.Msg["DELETE_ALL_BLOCKS"] = "刪除全部 %1 個區塊?";
77
85
  Blockly.Msg["DELETE_BLOCK"] = "刪除區塊";
86
+ Blockly.Msg["DELETE_KEY"] = "Del"; // untranslated
87
+ Blockly.Msg["DELETE_SHORTCUT"] = "Delete block (%1)"; // untranslated
78
88
  Blockly.Msg["DELETE_VARIABLE"] = "刪除變數「%1」";
79
89
  Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "刪除使用%1次的「%2」變數?";
80
90
  Blockly.Msg["DELETE_X_BLOCKS"] = "刪除%1個區塊";
@@ -83,12 +93,17 @@ Blockly.Msg["DIALOG_OK"] = "確定";
83
93
  Blockly.Msg["DISABLE_BLOCK"] = "停用區塊";
84
94
  Blockly.Msg["DUPLICATE_BLOCK"] = "再製";
85
95
  Blockly.Msg["DUPLICATE_COMMENT"] = "複製註解";
96
+ Blockly.Msg["EDIT_BLOCK_CONTENTS"] = "Edit Block contents (%1)"; // untranslated
86
97
  Blockly.Msg["ENABLE_BLOCK"] = "啟用區塊";
87
98
  Blockly.Msg["EXPAND_ALL"] = "展開區塊";
88
99
  Blockly.Msg["EXPAND_BLOCK"] = "展開區塊";
89
100
  Blockly.Msg["EXTERNAL_INPUTS"] = "外部輸入";
101
+ Blockly.Msg["FINISH_MOVE"] = "Finish move"; // untranslated
90
102
  Blockly.Msg["HELP"] = "說明";
103
+ Blockly.Msg["HELP_PROMPT"] = "Press %1 for help on keyboard controls"; // untranslated
91
104
  Blockly.Msg["INLINE_INPUTS"] = "單行輸入";
105
+ Blockly.Msg["INSERT_BLOCK"] = "Insert Block (%1)"; // untranslated
106
+ Blockly.Msg["LINUX"] = "Linux"; // untranslated
92
107
  Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated
93
108
  Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "建立空的清單";
94
109
  Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "返回一個長度(項目數量)為 0 的清單,不包含任何資料記錄";
@@ -201,6 +216,7 @@ Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:";
201
216
  Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "如果為假";
202
217
  Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "如果為真";
203
218
  Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "檢查「測試」中的條件。如果條件為真,將返回「如果為真」的值;否則,返回「如果為假」的值。";
219
+ Blockly.Msg["MAC_OS"] = "macOS"; // untranslated
204
220
  Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated
205
221
  Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://zh.wikipedia.org/wiki/算術";
206
222
  Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "返回兩個數字的總和。";
@@ -287,13 +303,24 @@ Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "返回指定數字的反正切值。";
287
303
  Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "返回指定角度的餘弦值(非弧度)。";
288
304
  Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "返回指定角度的正弦值(非弧度)。";
289
305
  Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "返回指定角度的正切值(非弧度)。";
306
+ Blockly.Msg["MOVE_BLOCK"] = "Move Block (%1)"; // untranslated
307
+ Blockly.Msg["MOVE_DOWN_CONSTRAINED"] = "Move down constrained"; // untranslated
308
+ Blockly.Msg["MOVE_DOWN_UNCONSTRAINED"] = "Move down, unconstrained"; // untranslated
309
+ Blockly.Msg["MOVE_LEFT_CONSTRAINED"] = "Move left, constrained"; // untranslated
310
+ Blockly.Msg["MOVE_LEFT_UNCONSTRAINED"] = "Move left, unconstrained"; // untranslated
311
+ Blockly.Msg["MOVE_RIGHT_CONSTRAINED"] = "Move right constrained"; // untranslated
312
+ Blockly.Msg["MOVE_RIGHT_UNCONSTRAINED"] = "Move right, unconstrained"; // untranslated
313
+ Blockly.Msg["MOVE_UP_CONSTRAINED"] = "Move up, constrained"; // untranslated
314
+ Blockly.Msg["MOVE_UP_UNCONSTRAINED"] = "Move up unconstrained"; // untranslated
290
315
  Blockly.Msg["NEW_COLOUR_VARIABLE"] = "建立顏色變數…";
291
316
  Blockly.Msg["NEW_NUMBER_VARIABLE"] = "建立數值變數……";
292
317
  Blockly.Msg["NEW_STRING_VARIABLE"] = "建立字串變數……";
293
318
  Blockly.Msg["NEW_VARIABLE"] = "建立變數…";
294
319
  Blockly.Msg["NEW_VARIABLE_TITLE"] = "新變數名稱:";
295
320
  Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "新變數類型:";
321
+ Blockly.Msg["OPTION_KEY"] = "⌥ Option"; // untranslated
296
322
  Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated
323
+ Blockly.Msg["PASTE_SHORTCUT"] = "Paste (%1)"; // untranslated
297
324
  Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "允許陳述式";
298
325
  Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "與:";
299
326
  Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://zh.wikipedia.org/wiki/子程式";
@@ -325,6 +352,10 @@ Blockly.Msg["REDO"] = "重做";
325
352
  Blockly.Msg["REMOVE_COMMENT"] = "移除註解";
326
353
  Blockly.Msg["RENAME_VARIABLE"] = "重新命名變數...";
327
354
  Blockly.Msg["RENAME_VARIABLE_TITLE"] = "將所有「%1」變數重新命名為:";
355
+ Blockly.Msg["SHORTCUTS_CODE_NAVIGATION"] = "Code navigation"; // untranslated
356
+ Blockly.Msg["SHORTCUTS_EDITING"] = "Editing"; // untranslated
357
+ Blockly.Msg["SHORTCUTS_GENERAL"] = "General"; // untranslated
358
+ Blockly.Msg["START_MOVE"] = "Start move"; // untranslated
328
359
  Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated
329
360
  Blockly.Msg["TEXT_APPEND_TITLE"] = "至 %1 套用文字 %2";
330
361
  Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "添加一些文字到變數「%1」之後。";
@@ -395,6 +426,7 @@ Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "消除右側空格";
395
426
  Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "複製這段文字,同時刪除兩端多餘的空格。";
396
427
  Blockly.Msg["TODAY"] = "今天";
397
428
  Blockly.Msg["UNDO"] = "還原";
429
+ Blockly.Msg["UNKNOWN"] = "Unknown"; // untranslated
398
430
  Blockly.Msg["UNNAMED_KEY"] = "未命名";
399
431
  Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "項目";
400
432
  Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "建立「賦值 %1」";
@@ -407,6 +439,7 @@ Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "設定此變數,好和輸入結果相
407
439
  Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "已存在變數「%1」。";
408
440
  Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "已存在名為「%1」,且用於其它類型「%2」的變數。";
409
441
  Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_A_PARAMETER"] = "已存在名為「%1」的變數,該變數作為程序「%2」的參數使用。";
442
+ Blockly.Msg["WINDOWS"] = "Windows"; // untranslated
410
443
  Blockly.Msg["WORKSPACE_ARIA_LABEL"] = "Blockly工作區";
411
444
  Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "來說些事情...";
412
445
  Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"];
package/msg/zh-hant.mjs CHANGED
@@ -22,6 +22,7 @@ export const {
22
22
  DELETE_X_BLOCKS,
23
23
  DELETE_ALL_BLOCKS,
24
24
  CLEAN_UP,
25
+ CLOSE,
25
26
  COLLAPSE_BLOCK,
26
27
  COLLAPSE_ALL,
27
28
  EXPAND_BLOCK,
@@ -420,4 +421,36 @@ export const {
420
421
  COLLAPSED_WARNINGS_WARNING,
421
422
  DIALOG_OK,
422
423
  DIALOG_CANCEL,
424
+ DELETE_SHORTCUT,
425
+ DELETE_KEY,
426
+ EDIT_BLOCK_CONTENTS,
427
+ INSERT_BLOCK,
428
+ START_MOVE,
429
+ FINISH_MOVE,
430
+ ABORT_MOVE,
431
+ MOVE_LEFT_CONSTRAINED,
432
+ MOVE_RIGHT_CONSTRAINED,
433
+ MOVE_UP_CONSTRAINED,
434
+ MOVE_DOWN_CONSTRAINED,
435
+ MOVE_LEFT_UNCONSTRAINED,
436
+ MOVE_RIGHT_UNCONSTRAINED,
437
+ MOVE_UP_UNCONSTRAINED,
438
+ MOVE_DOWN_UNCONSTRAINED,
439
+ MOVE_BLOCK,
440
+ WINDOWS,
441
+ MAC_OS,
442
+ CHROME_OS,
443
+ LINUX,
444
+ UNKNOWN,
445
+ CONTROL_KEY,
446
+ COMMAND_KEY,
447
+ OPTION_KEY,
448
+ ALT_KEY,
449
+ CUT_SHORTCUT,
450
+ COPY_SHORTCUT,
451
+ PASTE_SHORTCUT,
452
+ HELP_PROMPT,
453
+ SHORTCUTS_GENERAL,
454
+ SHORTCUTS_EDITING,
455
+ SHORTCUTS_CODE_NAVIGATION,
423
456
  } = zh_hant;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blockly",
3
- "version": "12.0.0-beta.4",
3
+ "version": "12.0.0-beta.6",
4
4
  "description": "Blockly is a library for building visual programming editors.",
5
5
  "keywords": [
6
6
  "blockly"
@@ -79,11 +79,11 @@
79
79
  "concurrently": "^9.0.1",
80
80
  "eslint": "^9.15.0",
81
81
  "eslint-config-google": "^0.14.0",
82
- "eslint-config-prettier": "^9.1.0",
82
+ "eslint-config-prettier": "^10.1.1",
83
83
  "eslint-plugin-jsdoc": "^50.5.0",
84
84
  "eslint-plugin-prettier": "^5.2.1",
85
85
  "glob": "^11.0.1",
86
- "globals": "^15.12.0",
86
+ "globals": "^16.0.0",
87
87
  "google-closure-compiler": "^20240317.0.0",
88
88
  "gulp": "^5.0.0",
89
89
  "gulp-concat": "^2.6.1",
@@ -111,7 +111,7 @@
111
111
  "yargs": "^17.2.1"
112
112
  },
113
113
  "dependencies": {
114
- "jsdom": "25.0.1"
114
+ "jsdom": "26.1.0"
115
115
  },
116
116
  "engines": {
117
117
  "node": ">=18"
@@ -1,69 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2020 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- /**
7
- * Events fired as a result of a marker move.
8
- *
9
- * @class
10
- */
11
- import type { Block } from '../block.js';
12
- import { ASTNode } from '../keyboard_nav/ast_node.js';
13
- import type { Workspace } from '../workspace.js';
14
- import { AbstractEventJson } from './events_abstract.js';
15
- import { UiBase } from './events_ui_base.js';
16
- import { EventType } from './type.js';
17
- /**
18
- * Notifies listeners that a marker (used for keyboard navigation) has
19
- * moved.
20
- */
21
- export declare class MarkerMove extends UiBase {
22
- /** The ID of the block the marker is now on, if any. */
23
- blockId?: string;
24
- /** The old node the marker used to be on, if any. */
25
- oldNode?: ASTNode;
26
- /** The new node the marker is now on. */
27
- newNode?: ASTNode;
28
- /**
29
- * True if this is a cursor event, false otherwise.
30
- * For information about cursors vs markers see {@link
31
- * https://blocklycodelabs.dev/codelabs/keyboard-navigation/index.html?index=..%2F..index#1}.
32
- */
33
- isCursor?: boolean;
34
- type: EventType;
35
- /**
36
- * @param opt_block The affected block. Null if current node is of type
37
- * workspace. Undefined for a blank event.
38
- * @param isCursor Whether this is a cursor event. Undefined for a blank
39
- * event.
40
- * @param opt_oldNode The old node the marker used to be on.
41
- * Undefined for a blank event.
42
- * @param opt_newNode The new node the marker is now on.
43
- * Undefined for a blank event.
44
- */
45
- constructor(opt_block?: Block | null, isCursor?: boolean, opt_oldNode?: ASTNode | null, opt_newNode?: ASTNode);
46
- /**
47
- * Encode the event as JSON.
48
- *
49
- * @returns JSON representation.
50
- */
51
- toJson(): MarkerMoveJson;
52
- /**
53
- * Deserializes the JSON event.
54
- *
55
- * @param event The event to append new properties to. Should be a subclass
56
- * of MarkerMove, but we can't specify that due to the fact that
57
- * parameters to static methods in subclasses must be supertypes of
58
- * parameters to static methods in superclasses.
59
- * @internal
60
- */
61
- static fromJson(json: MarkerMoveJson, workspace: Workspace, event?: any): MarkerMove;
62
- }
63
- export interface MarkerMoveJson extends AbstractEventJson {
64
- isCursor: boolean;
65
- blockId?: string;
66
- oldNode?: ASTNode;
67
- newNode: ASTNode;
68
- }
69
- //# sourceMappingURL=events_marker_move.d.ts.map
@@ -1,11 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2020 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- /**
7
- * An AST node location interface.
8
- */
9
- export interface IASTNodeLocation {
10
- }
11
- //# sourceMappingURL=i_ast_node_location.d.ts.map