blockly 13.0.0-beta.2 → 13.0.0-beta.4
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.
- package/blockly.min.js +595 -518
- package/blockly_compressed.js +558 -506
- package/blockly_compressed.js.map +1 -1
- package/core/block.d.ts +19 -1
- package/core/block_aria_composer.d.ts +19 -4
- package/core/block_svg.d.ts +11 -2
- package/core/bubbles/textinput_bubble.d.ts +5 -0
- package/core/comments/collapse_comment_bar_button.d.ts +7 -0
- package/core/comments/comment_bar_button.d.ts +14 -0
- package/core/comments/comment_editor.d.ts +15 -0
- package/core/comments/comment_view.d.ts +2 -2
- package/core/comments/delete_comment_bar_button.d.ts +7 -0
- package/core/contextmenu_registry.d.ts +10 -0
- package/core/dragging/block_drag_strategy.d.ts +9 -1
- package/core/field.d.ts +31 -9
- package/core/field_checkbox.d.ts +2 -2
- package/core/field_dropdown.d.ts +11 -2
- package/core/field_image.d.ts +29 -2
- package/core/field_input.d.ts +3 -3
- package/core/field_label.d.ts +27 -0
- package/core/hints.d.ts +26 -0
- package/core/icons/comment_icon.d.ts +8 -0
- package/core/icons/icon.d.ts +14 -0
- package/core/icons/mutator_icon.d.ts +8 -0
- package/core/icons/warning_icon.d.ts +8 -0
- package/core/inputs/input.d.ts +34 -2
- package/core/keyboard_navigation_controller.d.ts +12 -0
- package/core/rendered_connection.d.ts +6 -5
- package/core/shortcut_items.d.ts +18 -4
- package/core/workspace_audio.d.ts +13 -7
- package/core/workspace_svg.d.ts +16 -0
- package/msg/ab.js +37 -12
- package/msg/ab.mjs +25 -0
- package/msg/ace.js +37 -12
- package/msg/ace.mjs +25 -0
- package/msg/af.js +37 -12
- package/msg/af.mjs +25 -0
- package/msg/am.js +37 -12
- package/msg/am.mjs +25 -0
- package/msg/ar.js +34 -9
- package/msg/ar.mjs +25 -0
- package/msg/ast.js +37 -12
- package/msg/ast.mjs +25 -0
- package/msg/az.js +37 -12
- package/msg/az.mjs +25 -0
- package/msg/ba.js +37 -12
- package/msg/ba.mjs +25 -0
- package/msg/bcc.js +37 -12
- package/msg/bcc.mjs +25 -0
- package/msg/be-tarask.js +34 -9
- package/msg/be-tarask.mjs +25 -0
- package/msg/be.js +37 -12
- package/msg/be.mjs +25 -0
- package/msg/bg.js +37 -12
- package/msg/bg.mjs +25 -0
- package/msg/bn.js +37 -12
- package/msg/bn.mjs +25 -0
- package/msg/br.js +37 -12
- package/msg/br.mjs +25 -0
- package/msg/bs.js +37 -12
- package/msg/bs.mjs +25 -0
- package/msg/ca.js +37 -12
- package/msg/ca.mjs +25 -0
- package/msg/ce.js +37 -12
- package/msg/ce.mjs +25 -0
- package/msg/cs.js +37 -12
- package/msg/cs.mjs +25 -0
- package/msg/da.js +34 -9
- package/msg/da.mjs +25 -0
- package/msg/de.js +37 -12
- package/msg/de.mjs +25 -0
- package/msg/diq.js +37 -12
- package/msg/diq.mjs +25 -0
- package/msg/dtp.js +37 -12
- package/msg/dtp.mjs +25 -0
- package/msg/dty.js +37 -12
- package/msg/dty.mjs +25 -0
- package/msg/ee.js +37 -12
- package/msg/ee.mjs +25 -0
- package/msg/el.js +34 -9
- package/msg/el.mjs +25 -0
- package/msg/en-gb.js +37 -12
- package/msg/en-gb.mjs +25 -0
- package/msg/en.js +37 -12
- package/msg/en.mjs +25 -0
- package/msg/eo.js +37 -12
- package/msg/eo.mjs +25 -0
- package/msg/es.js +37 -12
- package/msg/es.mjs +25 -0
- package/msg/et.js +37 -12
- package/msg/et.mjs +25 -0
- package/msg/eu.js +37 -12
- package/msg/eu.mjs +25 -0
- package/msg/fa.js +37 -12
- package/msg/fa.mjs +25 -0
- package/msg/fi.js +37 -12
- package/msg/fi.mjs +25 -0
- package/msg/fo.js +37 -12
- package/msg/fo.mjs +25 -0
- package/msg/fr.js +34 -9
- package/msg/fr.mjs +25 -0
- package/msg/frr.js +37 -12
- package/msg/frr.mjs +25 -0
- package/msg/ga.js +34 -9
- package/msg/ga.mjs +25 -0
- package/msg/gl.js +34 -9
- package/msg/gl.mjs +25 -0
- package/msg/gn.js +37 -12
- package/msg/gn.mjs +25 -0
- package/msg/gor.js +37 -12
- package/msg/gor.mjs +25 -0
- package/msg/ha.js +37 -12
- package/msg/ha.mjs +25 -0
- package/msg/hak.js +37 -12
- package/msg/hak.mjs +25 -0
- package/msg/he.js +34 -9
- package/msg/he.mjs +25 -0
- package/msg/hi.js +37 -12
- package/msg/hi.mjs +25 -0
- package/msg/hr.js +37 -12
- package/msg/hr.mjs +25 -0
- package/msg/hrx.js +37 -12
- package/msg/hrx.mjs +25 -0
- package/msg/hsb.js +37 -12
- package/msg/hsb.mjs +25 -0
- package/msg/hu.js +37 -12
- package/msg/hu.mjs +25 -0
- package/msg/hy.js +37 -12
- package/msg/hy.mjs +25 -0
- package/msg/ia.js +34 -9
- package/msg/ia.mjs +25 -0
- package/msg/id.js +34 -9
- package/msg/id.mjs +25 -0
- package/msg/ig.js +37 -12
- package/msg/ig.mjs +25 -0
- package/msg/inh.js +37 -12
- package/msg/inh.mjs +25 -0
- package/msg/is.js +37 -12
- package/msg/is.mjs +25 -0
- package/msg/it.js +37 -12
- package/msg/it.mjs +25 -0
- package/msg/ja.js +34 -9
- package/msg/ja.mjs +25 -0
- package/msg/ka.js +37 -12
- package/msg/ka.mjs +25 -0
- package/msg/kab.js +37 -12
- package/msg/kab.mjs +25 -0
- package/msg/kbd-cyrl.js +37 -12
- package/msg/kbd-cyrl.mjs +25 -0
- package/msg/km.js +37 -12
- package/msg/km.mjs +25 -0
- package/msg/kn.js +37 -12
- package/msg/kn.mjs +25 -0
- package/msg/ko.js +37 -12
- package/msg/ko.mjs +25 -0
- package/msg/krc.js +34 -9
- package/msg/krc.mjs +25 -0
- package/msg/ksh.js +37 -12
- package/msg/ksh.mjs +25 -0
- package/msg/ku-latn.js +37 -12
- package/msg/ku-latn.mjs +25 -0
- package/msg/ky.js +37 -12
- package/msg/ky.mjs +25 -0
- package/msg/la.js +37 -12
- package/msg/la.mjs +25 -0
- package/msg/lb.js +36 -11
- package/msg/lb.mjs +25 -0
- package/msg/lki.js +37 -12
- package/msg/lki.mjs +25 -0
- package/msg/lo.js +37 -12
- package/msg/lo.mjs +25 -0
- package/msg/lrc.js +37 -12
- package/msg/lrc.mjs +25 -0
- package/msg/lt.js +37 -12
- package/msg/lt.mjs +25 -0
- package/msg/lv.js +37 -12
- package/msg/lv.mjs +25 -0
- package/msg/mg.js +37 -12
- package/msg/mg.mjs +25 -0
- package/msg/mk.js +37 -12
- package/msg/mk.mjs +25 -0
- package/msg/ml.js +37 -12
- package/msg/ml.mjs +25 -0
- package/msg/mnw.js +37 -12
- package/msg/mnw.mjs +25 -0
- package/msg/ms.js +37 -12
- package/msg/ms.mjs +25 -0
- package/msg/my.js +37 -12
- package/msg/my.mjs +25 -0
- package/msg/mzn.js +37 -12
- package/msg/mzn.mjs +25 -0
- package/msg/nb.js +37 -12
- package/msg/nb.mjs +25 -0
- package/msg/ne.js +37 -12
- package/msg/ne.mjs +25 -0
- package/msg/nl.js +34 -9
- package/msg/nl.mjs +25 -0
- package/msg/oc.js +37 -12
- package/msg/oc.mjs +25 -0
- package/msg/olo.js +37 -12
- package/msg/olo.mjs +25 -0
- package/msg/pa.js +37 -12
- package/msg/pa.mjs +25 -0
- package/msg/pl.js +34 -9
- package/msg/pl.mjs +25 -0
- package/msg/pms.js +34 -9
- package/msg/pms.mjs +25 -0
- package/msg/ps.js +37 -12
- package/msg/ps.mjs +25 -0
- package/msg/pt-br.js +34 -9
- package/msg/pt-br.mjs +25 -0
- package/msg/pt.js +34 -9
- package/msg/pt.mjs +25 -0
- package/msg/ro.js +34 -9
- package/msg/ro.mjs +25 -0
- package/msg/ru.js +34 -9
- package/msg/ru.mjs +25 -0
- package/msg/sc.js +37 -12
- package/msg/sc.mjs +25 -0
- package/msg/sco.js +37 -12
- package/msg/sco.mjs +25 -0
- package/msg/sd.js +37 -12
- package/msg/sd.mjs +25 -0
- package/msg/shn.js +37 -12
- package/msg/shn.mjs +25 -0
- package/msg/si.js +37 -12
- package/msg/si.mjs +25 -0
- package/msg/sk.js +37 -12
- package/msg/sk.mjs +25 -0
- package/msg/skr-arab.js +37 -12
- package/msg/skr-arab.mjs +25 -0
- package/msg/sl.js +34 -9
- package/msg/sl.mjs +25 -0
- package/msg/smn.js +37 -12
- package/msg/smn.mjs +25 -0
- package/msg/sq.js +36 -11
- package/msg/sq.mjs +25 -0
- package/msg/sr-latn.js +37 -12
- package/msg/sr-latn.mjs +25 -0
- package/msg/sr.js +37 -12
- package/msg/sr.mjs +25 -0
- package/msg/sv.js +34 -9
- package/msg/sv.mjs +25 -0
- package/msg/sw.js +37 -12
- package/msg/sw.mjs +25 -0
- package/msg/ta.js +37 -12
- package/msg/ta.mjs +25 -0
- package/msg/tcy.js +34 -9
- package/msg/tcy.mjs +25 -0
- package/msg/tdd.js +37 -12
- package/msg/tdd.mjs +25 -0
- package/msg/te.js +37 -12
- package/msg/te.mjs +25 -0
- package/msg/th.js +37 -12
- package/msg/th.mjs +25 -0
- package/msg/ti.js +37 -12
- package/msg/ti.mjs +25 -0
- package/msg/tl.js +37 -12
- package/msg/tl.mjs +25 -0
- package/msg/tlh.js +37 -12
- package/msg/tlh.mjs +25 -0
- package/msg/tr.js +34 -9
- package/msg/tr.mjs +25 -0
- package/msg/ug-arab.js +37 -12
- package/msg/ug-arab.mjs +25 -0
- package/msg/uk.js +37 -12
- package/msg/uk.mjs +25 -0
- package/msg/ur.js +37 -12
- package/msg/ur.mjs +25 -0
- package/msg/uz.js +37 -12
- package/msg/uz.mjs +25 -0
- package/msg/vi.js +34 -9
- package/msg/vi.mjs +25 -0
- package/msg/xmf.js +37 -12
- package/msg/xmf.mjs +25 -0
- package/msg/yo.js +37 -12
- package/msg/yo.mjs +25 -0
- package/msg/zgh.js +37 -12
- package/msg/zgh.mjs +25 -0
- package/msg/zh-hans.js +34 -9
- package/msg/zh-hans.mjs +25 -0
- package/msg/zh-hant.js +34 -9
- package/msg/zh-hant.mjs +25 -0
- package/package.json +38 -38
package/core/inputs/input.d.ts
CHANGED
|
@@ -17,6 +17,12 @@ import type { Field } from '../field.js';
|
|
|
17
17
|
import { Verbosity } from '../utils/aria.js';
|
|
18
18
|
import { Align } from './align.js';
|
|
19
19
|
import { inputTypes } from './input_types.js';
|
|
20
|
+
/**
|
|
21
|
+
* Represents a string or a function that returns a string which can be used as a
|
|
22
|
+
* custom ARIA string to represent an Input, or null if the default fallback should
|
|
23
|
+
* be used. See setAriaLabelProvider for more context.
|
|
24
|
+
*/
|
|
25
|
+
export type AriaLabelProvider = ((input: Input) => string | null) | string;
|
|
20
26
|
/** Class for an input with optional fields. */
|
|
21
27
|
export declare class Input {
|
|
22
28
|
name: string;
|
|
@@ -26,6 +32,8 @@ export declare class Input {
|
|
|
26
32
|
align: Align;
|
|
27
33
|
/** Is the input visible? */
|
|
28
34
|
private visible;
|
|
35
|
+
/** The AriaLabelProvider */
|
|
36
|
+
private ariaLabelProvider;
|
|
29
37
|
readonly type: inputTypes;
|
|
30
38
|
connection: Connection | null;
|
|
31
39
|
/**
|
|
@@ -123,6 +131,26 @@ export declare class Input {
|
|
|
123
131
|
getShadowDom(): Element | null;
|
|
124
132
|
/** Initialize the fields on this input. */
|
|
125
133
|
init(): void;
|
|
134
|
+
/**
|
|
135
|
+
* Sets a custom ARIA label provider for this input, or null if it should be reset
|
|
136
|
+
* to use the default method.
|
|
137
|
+
*
|
|
138
|
+
* Inputs do not compute ARIA contexts directly, so the set provider will be used
|
|
139
|
+
* in select cases when the Input needs to be represented (such as for parts of a
|
|
140
|
+
* block label or for connections). Note that overriding this provider will not
|
|
141
|
+
* recompute any already constructed ARIA labels, and it cannot be assumed that the
|
|
142
|
+
* provider will be called any particular number of times during label
|
|
143
|
+
* recomputation. As such, implementations should make sure to provide a
|
|
144
|
+
* deterministic and idempotent ARIA representation each time the provider is
|
|
145
|
+
* called for a given input. It's also fine to reuse providers across multiple
|
|
146
|
+
* Input implementations.
|
|
147
|
+
*/
|
|
148
|
+
setAriaLabelProvider(provider: AriaLabelProvider | null): void;
|
|
149
|
+
/**
|
|
150
|
+
* Returns the string from the custom ARIA label provider set, or null if the default label (from the field row) should
|
|
151
|
+
* be used. See setAriaLabelProvider for more context.
|
|
152
|
+
*/
|
|
153
|
+
getAriaLabelText(): string | null;
|
|
126
154
|
/**
|
|
127
155
|
* Initializes the fields on this input for a headless block.
|
|
128
156
|
*
|
|
@@ -145,7 +173,10 @@ export declare class Input {
|
|
|
145
173
|
*/
|
|
146
174
|
protected makeConnection(type: ConnectionType): Connection;
|
|
147
175
|
/**
|
|
148
|
-
* Returns an ID for the
|
|
176
|
+
* Returns an ID for the logical "row" this input is part of. A "row" is
|
|
177
|
+
* bounded by a previous/next connection, a statement input, or a block stack
|
|
178
|
+
* boundary; all blocks/inputs nested inside of one of those are conceptually
|
|
179
|
+
* part of its same row.
|
|
149
180
|
*
|
|
150
181
|
* @internal
|
|
151
182
|
*/
|
|
@@ -159,7 +190,8 @@ export declare class Input {
|
|
|
159
190
|
*/
|
|
160
191
|
getLabel(verbosity?: Verbosity): string;
|
|
161
192
|
/**
|
|
162
|
-
* Returns the index of this input on its
|
|
193
|
+
* Returns the index of this input, excluding inputs without connections, on its
|
|
194
|
+
* source block.
|
|
163
195
|
*
|
|
164
196
|
* @internal
|
|
165
197
|
*/
|
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
export declare class KeyboardNavigationController {
|
|
12
12
|
/** Whether the user is actively using keyboard navigation. */
|
|
13
13
|
private isActive;
|
|
14
|
+
/** Whether to play audio cues when navigating between scope levels. */
|
|
15
|
+
private scopeChangeAudioCuesEnabled;
|
|
14
16
|
/** Css class name added to body if keyboard nav is active. */
|
|
15
17
|
private activeClassName;
|
|
16
18
|
/**
|
|
@@ -40,6 +42,16 @@ export declare class KeyboardNavigationController {
|
|
|
40
42
|
* (e.g., has recently taken some action that is only relevant to keyboard users)
|
|
41
43
|
*/
|
|
42
44
|
getIsActive(): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Sets whether or not audio cues should be played when keyboard navigation
|
|
47
|
+
* transitions between blocks of different nesting levels.
|
|
48
|
+
*/
|
|
49
|
+
setScopeChangeAudioCuesEnabled(enabled: boolean): void;
|
|
50
|
+
/**
|
|
51
|
+
* Returns whether or not audio cues should be played when keyboard navigation
|
|
52
|
+
* transitions between blocks of different nesting levels.
|
|
53
|
+
*/
|
|
54
|
+
getScopeChangeAudioCuesEnabled(): boolean;
|
|
43
55
|
/** Adds or removes the css class that indicates keyboard navigation is active. */
|
|
44
56
|
private updateActiveVisualization;
|
|
45
57
|
}
|
|
@@ -3,11 +3,6 @@
|
|
|
3
3
|
* Copyright 2016 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
/**
|
|
7
|
-
* Components for creating connections between blocks.
|
|
8
|
-
*
|
|
9
|
-
* @class
|
|
10
|
-
*/
|
|
11
6
|
import type { BlockSvg } from './block_svg.js';
|
|
12
7
|
import { Connection } from './connection.js';
|
|
13
8
|
import { IContextMenu } from './interfaces/i_contextmenu.js';
|
|
@@ -133,6 +128,12 @@ export declare class RenderedConnection extends Connection implements IContextMe
|
|
|
133
128
|
connection: RenderedConnection | null;
|
|
134
129
|
radius: number;
|
|
135
130
|
};
|
|
131
|
+
/**
|
|
132
|
+
* Sets the aria role, label, and other state for this connection.
|
|
133
|
+
*
|
|
134
|
+
* @param highlightSvg The focusable element for this connection.
|
|
135
|
+
*/
|
|
136
|
+
private recomputeAriaContext;
|
|
136
137
|
/** Add highlighting around this connection. */
|
|
137
138
|
highlight(): void;
|
|
138
139
|
/** Remove the highlighting around this connection. */
|
package/core/shortcut_items.d.ts
CHANGED
|
@@ -33,10 +33,12 @@ export declare enum names {
|
|
|
33
33
|
NEXT_STACK = "next_stack",
|
|
34
34
|
PREVIOUS_STACK = "previous_stack",
|
|
35
35
|
INFORMATION = "information",
|
|
36
|
+
EXTENDED_INFORMATION = "extended_information",
|
|
36
37
|
PERFORM_ACTION = "perform_action",
|
|
37
38
|
DUPLICATE = "duplicate",
|
|
38
39
|
CLEANUP = "cleanup",
|
|
39
|
-
SHOW_TOOLTIP = "show_tooltip"
|
|
40
|
+
SHOW_TOOLTIP = "show_tooltip",
|
|
41
|
+
TOGGLE_SCREENREADER = "toggle_screenreader"
|
|
40
42
|
}
|
|
41
43
|
/**
|
|
42
44
|
* Keyboard shortcut to hide chaff on escape.
|
|
@@ -73,7 +75,8 @@ export declare function registerRedo(): void;
|
|
|
73
75
|
*/
|
|
74
76
|
export declare function registerMovementShortcuts(): void;
|
|
75
77
|
/**
|
|
76
|
-
* Keyboard shortcut to show the context menu on ctrl/cmd+Enter
|
|
78
|
+
* Keyboard shortcut to show the context menu on ctrl/cmd+Enter, shift+F10, and
|
|
79
|
+
* the menu key.
|
|
77
80
|
*/
|
|
78
81
|
export declare function registerShowContextMenu(): void;
|
|
79
82
|
/**
|
|
@@ -89,9 +92,15 @@ export declare function registerFocusWorkspace(): void;
|
|
|
89
92
|
*/
|
|
90
93
|
export declare function registerFocusToolbox(): void;
|
|
91
94
|
/**
|
|
92
|
-
* Registers keyboard shortcut to
|
|
95
|
+
* Registers keyboard shortcut to announce information about the focused
|
|
96
|
+
* element.
|
|
93
97
|
*/
|
|
94
|
-
export declare function
|
|
98
|
+
export declare function registerReadInformation(): void;
|
|
99
|
+
/**
|
|
100
|
+
* Registers keyboard shortcut to announce an extended description of the
|
|
101
|
+
* focused element.
|
|
102
|
+
*/
|
|
103
|
+
export declare function registerReadExtendedInformation(): void;
|
|
95
104
|
/**
|
|
96
105
|
* Registers keyboard shortcut to disconnect the focused block.
|
|
97
106
|
*/
|
|
@@ -117,6 +126,11 @@ export declare function registerCleanup(): void;
|
|
|
117
126
|
* Registers keyboard shortcut to display the tooltip for the focused element.
|
|
118
127
|
*/
|
|
119
128
|
export declare function registerShowTooltip(): void;
|
|
129
|
+
/**
|
|
130
|
+
* Registers keyboard shortcut to toggle on or off various behaviors that
|
|
131
|
+
* improve the experience for individuals using screenreaders.
|
|
132
|
+
*/
|
|
133
|
+
export declare function registerToggleScreenreaderMode(): void;
|
|
120
134
|
/**
|
|
121
135
|
* Registers all default keyboard shortcut item. This should be called once per
|
|
122
136
|
* instance of KeyboardShortcutRegistry.
|
|
@@ -3,12 +3,7 @@
|
|
|
3
3
|
* Copyright 2017 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
* Object in charge of loading, storing, and playing audio for a
|
|
8
|
-
* workspace.
|
|
9
|
-
*
|
|
10
|
-
* @class
|
|
11
|
-
*/
|
|
6
|
+
import type { IFocusableNode } from './interfaces/i_focusable_node.js';
|
|
12
7
|
import type { WorkspaceSvg } from './workspace_svg.js';
|
|
13
8
|
/**
|
|
14
9
|
* Class for loading, storing, and playing audio for a workspace.
|
|
@@ -25,7 +20,7 @@ export declare class WorkspaceAudio {
|
|
|
25
20
|
private readonly context?;
|
|
26
21
|
/**
|
|
27
22
|
* @param parentWorkspace The parent of the workspace this audio object
|
|
28
|
-
* belongs to, or
|
|
23
|
+
* belongs to if it has one, or the workspace that owns this instance.
|
|
29
24
|
*/
|
|
30
25
|
constructor(parentWorkspace: WorkspaceSvg);
|
|
31
26
|
/**
|
|
@@ -61,6 +56,17 @@ export declare class WorkspaceAudio {
|
|
|
61
56
|
* Plays a standard error beep.
|
|
62
57
|
*/
|
|
63
58
|
playErrorBeep(): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* If enabled, plays a tone corresponding to the nesting level of the given
|
|
61
|
+
* node when it differs from the nesting level of the currently focused node.
|
|
62
|
+
* These tones are generally used for accessibility purposes to indicate a
|
|
63
|
+
* scope transition to users who use a screenreader. This method must be
|
|
64
|
+
* called before focus transitions to the given node.
|
|
65
|
+
*
|
|
66
|
+
* @internal
|
|
67
|
+
* @param newNode The soon-to-be-focused node.
|
|
68
|
+
*/
|
|
69
|
+
maybePlayScopeChangeAudioCue(newNode: IFocusableNode): void;
|
|
64
70
|
/**
|
|
65
71
|
* Returns whether or not playing sounds is currently allowed.
|
|
66
72
|
*
|
package/core/workspace_svg.d.ts
CHANGED
|
@@ -242,6 +242,14 @@ export declare class WorkspaceSvg extends Workspace implements IContextMenu, IFo
|
|
|
242
242
|
svgBlockCanvas_: SVGElement;
|
|
243
243
|
svgBubbleCanvas_: SVGElement;
|
|
244
244
|
zoomControls_: ZoomControls | null;
|
|
245
|
+
/**
|
|
246
|
+
* Focus ring in the workspace.
|
|
247
|
+
*/
|
|
248
|
+
private workspaceFocusRing;
|
|
249
|
+
/**
|
|
250
|
+
* Selection ring inside the workspace.
|
|
251
|
+
*/
|
|
252
|
+
private workspaceSelectionRing;
|
|
245
253
|
/**
|
|
246
254
|
* Navigator that handles moving focus between items in this workspace in
|
|
247
255
|
* response to keyboard navigation commands.
|
|
@@ -466,6 +474,14 @@ export declare class WorkspaceSvg extends Workspace implements IContextMenu, IFo
|
|
|
466
474
|
* trash, zoom, toolbox, etc. (e.g. window resize).
|
|
467
475
|
*/
|
|
468
476
|
resize(): void;
|
|
477
|
+
/**
|
|
478
|
+
* Sizes the given focus/selection ring inside the bounds of the workspace.
|
|
479
|
+
*
|
|
480
|
+
* @param ring The interior workspace ring indicator to resize.
|
|
481
|
+
* @param inset How many pixels in from the bounds of the workspace the ring
|
|
482
|
+
* should be positioned.
|
|
483
|
+
*/
|
|
484
|
+
private resizeWorkspaceRing;
|
|
469
485
|
/**
|
|
470
486
|
* Resizes and repositions workspace chrome if the page has a new
|
|
471
487
|
* scroll position.
|
package/msg/ab.js
CHANGED
|
@@ -19,14 +19,18 @@ var Blockly = Blockly || { Msg: Object.create(null) };
|
|
|
19
19
|
|
|
20
20
|
Blockly.Msg["ADD_COMMENT"] = "Иацҵатәуп ахцәажәара";
|
|
21
21
|
Blockly.Msg["ALT_KEY"] = "Alt"; // untranslated
|
|
22
|
-
Blockly.Msg["ANNOUNCE_MOVE_AFTER"] = "
|
|
23
|
-
Blockly.Msg["ANNOUNCE_MOVE_AROUND"] = "
|
|
24
|
-
Blockly.Msg["ANNOUNCE_MOVE_BEFORE"] = "
|
|
25
|
-
Blockly.Msg["ANNOUNCE_MOVE_CANCELED"] = "Canceled movement"; // untranslated
|
|
26
|
-
Blockly.Msg["ANNOUNCE_MOVE_INSIDE"] = "
|
|
27
|
-
Blockly.Msg["
|
|
28
|
-
Blockly.Msg["
|
|
22
|
+
Blockly.Msg["ANNOUNCE_MOVE_AFTER"] = "Moving %1 after %2."; // untranslated
|
|
23
|
+
Blockly.Msg["ANNOUNCE_MOVE_AROUND"] = "Moving %1 around %2."; // untranslated
|
|
24
|
+
Blockly.Msg["ANNOUNCE_MOVE_BEFORE"] = "Moving %1 before %2."; // untranslated
|
|
25
|
+
Blockly.Msg["ANNOUNCE_MOVE_CANCELED"] = "Canceled movement."; // untranslated
|
|
26
|
+
Blockly.Msg["ANNOUNCE_MOVE_INSIDE"] = "Moving %1 inside %2."; // untranslated
|
|
27
|
+
Blockly.Msg["ANNOUNCE_MOVE_OF"] = "%1 of %2"; // untranslated
|
|
28
|
+
Blockly.Msg["ANNOUNCE_MOVE_TO"] = "Moving %1 to %2."; // untranslated
|
|
29
|
+
Blockly.Msg["ANNOUNCE_MOVE_WORKSPACE"] = "Moving %1 on workspace."; // untranslated
|
|
29
30
|
Blockly.Msg["ARIA_LABEL_BUTTON"] = "button"; // untranslated
|
|
31
|
+
Blockly.Msg["ARIA_LABEL_COMMENT"] = "Comment"; // untranslated
|
|
32
|
+
Blockly.Msg["ARIA_LABEL_COMMENT_COLLAPSE"] = "Collapse Comment"; // untranslated
|
|
33
|
+
Blockly.Msg["ARIA_LABEL_COMMENT_EXPAND"] = "Expand Comment"; // untranslated
|
|
30
34
|
Blockly.Msg["ARIA_LABEL_HEADING"] = "heading"; // untranslated
|
|
31
35
|
Blockly.Msg["ARIA_TYPE_FIELD_CHECKBOX"] = "checkbox"; // untranslated
|
|
32
36
|
Blockly.Msg["ARIA_TYPE_FIELD_DROPDOWN"] = "dropdown"; // untranslated
|
|
@@ -40,6 +44,7 @@ Blockly.Msg["BLOCK_LABEL_BEGIN_STACK"] = "Begin stack"; // untranslated
|
|
|
40
44
|
Blockly.Msg["BLOCK_LABEL_COLLAPSED"] = "collapsed"; // untranslated
|
|
41
45
|
Blockly.Msg["BLOCK_LABEL_CONTAINER"] = "container"; // untranslated
|
|
42
46
|
Blockly.Msg["BLOCK_LABEL_DISABLED"] = "disabled"; // untranslated
|
|
47
|
+
Blockly.Msg["BLOCK_LABEL_HAS_BRANCHES"] = "has %1 branches"; // untranslated
|
|
43
48
|
Blockly.Msg["BLOCK_LABEL_HAS_INPUT"] = "has input"; // untranslated
|
|
44
49
|
Blockly.Msg["BLOCK_LABEL_HAS_INPUTS"] = "has inputs"; // untranslated
|
|
45
50
|
Blockly.Msg["BLOCK_LABEL_REPLACEABLE"] = "replaceable"; // untranslated
|
|
@@ -47,7 +52,9 @@ Blockly.Msg["BLOCK_LABEL_STACK_BLOCKS"] = "%1 stack blocks"; // untranslated
|
|
|
47
52
|
Blockly.Msg["BLOCK_LABEL_STATEMENT"] = "command"; // untranslated
|
|
48
53
|
Blockly.Msg["BLOCK_LABEL_TOOLBOX_CATEGORY"] = "%1 category"; // untranslated
|
|
49
54
|
Blockly.Msg["BLOCK_LABEL_VALUE"] = "value"; // untranslated
|
|
55
|
+
Blockly.Msg["BUBBLE_LABEL_COMMENT"] = "Comment: %1"; // untranslated
|
|
50
56
|
Blockly.Msg["BUBBLE_LABEL_DEFAULT"] = "Bubble"; // untranslated
|
|
57
|
+
Blockly.Msg["BUBBLE_LABEL_WARNING"] = "Warning: %1"; // untranslated
|
|
51
58
|
Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated
|
|
52
59
|
Blockly.Msg["CAPS_LOCK_KEY"] = "Caps Lock"; // untranslated
|
|
53
60
|
Blockly.Msg["CHANGE_VALUE_TITLE"] = "Ишәыԥсах аҵакы";
|
|
@@ -110,6 +117,7 @@ Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Аҭагылазаашьа
|
|
|
110
117
|
Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Аҭагылазаашьа иашанаҵ, инанагӡалоит акомандақәа.";
|
|
111
118
|
Blockly.Msg["CONTROL_KEY"] = "Ctrl"; // untranslated
|
|
112
119
|
Blockly.Msg["COPY_SHORTCUT"] = "Copy"; // untranslated
|
|
120
|
+
Blockly.Msg["CURRENT_BLOCK_ANNOUNCEMENT"] = "Current block: %1"; // untranslated
|
|
113
121
|
Blockly.Msg["CUT_SHORTCUT"] = "Cut"; // untranslated
|
|
114
122
|
Blockly.Msg["DELETE_ALL_BLOCKS"] = "Ианыхтәуп аблокқәа (%1) зегьы?";
|
|
115
123
|
Blockly.Msg["DELETE_BLOCK"] = "Ианыхтәуп аблок";
|
|
@@ -137,17 +145,28 @@ Blockly.Msg["FIELD_LABEL_EMPTY"] = "empty"; // untranslated
|
|
|
137
145
|
Blockly.Msg["FIELD_LABEL_OPTION_INDEX"] = "Option %1"; // untranslated
|
|
138
146
|
Blockly.Msg["FIELD_LABEL_VARIABLE"] = "Variable '%1'"; // untranslated
|
|
139
147
|
Blockly.Msg["HELP"] = "Ацхыраара";
|
|
140
|
-
Blockly.Msg["HELP_PROMPT"] = "Press %1 for help on keyboard controls"; // untranslated
|
|
148
|
+
Blockly.Msg["HELP_PROMPT"] = "Press %1 for help on keyboard controls."; // untranslated
|
|
141
149
|
Blockly.Msg["HOME_KEY"] = "Home"; // untranslated
|
|
150
|
+
Blockly.Msg["ICON_LABEL_COMMENT_CLOSED"] = "Open Comment"; // untranslated
|
|
151
|
+
Blockly.Msg["ICON_LABEL_COMMENT_OPEN"] = "Close Comment"; // untranslated
|
|
152
|
+
Blockly.Msg["ICON_LABEL_DEFAULT"] = "Icon"; // untranslated
|
|
153
|
+
Blockly.Msg["ICON_LABEL_MUTATOR_CLOSED"] = "Edit this block"; // untranslated
|
|
154
|
+
Blockly.Msg["ICON_LABEL_MUTATOR_OPEN"] = "Close block editor"; // untranslated
|
|
155
|
+
Blockly.Msg["ICON_LABEL_WARNING_CLOSED"] = "Open Warning"; // untranslated
|
|
156
|
+
Blockly.Msg["ICON_LABEL_WARNING_OPEN"] = "Close Warning"; // untranslated
|
|
142
157
|
Blockly.Msg["INLINE_INPUTS"] = "Inline Inputs"; // untranslated
|
|
158
|
+
Blockly.Msg["INPUT_LABEL_EMPTY"] = "Empty"; // untranslated
|
|
159
|
+
Blockly.Msg["INPUT_LABEL_END_STATEMENT"] = "End %1"; // untranslated
|
|
143
160
|
Blockly.Msg["INPUT_LABEL_INDEX"] = "input %1"; // untranslated
|
|
161
|
+
Blockly.Msg["INPUT_LABEL_STATEMENT"] = "command position"; // untranslated
|
|
162
|
+
Blockly.Msg["INPUT_LABEL_VALUE"] = "value position"; // untranslated
|
|
144
163
|
Blockly.Msg["INSERT_KEY"] = "Insert"; // untranslated
|
|
145
|
-
Blockly.Msg["KEYBOARD_NAV_BLOCK_NAVIGATION_HINT"] = "Use
|
|
146
|
-
Blockly.Msg["KEYBOARD_NAV_CONSTRAINED_MOVE_HINT"] = "Use the arrow keys to move, then %1 to accept the position"; // untranslated
|
|
164
|
+
Blockly.Msg["KEYBOARD_NAV_BLOCK_NAVIGATION_HINT"] = "Use %1 to navigate inside of blocks."; // untranslated
|
|
165
|
+
Blockly.Msg["KEYBOARD_NAV_CONSTRAINED_MOVE_HINT"] = "Use the arrow keys to move, then %1 to accept the position."; // untranslated
|
|
147
166
|
Blockly.Msg["KEYBOARD_NAV_COPIED_HINT"] = "Copied. Press %1 to paste."; // untranslated
|
|
148
167
|
Blockly.Msg["KEYBOARD_NAV_CUT_HINT"] = "Cut. Press %1 to paste."; // untranslated
|
|
149
|
-
Blockly.Msg["KEYBOARD_NAV_UNCONSTRAINED_MOVE_HINT"] = "Hold %1 and use arrow keys to move freely, then %2 to accept the position"; // untranslated
|
|
150
|
-
Blockly.Msg["KEYBOARD_NAV_WORKSPACE_NAVIGATION_HINT"] = "Use the arrow keys to navigate"; // untranslated
|
|
168
|
+
Blockly.Msg["KEYBOARD_NAV_UNCONSTRAINED_MOVE_HINT"] = "Hold %1 and use arrow keys to move freely, then %2 to accept the position."; // untranslated
|
|
169
|
+
Blockly.Msg["KEYBOARD_NAV_WORKSPACE_NAVIGATION_HINT"] = "Use the arrow keys to navigate."; // untranslated
|
|
151
170
|
Blockly.Msg["LINUX"] = "Linux"; // untranslated
|
|
152
171
|
Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/RaspberryPiFoundation/blockly/wiki/Lists#create-empty-list"; // untranslated
|
|
153
172
|
Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "иаԥцатәуп иҭацәу ахьӡынҵа";
|
|
@@ -355,11 +374,13 @@ Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslat
|
|
|
355
374
|
Blockly.Msg["NEW_VARIABLE"] = "Иаԥҵатәуп аҽеиҭак";
|
|
356
375
|
Blockly.Msg["NEW_VARIABLE_TITLE"] = "Аҽеиҭак ахьӡ ҿыц:";
|
|
357
376
|
Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated
|
|
377
|
+
Blockly.Msg["NO_PARENT_ANNOUNCEMENT"] = "Current block has no parent"; // untranslated
|
|
358
378
|
Blockly.Msg["OPEN_TRASH"] = "Open trash"; // untranslated
|
|
359
379
|
Blockly.Msg["OPTION_KEY"] = "⌥ Option"; // untranslated
|
|
360
380
|
Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated
|
|
361
381
|
Blockly.Msg["PAGE_DOWN_KEY"] = "Page Down"; // untranslated
|
|
362
382
|
Blockly.Msg["PAGE_UP_KEY"] = "Page Up"; // untranslated
|
|
383
|
+
Blockly.Msg["PARENT_BLOCKS_ANNOUNCEMENT"] = "Parent blocks: %1"; // untranslated
|
|
363
384
|
Blockly.Msg["PASTE_SHORTCUT"] = "Paste"; // untranslated
|
|
364
385
|
Blockly.Msg["PAUSE_KEY"] = "Pause"; // untranslated
|
|
365
386
|
Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "аоператорқәа азин рыҭара";
|
|
@@ -394,6 +415,8 @@ Blockly.Msg["REMOVE_COMMENT"] = "Ианыхтәуп ахцәажәара";
|
|
|
394
415
|
Blockly.Msg["RENAME_VARIABLE"] = "Аҽеиҭак ахьӡ ԥсахтәуп";
|
|
395
416
|
Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Аҽеиҭакқәа'%1' зегь рыхьӡ ԥсахтәуп аҟны:";
|
|
396
417
|
Blockly.Msg["RESET_ZOOM"] = "Reset zoom"; // untranslated
|
|
418
|
+
Blockly.Msg["SCREENREADER_MODE_DISABLED"] = "Screenreader mode is off, press %1 to turn it on"; // untranslated
|
|
419
|
+
Blockly.Msg["SCREENREADER_MODE_ENABLED"] = "Screenreader mode is on, press %1 to turn it off"; // untranslated
|
|
397
420
|
Blockly.Msg["SHIFT_KEY"] = "Shift"; // untranslated
|
|
398
421
|
Blockly.Msg["SHORTCUTS_ABORT_MOVE"] = "Abort move"; // untranslated
|
|
399
422
|
Blockly.Msg["SHORTCUTS_CLEANUP"] = "Clean up workspace"; // untranslated
|
|
@@ -403,6 +426,7 @@ Blockly.Msg["SHORTCUTS_DISCONNECT"] = "Disconnect block"; // untranslated
|
|
|
403
426
|
Blockly.Msg["SHORTCUTS_DUPLICATE"] = "Duplicate"; // untranslated
|
|
404
427
|
Blockly.Msg["SHORTCUTS_EDITING"] = "Editing"; // untranslated
|
|
405
428
|
Blockly.Msg["SHORTCUTS_ESCAPE"] = "Exit"; // untranslated
|
|
429
|
+
Blockly.Msg["SHORTCUTS_EXTENDED_INFORMATION"] = "Announce detailed information"; // untranslated
|
|
406
430
|
Blockly.Msg["SHORTCUTS_FINISH_MOVE"] = "Finish move"; // untranslated
|
|
407
431
|
Blockly.Msg["SHORTCUTS_FOCUS_TOOLBOX"] = "Focus toolbox"; // untranslated
|
|
408
432
|
Blockly.Msg["SHORTCUTS_FOCUS_WORKSPACE"] = "Focus workspace"; // untranslated
|
|
@@ -419,6 +443,7 @@ Blockly.Msg["SHORTCUTS_SHOW_CONTEXT_MENU"] = "Show menu"; // untranslated
|
|
|
419
443
|
Blockly.Msg["SHORTCUTS_SHOW_TOOLTIP"] = "Show tooltip"; // untranslated
|
|
420
444
|
Blockly.Msg["SHORTCUTS_START_MOVE"] = "Start move"; // untranslated
|
|
421
445
|
Blockly.Msg["SHORTCUTS_START_MOVE_STACK"] = "Start move stack"; // untranslated
|
|
446
|
+
Blockly.Msg["SHORTCUTS_TOGGLE_SCREENREADER_MODE"] = "Toggle screenreader mode"; // untranslated
|
|
422
447
|
Blockly.Msg["SPACE_KEY"] = "Space"; // untranslated
|
|
423
448
|
Blockly.Msg["TAB_KEY"] = "Tab"; // untranslated
|
|
424
449
|
Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/RaspberryPiFoundation/blockly/wiki/Text#text-modification"; // untranslated
|
package/msg/ab.mjs
CHANGED
|
@@ -467,6 +467,7 @@ export const {
|
|
|
467
467
|
SHORTCUTS_FOCUS_WORKSPACE,
|
|
468
468
|
SHORTCUTS_FOCUS_TOOLBOX,
|
|
469
469
|
SHORTCUTS_INFORMATION,
|
|
470
|
+
SHORTCUTS_EXTENDED_INFORMATION,
|
|
470
471
|
SHORTCUTS_DISCONNECT,
|
|
471
472
|
SHORTCUTS_NEXT_STACK,
|
|
472
473
|
SHORTCUTS_PREVIOUS_STACK,
|
|
@@ -474,6 +475,7 @@ export const {
|
|
|
474
475
|
SHORTCUTS_DUPLICATE,
|
|
475
476
|
SHORTCUTS_CLEANUP,
|
|
476
477
|
SHORTCUTS_SHOW_TOOLTIP,
|
|
478
|
+
SHORTCUTS_TOGGLE_SCREENREADER_MODE,
|
|
477
479
|
KEYBOARD_NAV_UNCONSTRAINED_MOVE_HINT,
|
|
478
480
|
KEYBOARD_NAV_CONSTRAINED_MOVE_HINT,
|
|
479
481
|
KEYBOARD_NAV_COPIED_HINT,
|
|
@@ -497,17 +499,23 @@ export const {
|
|
|
497
499
|
BLOCK_LABEL_REPLACEABLE,
|
|
498
500
|
BLOCK_LABEL_HAS_INPUT,
|
|
499
501
|
BLOCK_LABEL_HAS_INPUTS,
|
|
502
|
+
BLOCK_LABEL_HAS_BRANCHES,
|
|
500
503
|
BLOCK_LABEL_STATEMENT,
|
|
501
504
|
BLOCK_LABEL_CONTAINER,
|
|
502
505
|
BLOCK_LABEL_VALUE,
|
|
503
506
|
BLOCK_LABEL_STACK_BLOCKS,
|
|
504
507
|
INPUT_LABEL_INDEX,
|
|
508
|
+
INPUT_LABEL_VALUE,
|
|
509
|
+
INPUT_LABEL_STATEMENT,
|
|
510
|
+
INPUT_LABEL_END_STATEMENT,
|
|
511
|
+
INPUT_LABEL_EMPTY,
|
|
505
512
|
ANNOUNCE_MOVE_WORKSPACE,
|
|
506
513
|
ANNOUNCE_MOVE_BEFORE,
|
|
507
514
|
ANNOUNCE_MOVE_AFTER,
|
|
508
515
|
ANNOUNCE_MOVE_INSIDE,
|
|
509
516
|
ANNOUNCE_MOVE_AROUND,
|
|
510
517
|
ANNOUNCE_MOVE_TO,
|
|
518
|
+
ANNOUNCE_MOVE_OF,
|
|
511
519
|
ANNOUNCE_MOVE_CANCELED,
|
|
512
520
|
FIELD_LABEL_EMPTY,
|
|
513
521
|
ARIA_TYPE_FIELD_INPUT,
|
|
@@ -528,4 +536,21 @@ export const {
|
|
|
528
536
|
ARIA_LABEL_BUTTON,
|
|
529
537
|
ARIA_LABEL_HEADING,
|
|
530
538
|
BUBBLE_LABEL_DEFAULT,
|
|
539
|
+
BUBBLE_LABEL_COMMENT,
|
|
540
|
+
BUBBLE_LABEL_WARNING,
|
|
541
|
+
ICON_LABEL_DEFAULT,
|
|
542
|
+
ICON_LABEL_COMMENT_CLOSED,
|
|
543
|
+
ICON_LABEL_COMMENT_OPEN,
|
|
544
|
+
ICON_LABEL_MUTATOR_CLOSED,
|
|
545
|
+
ICON_LABEL_MUTATOR_OPEN,
|
|
546
|
+
ICON_LABEL_WARNING_CLOSED,
|
|
547
|
+
ICON_LABEL_WARNING_OPEN,
|
|
548
|
+
ARIA_LABEL_COMMENT,
|
|
549
|
+
ARIA_LABEL_COMMENT_COLLAPSE,
|
|
550
|
+
ARIA_LABEL_COMMENT_EXPAND,
|
|
551
|
+
SCREENREADER_MODE_ENABLED,
|
|
552
|
+
SCREENREADER_MODE_DISABLED,
|
|
553
|
+
CURRENT_BLOCK_ANNOUNCEMENT,
|
|
554
|
+
PARENT_BLOCKS_ANNOUNCEMENT,
|
|
555
|
+
NO_PARENT_ANNOUNCEMENT,
|
|
531
556
|
} = ab;
|
package/msg/ace.js
CHANGED
|
@@ -19,14 +19,18 @@ var Blockly = Blockly || { Msg: Object.create(null) };
|
|
|
19
19
|
|
|
20
20
|
Blockly.Msg["ADD_COMMENT"] = "Add Comment"; // untranslated
|
|
21
21
|
Blockly.Msg["ALT_KEY"] = "Alt"; // untranslated
|
|
22
|
-
Blockly.Msg["ANNOUNCE_MOVE_AFTER"] = "
|
|
23
|
-
Blockly.Msg["ANNOUNCE_MOVE_AROUND"] = "
|
|
24
|
-
Blockly.Msg["ANNOUNCE_MOVE_BEFORE"] = "
|
|
25
|
-
Blockly.Msg["ANNOUNCE_MOVE_CANCELED"] = "Canceled movement"; // untranslated
|
|
26
|
-
Blockly.Msg["ANNOUNCE_MOVE_INSIDE"] = "
|
|
27
|
-
Blockly.Msg["
|
|
28
|
-
Blockly.Msg["
|
|
22
|
+
Blockly.Msg["ANNOUNCE_MOVE_AFTER"] = "Moving %1 after %2."; // untranslated
|
|
23
|
+
Blockly.Msg["ANNOUNCE_MOVE_AROUND"] = "Moving %1 around %2."; // untranslated
|
|
24
|
+
Blockly.Msg["ANNOUNCE_MOVE_BEFORE"] = "Moving %1 before %2."; // untranslated
|
|
25
|
+
Blockly.Msg["ANNOUNCE_MOVE_CANCELED"] = "Canceled movement."; // untranslated
|
|
26
|
+
Blockly.Msg["ANNOUNCE_MOVE_INSIDE"] = "Moving %1 inside %2."; // untranslated
|
|
27
|
+
Blockly.Msg["ANNOUNCE_MOVE_OF"] = "%1 of %2"; // untranslated
|
|
28
|
+
Blockly.Msg["ANNOUNCE_MOVE_TO"] = "Moving %1 to %2."; // untranslated
|
|
29
|
+
Blockly.Msg["ANNOUNCE_MOVE_WORKSPACE"] = "Moving %1 on workspace."; // untranslated
|
|
29
30
|
Blockly.Msg["ARIA_LABEL_BUTTON"] = "button"; // untranslated
|
|
31
|
+
Blockly.Msg["ARIA_LABEL_COMMENT"] = "Comment"; // untranslated
|
|
32
|
+
Blockly.Msg["ARIA_LABEL_COMMENT_COLLAPSE"] = "Collapse Comment"; // untranslated
|
|
33
|
+
Blockly.Msg["ARIA_LABEL_COMMENT_EXPAND"] = "Expand Comment"; // untranslated
|
|
30
34
|
Blockly.Msg["ARIA_LABEL_HEADING"] = "heading"; // untranslated
|
|
31
35
|
Blockly.Msg["ARIA_TYPE_FIELD_CHECKBOX"] = "checkbox"; // untranslated
|
|
32
36
|
Blockly.Msg["ARIA_TYPE_FIELD_DROPDOWN"] = "dropdown"; // untranslated
|
|
@@ -40,6 +44,7 @@ Blockly.Msg["BLOCK_LABEL_BEGIN_STACK"] = "Begin stack"; // untranslated
|
|
|
40
44
|
Blockly.Msg["BLOCK_LABEL_COLLAPSED"] = "collapsed"; // untranslated
|
|
41
45
|
Blockly.Msg["BLOCK_LABEL_CONTAINER"] = "container"; // untranslated
|
|
42
46
|
Blockly.Msg["BLOCK_LABEL_DISABLED"] = "disabled"; // untranslated
|
|
47
|
+
Blockly.Msg["BLOCK_LABEL_HAS_BRANCHES"] = "has %1 branches"; // untranslated
|
|
43
48
|
Blockly.Msg["BLOCK_LABEL_HAS_INPUT"] = "has input"; // untranslated
|
|
44
49
|
Blockly.Msg["BLOCK_LABEL_HAS_INPUTS"] = "has inputs"; // untranslated
|
|
45
50
|
Blockly.Msg["BLOCK_LABEL_REPLACEABLE"] = "replaceable"; // untranslated
|
|
@@ -47,7 +52,9 @@ Blockly.Msg["BLOCK_LABEL_STACK_BLOCKS"] = "%1 stack blocks"; // untranslated
|
|
|
47
52
|
Blockly.Msg["BLOCK_LABEL_STATEMENT"] = "command"; // untranslated
|
|
48
53
|
Blockly.Msg["BLOCK_LABEL_TOOLBOX_CATEGORY"] = "%1 category"; // untranslated
|
|
49
54
|
Blockly.Msg["BLOCK_LABEL_VALUE"] = "value"; // untranslated
|
|
55
|
+
Blockly.Msg["BUBBLE_LABEL_COMMENT"] = "Comment: %1"; // untranslated
|
|
50
56
|
Blockly.Msg["BUBBLE_LABEL_DEFAULT"] = "Bubble"; // untranslated
|
|
57
|
+
Blockly.Msg["BUBBLE_LABEL_WARNING"] = "Warning: %1"; // untranslated
|
|
51
58
|
Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated
|
|
52
59
|
Blockly.Msg["CAPS_LOCK_KEY"] = "Caps Lock"; // untranslated
|
|
53
60
|
Blockly.Msg["CHANGE_VALUE_TITLE"] = "Change value:"; // untranslated
|
|
@@ -110,6 +117,7 @@ Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "While a value is false, then
|
|
|
110
117
|
Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "While a value is true, then do some statements."; // untranslated
|
|
111
118
|
Blockly.Msg["CONTROL_KEY"] = "Ctrl"; // untranslated
|
|
112
119
|
Blockly.Msg["COPY_SHORTCUT"] = "Copy"; // untranslated
|
|
120
|
+
Blockly.Msg["CURRENT_BLOCK_ANNOUNCEMENT"] = "Current block: %1"; // untranslated
|
|
113
121
|
Blockly.Msg["CUT_SHORTCUT"] = "Cut"; // untranslated
|
|
114
122
|
Blockly.Msg["DELETE_ALL_BLOCKS"] = "Delete all %1 blocks?"; // untranslated
|
|
115
123
|
Blockly.Msg["DELETE_BLOCK"] = "Delete Block"; // untranslated
|
|
@@ -137,17 +145,28 @@ Blockly.Msg["FIELD_LABEL_EMPTY"] = "empty"; // untranslated
|
|
|
137
145
|
Blockly.Msg["FIELD_LABEL_OPTION_INDEX"] = "Option %1"; // untranslated
|
|
138
146
|
Blockly.Msg["FIELD_LABEL_VARIABLE"] = "Variable '%1'"; // untranslated
|
|
139
147
|
Blockly.Msg["HELP"] = "Help"; // untranslated
|
|
140
|
-
Blockly.Msg["HELP_PROMPT"] = "Press %1 for help on keyboard controls"; // untranslated
|
|
148
|
+
Blockly.Msg["HELP_PROMPT"] = "Press %1 for help on keyboard controls."; // untranslated
|
|
141
149
|
Blockly.Msg["HOME_KEY"] = "Home"; // untranslated
|
|
150
|
+
Blockly.Msg["ICON_LABEL_COMMENT_CLOSED"] = "Open Comment"; // untranslated
|
|
151
|
+
Blockly.Msg["ICON_LABEL_COMMENT_OPEN"] = "Close Comment"; // untranslated
|
|
152
|
+
Blockly.Msg["ICON_LABEL_DEFAULT"] = "Icon"; // untranslated
|
|
153
|
+
Blockly.Msg["ICON_LABEL_MUTATOR_CLOSED"] = "Edit this block"; // untranslated
|
|
154
|
+
Blockly.Msg["ICON_LABEL_MUTATOR_OPEN"] = "Close block editor"; // untranslated
|
|
155
|
+
Blockly.Msg["ICON_LABEL_WARNING_CLOSED"] = "Open Warning"; // untranslated
|
|
156
|
+
Blockly.Msg["ICON_LABEL_WARNING_OPEN"] = "Close Warning"; // untranslated
|
|
142
157
|
Blockly.Msg["INLINE_INPUTS"] = "Inline Inputs"; // untranslated
|
|
158
|
+
Blockly.Msg["INPUT_LABEL_EMPTY"] = "Empty"; // untranslated
|
|
159
|
+
Blockly.Msg["INPUT_LABEL_END_STATEMENT"] = "End %1"; // untranslated
|
|
143
160
|
Blockly.Msg["INPUT_LABEL_INDEX"] = "input %1"; // untranslated
|
|
161
|
+
Blockly.Msg["INPUT_LABEL_STATEMENT"] = "command position"; // untranslated
|
|
162
|
+
Blockly.Msg["INPUT_LABEL_VALUE"] = "value position"; // untranslated
|
|
144
163
|
Blockly.Msg["INSERT_KEY"] = "Insert"; // untranslated
|
|
145
|
-
Blockly.Msg["KEYBOARD_NAV_BLOCK_NAVIGATION_HINT"] = "Use
|
|
146
|
-
Blockly.Msg["KEYBOARD_NAV_CONSTRAINED_MOVE_HINT"] = "Use the arrow keys to move, then %1 to accept the position"; // untranslated
|
|
164
|
+
Blockly.Msg["KEYBOARD_NAV_BLOCK_NAVIGATION_HINT"] = "Use %1 to navigate inside of blocks."; // untranslated
|
|
165
|
+
Blockly.Msg["KEYBOARD_NAV_CONSTRAINED_MOVE_HINT"] = "Use the arrow keys to move, then %1 to accept the position."; // untranslated
|
|
147
166
|
Blockly.Msg["KEYBOARD_NAV_COPIED_HINT"] = "Copied. Press %1 to paste."; // untranslated
|
|
148
167
|
Blockly.Msg["KEYBOARD_NAV_CUT_HINT"] = "Cut. Press %1 to paste."; // untranslated
|
|
149
|
-
Blockly.Msg["KEYBOARD_NAV_UNCONSTRAINED_MOVE_HINT"] = "Hold %1 and use arrow keys to move freely, then %2 to accept the position"; // untranslated
|
|
150
|
-
Blockly.Msg["KEYBOARD_NAV_WORKSPACE_NAVIGATION_HINT"] = "Use the arrow keys to navigate"; // untranslated
|
|
168
|
+
Blockly.Msg["KEYBOARD_NAV_UNCONSTRAINED_MOVE_HINT"] = "Hold %1 and use arrow keys to move freely, then %2 to accept the position."; // untranslated
|
|
169
|
+
Blockly.Msg["KEYBOARD_NAV_WORKSPACE_NAVIGATION_HINT"] = "Use the arrow keys to navigate."; // untranslated
|
|
151
170
|
Blockly.Msg["LINUX"] = "Linux"; // untranslated
|
|
152
171
|
Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/RaspberryPiFoundation/blockly/wiki/Lists#create-empty-list"; // untranslated
|
|
153
172
|
Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "create empty list"; // untranslated
|
|
@@ -355,11 +374,13 @@ Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslat
|
|
|
355
374
|
Blockly.Msg["NEW_VARIABLE"] = "Create variable..."; // untranslated
|
|
356
375
|
Blockly.Msg["NEW_VARIABLE_TITLE"] = "New variable name:"; // untranslated
|
|
357
376
|
Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated
|
|
377
|
+
Blockly.Msg["NO_PARENT_ANNOUNCEMENT"] = "Current block has no parent"; // untranslated
|
|
358
378
|
Blockly.Msg["OPEN_TRASH"] = "Open trash"; // untranslated
|
|
359
379
|
Blockly.Msg["OPTION_KEY"] = "⌥ Option"; // untranslated
|
|
360
380
|
Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated
|
|
361
381
|
Blockly.Msg["PAGE_DOWN_KEY"] = "Page Down"; // untranslated
|
|
362
382
|
Blockly.Msg["PAGE_UP_KEY"] = "Page Up"; // untranslated
|
|
383
|
+
Blockly.Msg["PARENT_BLOCKS_ANNOUNCEMENT"] = "Parent blocks: %1"; // untranslated
|
|
363
384
|
Blockly.Msg["PASTE_SHORTCUT"] = "Paste"; // untranslated
|
|
364
385
|
Blockly.Msg["PAUSE_KEY"] = "Pause"; // untranslated
|
|
365
386
|
Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "allow statements"; // untranslated
|
|
@@ -394,6 +415,8 @@ Blockly.Msg["REMOVE_COMMENT"] = "Remove Comment"; // untranslated
|
|
|
394
415
|
Blockly.Msg["RENAME_VARIABLE"] = "Rename the '%1' variable"; // untranslated
|
|
395
416
|
Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Rename all '%1' variables to:"; // untranslated
|
|
396
417
|
Blockly.Msg["RESET_ZOOM"] = "Reset zoom"; // untranslated
|
|
418
|
+
Blockly.Msg["SCREENREADER_MODE_DISABLED"] = "Screenreader mode is off, press %1 to turn it on"; // untranslated
|
|
419
|
+
Blockly.Msg["SCREENREADER_MODE_ENABLED"] = "Screenreader mode is on, press %1 to turn it off"; // untranslated
|
|
397
420
|
Blockly.Msg["SHIFT_KEY"] = "Shift"; // untranslated
|
|
398
421
|
Blockly.Msg["SHORTCUTS_ABORT_MOVE"] = "Abort move"; // untranslated
|
|
399
422
|
Blockly.Msg["SHORTCUTS_CLEANUP"] = "Clean up workspace"; // untranslated
|
|
@@ -403,6 +426,7 @@ Blockly.Msg["SHORTCUTS_DISCONNECT"] = "Disconnect block"; // untranslated
|
|
|
403
426
|
Blockly.Msg["SHORTCUTS_DUPLICATE"] = "Duplicate"; // untranslated
|
|
404
427
|
Blockly.Msg["SHORTCUTS_EDITING"] = "Editing"; // untranslated
|
|
405
428
|
Blockly.Msg["SHORTCUTS_ESCAPE"] = "Exit"; // untranslated
|
|
429
|
+
Blockly.Msg["SHORTCUTS_EXTENDED_INFORMATION"] = "Announce detailed information"; // untranslated
|
|
406
430
|
Blockly.Msg["SHORTCUTS_FINISH_MOVE"] = "Finish move"; // untranslated
|
|
407
431
|
Blockly.Msg["SHORTCUTS_FOCUS_TOOLBOX"] = "Focus toolbox"; // untranslated
|
|
408
432
|
Blockly.Msg["SHORTCUTS_FOCUS_WORKSPACE"] = "Focus workspace"; // untranslated
|
|
@@ -419,6 +443,7 @@ Blockly.Msg["SHORTCUTS_SHOW_CONTEXT_MENU"] = "Show menu"; // untranslated
|
|
|
419
443
|
Blockly.Msg["SHORTCUTS_SHOW_TOOLTIP"] = "Show tooltip"; // untranslated
|
|
420
444
|
Blockly.Msg["SHORTCUTS_START_MOVE"] = "Start move"; // untranslated
|
|
421
445
|
Blockly.Msg["SHORTCUTS_START_MOVE_STACK"] = "Start move stack"; // untranslated
|
|
446
|
+
Blockly.Msg["SHORTCUTS_TOGGLE_SCREENREADER_MODE"] = "Toggle screenreader mode"; // untranslated
|
|
422
447
|
Blockly.Msg["SPACE_KEY"] = "Space"; // untranslated
|
|
423
448
|
Blockly.Msg["TAB_KEY"] = "Tab"; // untranslated
|
|
424
449
|
Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/RaspberryPiFoundation/blockly/wiki/Text#text-modification"; // untranslated
|
package/msg/ace.mjs
CHANGED
|
@@ -467,6 +467,7 @@ export const {
|
|
|
467
467
|
SHORTCUTS_FOCUS_WORKSPACE,
|
|
468
468
|
SHORTCUTS_FOCUS_TOOLBOX,
|
|
469
469
|
SHORTCUTS_INFORMATION,
|
|
470
|
+
SHORTCUTS_EXTENDED_INFORMATION,
|
|
470
471
|
SHORTCUTS_DISCONNECT,
|
|
471
472
|
SHORTCUTS_NEXT_STACK,
|
|
472
473
|
SHORTCUTS_PREVIOUS_STACK,
|
|
@@ -474,6 +475,7 @@ export const {
|
|
|
474
475
|
SHORTCUTS_DUPLICATE,
|
|
475
476
|
SHORTCUTS_CLEANUP,
|
|
476
477
|
SHORTCUTS_SHOW_TOOLTIP,
|
|
478
|
+
SHORTCUTS_TOGGLE_SCREENREADER_MODE,
|
|
477
479
|
KEYBOARD_NAV_UNCONSTRAINED_MOVE_HINT,
|
|
478
480
|
KEYBOARD_NAV_CONSTRAINED_MOVE_HINT,
|
|
479
481
|
KEYBOARD_NAV_COPIED_HINT,
|
|
@@ -497,17 +499,23 @@ export const {
|
|
|
497
499
|
BLOCK_LABEL_REPLACEABLE,
|
|
498
500
|
BLOCK_LABEL_HAS_INPUT,
|
|
499
501
|
BLOCK_LABEL_HAS_INPUTS,
|
|
502
|
+
BLOCK_LABEL_HAS_BRANCHES,
|
|
500
503
|
BLOCK_LABEL_STATEMENT,
|
|
501
504
|
BLOCK_LABEL_CONTAINER,
|
|
502
505
|
BLOCK_LABEL_VALUE,
|
|
503
506
|
BLOCK_LABEL_STACK_BLOCKS,
|
|
504
507
|
INPUT_LABEL_INDEX,
|
|
508
|
+
INPUT_LABEL_VALUE,
|
|
509
|
+
INPUT_LABEL_STATEMENT,
|
|
510
|
+
INPUT_LABEL_END_STATEMENT,
|
|
511
|
+
INPUT_LABEL_EMPTY,
|
|
505
512
|
ANNOUNCE_MOVE_WORKSPACE,
|
|
506
513
|
ANNOUNCE_MOVE_BEFORE,
|
|
507
514
|
ANNOUNCE_MOVE_AFTER,
|
|
508
515
|
ANNOUNCE_MOVE_INSIDE,
|
|
509
516
|
ANNOUNCE_MOVE_AROUND,
|
|
510
517
|
ANNOUNCE_MOVE_TO,
|
|
518
|
+
ANNOUNCE_MOVE_OF,
|
|
511
519
|
ANNOUNCE_MOVE_CANCELED,
|
|
512
520
|
FIELD_LABEL_EMPTY,
|
|
513
521
|
ARIA_TYPE_FIELD_INPUT,
|
|
@@ -528,4 +536,21 @@ export const {
|
|
|
528
536
|
ARIA_LABEL_BUTTON,
|
|
529
537
|
ARIA_LABEL_HEADING,
|
|
530
538
|
BUBBLE_LABEL_DEFAULT,
|
|
539
|
+
BUBBLE_LABEL_COMMENT,
|
|
540
|
+
BUBBLE_LABEL_WARNING,
|
|
541
|
+
ICON_LABEL_DEFAULT,
|
|
542
|
+
ICON_LABEL_COMMENT_CLOSED,
|
|
543
|
+
ICON_LABEL_COMMENT_OPEN,
|
|
544
|
+
ICON_LABEL_MUTATOR_CLOSED,
|
|
545
|
+
ICON_LABEL_MUTATOR_OPEN,
|
|
546
|
+
ICON_LABEL_WARNING_CLOSED,
|
|
547
|
+
ICON_LABEL_WARNING_OPEN,
|
|
548
|
+
ARIA_LABEL_COMMENT,
|
|
549
|
+
ARIA_LABEL_COMMENT_COLLAPSE,
|
|
550
|
+
ARIA_LABEL_COMMENT_EXPAND,
|
|
551
|
+
SCREENREADER_MODE_ENABLED,
|
|
552
|
+
SCREENREADER_MODE_DISABLED,
|
|
553
|
+
CURRENT_BLOCK_ANNOUNCEMENT,
|
|
554
|
+
PARENT_BLOCKS_ANNOUNCEMENT,
|
|
555
|
+
NO_PARENT_ANNOUNCEMENT,
|
|
531
556
|
} = ace;
|