blockly 9.1.0 → 9.2.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 (120) hide show
  1. package/blockly.min.js +395 -349
  2. package/blockly_compressed.js +392 -346
  3. package/blockly_compressed.js.map +1 -1
  4. package/blocks_compressed.js +3 -3
  5. package/blocks_compressed.js.map +1 -1
  6. package/core/any_aliases.d.ts +1 -1
  7. package/core/block.d.ts +3 -1
  8. package/core/block_dragger.d.ts +3 -3
  9. package/core/block_svg.d.ts +2 -2
  10. package/core/blockly.d.ts +21 -26
  11. package/core/blockly_options.d.ts +1 -0
  12. package/core/blocks.d.ts +2 -2
  13. package/core/browser_events.d.ts +2 -4
  14. package/core/bubble.d.ts +8 -8
  15. package/core/bubble_dragger.d.ts +3 -3
  16. package/core/component_manager.d.ts +1 -1
  17. package/core/contextmenu_registry.d.ts +5 -5
  18. package/core/dropdowndiv.d.ts +8 -4
  19. package/core/events/events.d.ts +21 -1
  20. package/core/events/events_abstract.d.ts +14 -1
  21. package/core/events/events_block_base.d.ts +12 -1
  22. package/core/events/events_block_change.d.ts +11 -0
  23. package/core/events/events_block_create.d.ts +11 -0
  24. package/core/events/events_block_delete.d.ts +11 -0
  25. package/core/events/events_block_drag.d.ts +11 -0
  26. package/core/events/events_block_move.d.ts +14 -0
  27. package/core/events/events_bubble_open.d.ts +11 -0
  28. package/core/events/events_click.d.ts +11 -0
  29. package/core/events/events_comment_base.d.ts +11 -0
  30. package/core/events/events_comment_change.d.ts +11 -0
  31. package/core/events/events_comment_create.d.ts +11 -0
  32. package/core/events/events_comment_delete.d.ts +21 -1
  33. package/core/events/events_comment_move.d.ts +11 -0
  34. package/core/events/events_marker_move.d.ts +11 -0
  35. package/core/events/events_procedure_base.d.ts +26 -0
  36. package/core/events/events_procedure_change_return.d.ts +40 -0
  37. package/core/events/events_procedure_create.d.ts +34 -0
  38. package/core/events/events_procedure_delete.d.ts +32 -0
  39. package/core/events/events_procedure_enable.d.ts +34 -0
  40. package/core/events/events_procedure_parameter_base.d.ts +26 -0
  41. package/core/events/events_procedure_parameter_create.d.ts +42 -0
  42. package/core/events/events_procedure_parameter_delete.d.ts +41 -0
  43. package/core/events/events_procedure_parameter_rename.d.ts +36 -0
  44. package/core/events/events_procedure_rename.d.ts +35 -0
  45. package/core/events/events_selected.d.ts +11 -0
  46. package/core/events/events_theme_change.d.ts +11 -0
  47. package/core/events/events_toolbox_item_select.d.ts +11 -0
  48. package/core/events/events_trashcan_open.d.ts +11 -0
  49. package/core/events/events_var_base.d.ts +11 -0
  50. package/core/events/events_var_create.d.ts +11 -0
  51. package/core/events/events_var_delete.d.ts +11 -0
  52. package/core/events/events_var_rename.d.ts +11 -0
  53. package/core/events/events_viewport.d.ts +11 -0
  54. package/core/events/utils.d.ts +17 -1
  55. package/core/field.d.ts +20 -9
  56. package/core/field_angle.d.ts +6 -6
  57. package/core/field_checkbox.d.ts +4 -3
  58. package/core/field_colour.d.ts +4 -3
  59. package/core/field_dropdown.d.ts +7 -6
  60. package/core/field_image.d.ts +2 -2
  61. package/core/field_input.d.ts +229 -0
  62. package/core/field_label.d.ts +2 -2
  63. package/core/field_label_serializable.d.ts +1 -1
  64. package/core/field_multilineinput.d.ts +3 -2
  65. package/core/field_number.d.ts +7 -4
  66. package/core/field_registry.d.ts +8 -5
  67. package/core/field_textinput.d.ts +6 -201
  68. package/core/field_variable.d.ts +3 -2
  69. package/core/flyout_base.d.ts +3 -4
  70. package/core/flyout_button.d.ts +1 -1
  71. package/core/gesture.d.ts +127 -50
  72. package/core/icon.d.ts +4 -4
  73. package/core/input.d.ts +8 -7
  74. package/core/insertion_marker_manager.d.ts +80 -63
  75. package/core/interfaces/i_copyable.d.ts +1 -1
  76. package/core/interfaces/i_observable.d.ts +21 -0
  77. package/core/interfaces/i_parameter_model.d.ts +3 -5
  78. package/core/keyboard_nav/ast_node.d.ts +1 -1
  79. package/core/metrics_manager.d.ts +5 -5
  80. package/core/mutator.d.ts +7 -3
  81. package/core/names.d.ts +1 -1
  82. package/core/options.d.ts +5 -4
  83. package/core/procedures/observable_parameter_model.d.ts +17 -0
  84. package/core/procedures/observable_procedure_map.d.ts +1 -1
  85. package/core/procedures/observable_procedure_model.d.ts +13 -0
  86. package/core/procedures.d.ts +1 -1
  87. package/core/registry.d.ts +1 -1
  88. package/core/rendered_connection.d.ts +1 -1
  89. package/core/renderers/common/constants.d.ts +3 -3
  90. package/core/serialization/procedures.d.ts +26 -2
  91. package/core/shortcut_registry.d.ts +1 -1
  92. package/core/theme.d.ts +4 -4
  93. package/core/theme_manager.d.ts +1 -1
  94. package/core/toolbox/category.d.ts +1 -1
  95. package/core/toolbox/collapsible_category.d.ts +1 -1
  96. package/core/toolbox/separator.d.ts +1 -1
  97. package/core/toolbox/toolbox.d.ts +1 -1
  98. package/core/tooltip.d.ts +2 -2
  99. package/core/touch.d.ts +12 -17
  100. package/core/utils/toolbox.d.ts +7 -7
  101. package/core/workspace_comment_svg.d.ts +18 -17
  102. package/core/workspace_svg.d.ts +13 -15
  103. package/core.js +4 -3
  104. package/msg/bs.js +12 -12
  105. package/msg/de.js +6 -6
  106. package/msg/diq.js +6 -6
  107. package/msg/es.js +15 -15
  108. package/msg/fr.js +2 -2
  109. package/msg/he.js +1 -1
  110. package/msg/hy.js +43 -43
  111. package/msg/is.js +17 -17
  112. package/msg/ja.js +1 -1
  113. package/msg/ko.js +3 -3
  114. package/msg/nb.js +1 -1
  115. package/msg/oc.js +2 -2
  116. package/msg/smn.js +24 -24
  117. package/msg/zh-hant.js +10 -10
  118. package/package.json +7 -6
  119. package/core/interfaces/i_registrable_field.d.ts +0 -19
  120. package/core/touch_gesture.d.ts +0 -130
package/core/touch.d.ts CHANGED
@@ -41,7 +41,7 @@ export declare const TOUCH_MAP: {
41
41
  * @alias Blockly.Touch.longStart
42
42
  * @internal
43
43
  */
44
- export declare function longStart(e: Event, gesture: Gesture): void;
44
+ export declare function longStart(e: PointerEvent, gesture: Gesture): void;
45
45
  /**
46
46
  * Nope, that's not a long-press. Either touchend or touchcancel was fired,
47
47
  * or a drag hath begun. Kill the queued long-press task.
@@ -68,32 +68,27 @@ export declare function clearTouchIdentifier(): void;
68
68
  * handler; false if it should be blocked.
69
69
  * @alias Blockly.Touch.shouldHandleEvent
70
70
  */
71
- export declare function shouldHandleEvent(e: Event | PseudoEvent): boolean;
71
+ export declare function shouldHandleEvent(e: Event): boolean;
72
72
  /**
73
- * Get the touch identifier from the given event. If it was a mouse event, the
74
- * identifier is the string 'mouse'.
73
+ * Get the pointer identifier from the given event.
75
74
  *
76
- * @param e Pointer event, mouse event, or touch event.
77
- * @returns The pointerId, or touch identifier from the first changed touch, if
78
- * defined. Otherwise 'mouse'.
75
+ * @param e Pointer event.
76
+ * @returns The pointerId of the event.
79
77
  * @alias Blockly.Touch.getTouchIdentifierFromEvent
80
78
  */
81
- export declare function getTouchIdentifierFromEvent(e: Event | PseudoEvent): string;
79
+ export declare function getTouchIdentifierFromEvent(e: PointerEvent): string;
82
80
  /**
83
- * Check whether the touch identifier on the event matches the current saved
84
- * identifier. If there is no identifier, that means it's a mouse event and
85
- * we'll use the identifier "mouse". This means we won't deal well with
86
- * multiple mice being used at the same time. That seems okay.
87
- * If the current identifier was unset, save the identifier from the
88
- * event. This starts a drag/gesture, during which touch events with other
89
- * identifiers will be silently ignored.
81
+ * Check whether the pointer identifier on the event matches the current saved
82
+ * identifier. If the current identifier was unset, save the identifier from
83
+ * the event. This starts a drag/gesture, during which pointer events with
84
+ * other identifiers will be silently ignored.
90
85
  *
91
- * @param e Mouse event or touch event.
86
+ * @param e Pointer event.
92
87
  * @returns Whether the identifier on the event matches the current saved
93
88
  * identifier.
94
89
  * @alias Blockly.Touch.checkTouchIdentifier
95
90
  */
96
- export declare function checkTouchIdentifier(e: Event | PseudoEvent): boolean;
91
+ export declare function checkTouchIdentifier(e: PointerEvent): boolean;
97
92
  /**
98
93
  * Set an event's clientX and clientY from its first changed touch. Use this to
99
94
  * make a touch event work in a mouse event handler.
@@ -73,7 +73,7 @@ export interface LabelInfo {
73
73
  *
74
74
  * @alias Blockly.utils.toolbox.ButtonOrLabelInfo
75
75
  */
76
- export declare type ButtonOrLabelInfo = ButtonInfo | LabelInfo;
76
+ export type ButtonOrLabelInfo = ButtonInfo | LabelInfo;
77
77
  /**
78
78
  * The information needed to create a category in the toolbox.
79
79
  *
@@ -108,19 +108,19 @@ export interface DynamicCategoryInfo {
108
108
  *
109
109
  * @alias Blockly.utils.toolbox.CategoryInfo
110
110
  */
111
- export declare type CategoryInfo = StaticCategoryInfo | DynamicCategoryInfo;
111
+ export type CategoryInfo = StaticCategoryInfo | DynamicCategoryInfo;
112
112
  /**
113
113
  * Any information that can be used to create an item in the toolbox.
114
114
  *
115
115
  * @alias Blockly.utils.toolbox.ToolboxItemInfo
116
116
  */
117
- export declare type ToolboxItemInfo = FlyoutItemInfo | StaticCategoryInfo;
117
+ export type ToolboxItemInfo = FlyoutItemInfo | StaticCategoryInfo;
118
118
  /**
119
119
  * All the different types that can be displayed in a flyout.
120
120
  *
121
121
  * @alias Blockly.utils.toolbox.FlyoutItemInfo
122
122
  */
123
- export declare type FlyoutItemInfo = BlockInfo | SeparatorInfo | ButtonInfo | LabelInfo | DynamicCategoryInfo;
123
+ export type FlyoutItemInfo = BlockInfo | SeparatorInfo | ButtonInfo | LabelInfo | DynamicCategoryInfo;
124
124
  /**
125
125
  * The JSON definition of a toolbox.
126
126
  *
@@ -135,19 +135,19 @@ export interface ToolboxInfo {
135
135
  *
136
136
  * @alias Blockly.utils.toolbox.FlyoutItemInfoArray
137
137
  */
138
- export declare type FlyoutItemInfoArray = FlyoutItemInfo[];
138
+ export type FlyoutItemInfoArray = FlyoutItemInfo[];
139
139
  /**
140
140
  * All of the different types that can create a toolbox.
141
141
  *
142
142
  * @alias Blockly.utils.toolbox.ToolboxDefinition
143
143
  */
144
- export declare type ToolboxDefinition = Node | ToolboxInfo | string;
144
+ export type ToolboxDefinition = Node | ToolboxInfo | string;
145
145
  /**
146
146
  * All of the different types that can be used to show items in a flyout.
147
147
  *
148
148
  * @alias Blockly.utils.toolbox.FlyoutDefinition
149
149
  */
150
- export declare type FlyoutDefinition = FlyoutItemInfoArray | NodeList | ToolboxInfo | Node[];
150
+ export type FlyoutDefinition = FlyoutItemInfoArray | NodeList | ToolboxInfo | Node[];
151
151
  /**
152
152
  * Position of the toolbox and/or flyout relative to the workspace.
153
153
  *
@@ -72,18 +72,18 @@ export declare class WorkspaceCommentSvg extends WorkspaceComment implements IBo
72
72
  */
73
73
  initSvg(opt_noSelect?: boolean): void;
74
74
  /**
75
- * Handle a mouse-down on an SVG comment.
75
+ * Handle a pointerdown on an SVG comment.
76
76
  *
77
- * @param e Mouse down event or touch start event.
77
+ * @param e Pointer down event.
78
78
  */
79
79
  private pathMouseDown_;
80
80
  /**
81
81
  * Show the context menu for this workspace comment.
82
82
  *
83
- * @param e Mouse event.
83
+ * @param e Pointer event.
84
84
  * @internal
85
85
  */
86
- showContextMenu(e: Event): void;
86
+ showContextMenu(e: PointerEvent): void;
87
87
  /**
88
88
  * Select this comment. Highlight it visually.
89
89
  *
@@ -294,41 +294,42 @@ export declare class WorkspaceCommentSvg extends WorkspaceComment implements IBo
294
294
  /** Add the delete icon to the DOM */
295
295
  private addDeleteDom_;
296
296
  /**
297
- * Handle a mouse-down on comment's resize corner.
297
+ * Handle a pointerdown on comment's resize corner.
298
298
  *
299
- * @param e Mouse down event.
299
+ * @param e Pointer down event.
300
300
  */
301
301
  private resizeMouseDown_;
302
302
  /**
303
- * Handle a mouse-down on comment's delete icon.
303
+ * Handle a pointerdown on comment's delete icon.
304
304
  *
305
- * @param e Mouse down event.
305
+ * @param e Pointer down event.
306
306
  */
307
307
  private deleteMouseDown_;
308
308
  /**
309
- * Handle a mouse-out on comment's delete icon.
309
+ * Handle a pointerout on comment's delete icon.
310
310
  *
311
- * @param _e Mouse out event.
311
+ * @param _e Pointer out event.
312
312
  */
313
313
  private deleteMouseOut_;
314
314
  /**
315
- * Handle a mouse-up on comment's delete icon.
315
+ * Handle a pointerup on comment's delete icon.
316
316
  *
317
- * @param e Mouse up event.
317
+ * @param e Pointer up event.
318
318
  */
319
319
  private deleteMouseUp_;
320
- /** Stop binding to the global mouseup and mousemove events. */
320
+ /** Stop binding to the global pointerup and pointermove events. */
321
321
  private unbindDragEvents_;
322
322
  /**
323
- * Handle a mouse-up event while dragging a comment's border or resize handle.
323
+ * Handle a pointerup event while dragging a comment's border or resize
324
+ * handle.
324
325
  *
325
- * @param _e Mouse up event.
326
+ * @param _e Pointer up event.
326
327
  */
327
328
  private resizeMouseUp_;
328
329
  /**
329
- * Resize this comment to follow the mouse.
330
+ * Resize this comment to follow the pointer.
330
331
  *
331
- * @param e Mouse move event.
332
+ * @param e Pointer move event.
332
333
  */
333
334
  private resizeMouseMove_;
334
335
  /**
@@ -12,6 +12,7 @@ import type { BlockSvg } from './block_svg.js';
12
12
  import * as browserEvents from './browser_events.js';
13
13
  import { ComponentManager } from './component_manager.js';
14
14
  import type { FlyoutButton } from './flyout_button.js';
15
+ import { Gesture } from './gesture.js';
15
16
  import { Grid } from './grid.js';
16
17
  import type { IASTNodeLocationSvg } from './interfaces/i_ast_node_location_svg.js';
17
18
  import type { IBoundedElement } from './interfaces/i_bounded_element.js';
@@ -28,7 +29,6 @@ import type { Renderer } from './renderers/common/renderer.js';
28
29
  import type { ScrollbarPair } from './scrollbar_pair.js';
29
30
  import type { Theme } from './theme.js';
30
31
  import { ThemeManager } from './theme_manager.js';
31
- import { TouchGesture } from './touch_gesture.js';
32
32
  import type { Trashcan } from './trashcan.js';
33
33
  import { Coordinate } from './utils/coordinate.js';
34
34
  import type { Metrics } from './utils/metrics.js';
@@ -165,7 +165,7 @@ export declare class WorkspaceSvg extends Workspace implements IASTNodeLocationS
165
165
  *
166
166
  * @internal
167
167
  */
168
- currentGesture_: TouchGesture | null;
168
+ currentGesture_: Gesture | null;
169
169
  /** This workspace's surface for dragging blocks, if it exists. */
170
170
  private readonly blockDragSurface;
171
171
  /** This workspace's drag surface, if it exists. */
@@ -466,14 +466,12 @@ export declare class WorkspaceSvg extends Workspace implements IASTNodeLocationS
466
466
  *
467
467
  * @param opt_own Whether to only return the workspace's own flyout.
468
468
  * @returns The flyout on this workspace.
469
- * @internal
470
469
  */
471
470
  getFlyout(opt_own?: boolean): IFlyout | null;
472
471
  /**
473
472
  * Getter for the toolbox associated with this workspace, if one exists.
474
473
  *
475
474
  * @returns The toolbox on this workspace.
476
- * @internal
477
475
  */
478
476
  getToolbox(): IToolbox | null;
479
477
  /**
@@ -671,33 +669,33 @@ export declare class WorkspaceSvg extends Workspace implements IASTNodeLocationS
671
669
  */
672
670
  newBlock(prototypeName: string, opt_id?: string): BlockSvg;
673
671
  /**
674
- * Returns the drag target the mouse event is over.
672
+ * Returns the drag target the pointer event is over.
675
673
  *
676
- * @param e Mouse move event.
674
+ * @param e Pointer move event.
677
675
  * @returns Null if not over a drag target, or the drag target the event is
678
676
  * over.
679
677
  */
680
- getDragTarget(e: Event): IDragTarget | null;
678
+ getDragTarget(e: PointerEvent): IDragTarget | null;
681
679
  /**
682
- * Handle a mouse-down on SVG drawing surface.
680
+ * Handle a pointerdown on SVG drawing surface.
683
681
  *
684
- * @param e Mouse down event.
682
+ * @param e Pointer down event.
685
683
  */
686
684
  private onMouseDown_;
687
685
  /**
688
686
  * Start tracking a drag of an object on this workspace.
689
687
  *
690
- * @param e Mouse down event.
688
+ * @param e Pointer down event.
691
689
  * @param xy Starting location of object.
692
690
  */
693
- startDrag(e: MouseEvent, xy: Coordinate): void;
691
+ startDrag(e: PointerEvent, xy: Coordinate): void;
694
692
  /**
695
693
  * Track a drag of an object on this workspace.
696
694
  *
697
- * @param e Mouse move event.
695
+ * @param e Pointer move event.
698
696
  * @returns New location of object.
699
697
  */
700
- moveDrag(e: MouseEvent): Coordinate;
698
+ moveDrag(e: PointerEvent): Coordinate;
701
699
  /**
702
700
  * Is the user currently dragging a block or scrolling the flyout/workspace?
703
701
  *
@@ -969,12 +967,12 @@ export declare class WorkspaceSvg extends Workspace implements IASTNodeLocationS
969
967
  * Look up the gesture that is tracking this touch stream on this workspace.
970
968
  * May create a new gesture.
971
969
  *
972
- * @param e Mouse event or touch event.
970
+ * @param e Pointer event.
973
971
  * @returns The gesture that is tracking this touch stream, or null if no
974
972
  * valid gesture exists.
975
973
  * @internal
976
974
  */
977
- getGesture(e: Event): TouchGesture | null;
975
+ getGesture(e: PointerEvent): Gesture | null;
978
976
  /**
979
977
  * Clear the reference to the current gesture.
980
978
  *
package/core.js CHANGED
@@ -18,9 +18,10 @@
18
18
  // Override textToDomDocument and provide Node.js alternatives to DOMParser and
19
19
  // XMLSerializer.
20
20
  if (typeof globalThis.document !== 'object') {
21
- const jsdom = require('jsdom/lib/jsdom/living');
22
- globalThis.DOMParser = jsdom.DOMParser;
23
- globalThis.XMLSerializer = jsdom.XMLSerializer;
21
+ const {JSDOM} = require('jsdom');
22
+ const {window} = new JSDOM(`<!DOCTYPE html>`);
23
+ globalThis.DOMParser = window.DOMParser;
24
+ globalThis.XMLSerializer = window.XMLSerializer;
24
25
  const xmlDocument = Blockly.utils.xml.textToDomDocument(
25
26
  `<xml xmlns="${Blockly.utils.xml.NAME_SPACE}"></xml>`);
26
27
  Blockly.utils.xml.setDocument(xmlDocument);
package/msg/bs.js CHANGED
@@ -62,8 +62,8 @@ Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "inače ako";
62
62
  Blockly.Msg["CONTROLS_IF_MSG_IF"] = "ako";
63
63
  Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Ako je vrijednost tačna, izvršava neke naredbe.";
64
64
  Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Ako je vrijednost tačna, izvršava neke naredbe. U suprotnom, izvršava drugi blok naredbi.";
65
- Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements."; // untranslated
66
- Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements."; // untranslated
65
+ Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Ako je prva vrijednost tačna, onda izvrši prvi blok naredbi. U suprotnom, ako je druga vrijednost tačna, izvrši drugi blok naredbi.";
66
+ Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Ako je prva vrijednost tačna, onda izvrši prvi blok naredbi. U suprotnom, ako je druga vrijednost tačna, izvrši drugi blok naredbi. Ako nijedna od vrijednosti nije tačna, izvrši posljednji blok naredbi.";
67
67
  Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop"; // untranslated
68
68
  Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "izvrši";
69
69
  Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "ponovi %1 puta";
@@ -178,10 +178,10 @@ Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/L
178
178
  Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Vraća ili tačno ili netačno.";
179
179
  Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "tačno";
180
180
  Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://bs.wikipedia.org/wiki/Nejednakost";
181
- Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Return true if both inputs equal each other."; // untranslated
182
- Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Return true if the first input is greater than the second input."; // untranslated
181
+ Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Vraća tačno ako su oba ulaza jednaka jedan drugom.";
182
+ Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Vraća tačno ako je prvi ulaz veći od drugog ulaza.";
183
183
  Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Return true if the first input is greater than or equal to the second input."; // untranslated
184
- Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Return true if the first input is smaller than the second input."; // untranslated
184
+ Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Vraća tačno ako je prvi ulaz manji od drugog ulaza.";
185
185
  Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Return true if the first input is smaller than or equal to the second input."; // untranslated
186
186
  Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Return true if both inputs are not equal to each other."; // untranslated
187
187
  Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated
@@ -193,7 +193,7 @@ Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Vraća \"bez vrijednosti\".";
193
193
  Blockly.Msg["LOGIC_OPERATION_AND"] = "i";
194
194
  Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated
195
195
  Blockly.Msg["LOGIC_OPERATION_OR"] = "ili";
196
- Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Return true if both inputs are true."; // untranslated
196
+ Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Vraća tačno ako su oba ulaza tačna.";
197
197
  Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Return true if at least one of the inputs is true."; // untranslated
198
198
  Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test";
199
199
  Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated
@@ -273,13 +273,13 @@ Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Vraća negaciju broja.";
273
273
  Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Vraća 10 na eksponent broja.";
274
274
  Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Vraća kvadratni korijen broja";
275
275
  Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated
276
- Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated
277
- Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated
278
- Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated
279
- Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated
276
+ Blockly.Msg["MATH_TRIG_ACOS"] = "acos";
277
+ Blockly.Msg["MATH_TRIG_ASIN"] = "asin";
278
+ Blockly.Msg["MATH_TRIG_ATAN"] = "atan";
279
+ Blockly.Msg["MATH_TRIG_COS"] = "cos";
280
280
  Blockly.Msg["MATH_TRIG_HELPURL"] = "https://bs.wikipedia.org/wiki/Trigonometrijska_funkcija";
281
- Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated
282
- Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated
281
+ Blockly.Msg["MATH_TRIG_SIN"] = "sin";
282
+ Blockly.Msg["MATH_TRIG_TAN"] = "tan";
283
283
  Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Vraća arkuskosinus broja.";
284
284
  Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Vraća arkussinus broja.";
285
285
  Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Vraća arkustangens broja.";
package/msg/de.js CHANGED
@@ -273,13 +273,13 @@ Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Negiert eine Zahl.";
273
273
  Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Rechnet 10 hoch eine Zahl.";
274
274
  Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Ist die Quadratwurzel einer Zahl.";
275
275
  Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated
276
- Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated
277
- Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated
278
- Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated
279
- Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated
276
+ Blockly.Msg["MATH_TRIG_ACOS"] = "acos";
277
+ Blockly.Msg["MATH_TRIG_ASIN"] = "asin";
278
+ Blockly.Msg["MATH_TRIG_ATAN"] = "atan";
279
+ Blockly.Msg["MATH_TRIG_COS"] = "cos";
280
280
  Blockly.Msg["MATH_TRIG_HELPURL"] = "https://de.wikipedia.org/wiki/Trigonometrie";
281
- Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated
282
- Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated
281
+ Blockly.Msg["MATH_TRIG_SIN"] = "sin";
282
+ Blockly.Msg["MATH_TRIG_TAN"] = "tan";
283
283
  Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Ist der Arkuskosinus des Eingabewertes.";
284
284
  Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Ist der Arkussinus des Eingabewertes.";
285
285
  Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Ist der Arkustangens des Eingabewertes.";
package/msg/diq.js CHANGED
@@ -273,13 +273,13 @@ Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Nêrazibiyena yew amari açarne.";
273
273
  Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Quweta yew amariya 10ıne tade.";
274
274
  Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Karerêçê yew amarer tadê";
275
275
  Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated
276
- Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated
277
- Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated
278
- Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated
279
- Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated
276
+ Blockly.Msg["MATH_TRIG_ACOS"] = "arccos";
277
+ Blockly.Msg["MATH_TRIG_ASIN"] = "arcsin";
278
+ Blockly.Msg["MATH_TRIG_ATAN"] = "arctan";
279
+ Blockly.Msg["MATH_TRIG_COS"] = "cos";
280
280
  Blockly.Msg["MATH_TRIG_HELPURL"] = "https://diq.wikipedia.org/wiki/Fonksiyonê_trigonometriye";
281
- Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated
282
- Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated
281
+ Blockly.Msg["MATH_TRIG_SIN"] = "sin";
282
+ Blockly.Msg["MATH_TRIG_TAN"] = "tan";
283
283
  Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Arkkosinusê yew amari açarne.";
284
284
  Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Arksinusê yew amari açarne.";
285
285
  Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Arktangensê yew amari açarne.";
package/msg/es.js CHANGED
@@ -29,7 +29,7 @@ Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "color 2";
29
29
  Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated
30
30
  Blockly.Msg["COLOUR_BLEND_RATIO"] = "proporción";
31
31
  Blockly.Msg["COLOUR_BLEND_TITLE"] = "combinar";
32
- Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Combina dos colores con una proporción determinada (0,0-1,0).";
32
+ Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Combina dos colores con una proporción determinada (0,0 - 1,0).";
33
33
  Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://es.wikipedia.org/wiki/Color";
34
34
  Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Elige un color de la paleta.";
35
35
  Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated
@@ -75,7 +75,7 @@ Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Mientras un valor sea falso,
75
75
  Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Mientras un valor sea verdadero, entonces hacer algunas declaraciones.";
76
76
  Blockly.Msg["DELETE_ALL_BLOCKS"] = "¿Eliminar todos los %1 bloques?";
77
77
  Blockly.Msg["DELETE_BLOCK"] = "Eliminar bloque";
78
- Blockly.Msg["DELETE_VARIABLE"] = "Borrar la variable \"%1\"";
78
+ Blockly.Msg["DELETE_VARIABLE"] = "Borrar la variable '%1'";
79
79
  Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "¿Borrar %1 usos de la variable '%2'?";
80
80
  Blockly.Msg["DELETE_X_BLOCKS"] = "Eliminar %1 bloques";
81
81
  Blockly.Msg["DIALOG_CANCEL"] = "Cancelar";
@@ -100,7 +100,7 @@ Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Agregar un elemento a la lista.
100
100
  Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Crear una lista con cualquier número de elementos.";
101
101
  Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "primero";
102
102
  Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# del final";
103
- Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated
103
+ Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#";
104
104
  Blockly.Msg["LISTS_GET_INDEX_GET"] = "obtener";
105
105
  Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "obtener y eliminar";
106
106
  Blockly.Msg["LISTS_GET_INDEX_LAST"] = "último";
@@ -273,13 +273,13 @@ Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Devuelve la negación de un número.";
273
273
  Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Devuelve 10 a la potencia de un número.";
274
274
  Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Devuelve la raíz cuadrada de un número.";
275
275
  Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated
276
- Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated
277
- Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated
278
- Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated
279
- Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated
276
+ Blockly.Msg["MATH_TRIG_ACOS"] = "acos";
277
+ Blockly.Msg["MATH_TRIG_ASIN"] = "asin";
278
+ Blockly.Msg["MATH_TRIG_ATAN"] = "atan";
279
+ Blockly.Msg["MATH_TRIG_COS"] = "cos";
280
280
  Blockly.Msg["MATH_TRIG_HELPURL"] = "https://es.wikipedia.org/wiki/Función_trigonométrica";
281
- Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated
282
- Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated
281
+ Blockly.Msg["MATH_TRIG_SIN"] = "sin";
282
+ Blockly.Msg["MATH_TRIG_TAN"] = "tan";
283
283
  Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Devuelve el arcocoseno de un número.";
284
284
  Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Devuelve el arcoseno de un número.";
285
285
  Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Devuelve el arcotangente de un número.";
@@ -288,8 +288,8 @@ Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Devuelve el seno de un grado (no radián
288
288
  Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Devuelve la tangente de un grado (no radián).";
289
289
  Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Crear una variable de color...";
290
290
  Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Crear una variable de número...";
291
- Blockly.Msg["NEW_STRING_VARIABLE"] = "Crear una cadena variable...";
292
- Blockly.Msg["NEW_VARIABLE"] = "Crear variable";
291
+ Blockly.Msg["NEW_STRING_VARIABLE"] = "Crear una variable de cadena...";
292
+ Blockly.Msg["NEW_VARIABLE"] = "Crear variable...";
293
293
  Blockly.Msg["NEW_VARIABLE_TITLE"] = "Nombre de variable nueva:";
294
294
  Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "Nuevo tipo de variable:";
295
295
  Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated
@@ -321,8 +321,8 @@ Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "entradas";
321
321
  Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Añadir, eliminar o reordenar entradas para esta función.";
322
322
  Blockly.Msg["REDO"] = "Rehacer";
323
323
  Blockly.Msg["REMOVE_COMMENT"] = "Eliminar comentario";
324
- Blockly.Msg["RENAME_VARIABLE"] = "Cambiar nombre de variable";
325
- Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Renombrar todas las variables «%1» a:";
324
+ Blockly.Msg["RENAME_VARIABLE"] = "Renombrar variable...";
325
+ Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Renombrar todas las variables '%1' a:";
326
326
  Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated
327
327
  Blockly.Msg["TEXT_APPEND_TITLE"] = "a %1 añade el texto %2";
328
328
  Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Añadir texto a la variable '%1'.";
@@ -393,7 +393,7 @@ Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "quitar espacios finales de";
393
393
  Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Devuelve una copia del texto sin los espacios de uno o ambos extremos.";
394
394
  Blockly.Msg["TODAY"] = "Hoy";
395
395
  Blockly.Msg["UNDO"] = "Deshacer";
396
- Blockly.Msg["UNNAMED_KEY"] = "Sin nombre";
396
+ Blockly.Msg["UNNAMED_KEY"] = "sin nombre";
397
397
  Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "elemento";
398
398
  Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Crear 'establecer %1'";
399
399
  Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated
@@ -402,7 +402,7 @@ Blockly.Msg["VARIABLES_SET"] = "establecer %1 a %2";
402
402
  Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Crear 'obtener %1'";
403
403
  Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated
404
404
  Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Establece esta variable para que sea igual a la entrada.";
405
- Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Ya existe una variable llamada '%1'.";
405
+ Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "Ya existe una variable nombrada '%1'.";
406
406
  Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "Ya existe una variable nombrada '%1' para otra variable del tipo: '%2'.";
407
407
  Blockly.Msg["WORKSPACE_ARIA_LABEL"] = "Espacio de trabajo de Blockly";
408
408
  Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Di algo…";
package/msg/fr.js CHANGED
@@ -105,7 +105,7 @@ Blockly.Msg["LISTS_GET_INDEX_GET"] = "obtenir";
105
105
  Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "obtenir et supprimer";
106
106
  Blockly.Msg["LISTS_GET_INDEX_LAST"] = "dernier";
107
107
  Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "au hasard";
108
- Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "supprimer";
108
+ Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "retirer";
109
109
  Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated
110
110
  Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Renvoie le premier élément dans une liste.";
111
111
  Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Renvoie l’élément à la position indiquée dans une liste.";
@@ -366,7 +366,7 @@ Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 est vide";
366
366
  Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Renvoie vrai si le texte fourni est vide.";
367
367
  Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated
368
368
  Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "créer un texte avec";
369
- Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Créer un morceau de texte en joignant bout à bout et successivement un nombre quelconque d’éléments dans le même ordre.";
369
+ Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Créer un morceau de texte en joignant bout à bout un nombre quelconque d’éléments dans l’ordre indiqué.";
370
370
  Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated
371
371
  Blockly.Msg["TEXT_LENGTH_TITLE"] = "longueur de %1";
372
372
  Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Renvoie le nombre de lettres (chiffres, ponctuations, symboles et espaces compris) dans le texte fourni.";
package/msg/he.js CHANGED
@@ -320,7 +320,7 @@ Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "הוסף קלט לפונקציה
320
320
  Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "מקורות קלט";
321
321
  Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "הוסף, הסר או סדר מחדש קלטים לפונקציה זו";
322
322
  Blockly.Msg["REDO"] = "ביצוע חוזר";
323
- Blockly.Msg["REMOVE_COMMENT"] = "הסר תגובה";
323
+ Blockly.Msg["REMOVE_COMMENT"] = "הסרת תגובה";
324
324
  Blockly.Msg["RENAME_VARIABLE"] = "שנה את שם המשתנה...";
325
325
  Blockly.Msg["RENAME_VARIABLE_TITLE"] = "שנה את שם כל '%1' המשתנים ל:";
326
326
  Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated