diff --git a/gulpfile.js b/gulpfile.js
index a7e26ee47..c0bc2694d 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -57,7 +57,7 @@ module.exports = {
gitCreateRC: gitTasks.createRC,
gitRecompile: gitTasks.recompile,
gitUpdateGithubPages: gitTasks.updateGithubPages,
- typings: typings.typings,
+ typings: gulp.series(typings.typings, typings.msgTypings),
package: packageTasks.package,
checkLicenses: licenseTasks.checkLicenses
};
diff --git a/package.json b/package.json
index 463f17d06..537a07b47 100644
--- a/package.json
+++ b/package.json
@@ -47,7 +47,7 @@
"main": "./index.js",
"umd": "./blockly.min.js",
"unpkg": "./blockly.min.js",
- "types": "./blockly.d.ts",
+ "types": "./index.d.ts",
"browser": {
"./node.js": "./browser.js",
"./core.js": "./core-browser.js",
diff --git a/scripts/gulpfiles/package_tasks.js b/scripts/gulpfiles/package_tasks.js
index c711231af..c69ce50e8 100644
--- a/scripts/gulpfiles/package_tasks.js
+++ b/scripts/gulpfiles/package_tasks.js
@@ -365,7 +365,7 @@ function packageReadme() {
* The bundled declaration file is referenced in package.json in the types property.
*/
function packageDTS() {
- return gulp.src('./typings/blockly.d.ts')
+ return gulp.src(['./typings/*.d.ts', './typings/msg/*.d.ts'], {base: './typings'})
.pipe(gulp.dest(`${packageDistribution}`));
};
diff --git a/scripts/gulpfiles/typings.js b/scripts/gulpfiles/typings.js
index 86ba78b38..81dbe7ea6 100644
--- a/scripts/gulpfiles/typings.js
+++ b/scripts/gulpfiles/typings.js
@@ -62,8 +62,8 @@ function typings() {
});
const srcs = [
- 'typings/parts/blockly-header.d.ts',
- 'typings/parts/blockly-interfaces.d.ts',
+ 'typings/templates/blockly-header.template',
+ 'typings/templates/blockly-interfaces.template',
`${tmpDir}/core/**`,
`${tmpDir}/core/components/**`,
`${tmpDir}/core/components/tree/**`,
@@ -86,6 +86,19 @@ function typings() {
});
};
+// Generates the TypeScript definition files (d.ts) for Blockly locales.
+function msgTypings(cb) {
+ const template = fs.readFileSync(path.join('typings/templates/msg.template'), 'utf-8');
+ const msgFiles = fs.readdirSync(path.join('msg', 'json'));
+ msgFiles.forEach(msg => {
+ const localeName = msg.substring(0, msg.indexOf('.json'));
+ const msgTypings = template.slice().replace(/<%= locale %>/gi, localeName);
+ fs.writeFileSync(path.join('typings', 'msg', localeName + '.d.ts'), msgTypings, 'utf-8');
+ })
+ cb();
+}
+
module.exports = {
- typings: typings
+ typings: typings,
+ msgTypings: msgTypings
};
diff --git a/typings/blocks.d.ts b/typings/blocks.d.ts
new file mode 100644
index 000000000..851c08ddd
--- /dev/null
+++ b/typings/blocks.d.ts
@@ -0,0 +1,15 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for Blockly Blocks.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import * as Blockly from './core';
+export = Blockly.Blocks;
diff --git a/typings/core.d.ts b/typings/core.d.ts
new file mode 100644
index 000000000..5453fd24a
--- /dev/null
+++ b/typings/core.d.ts
@@ -0,0 +1,15 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for Blockly core.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import * as Blockly from './blockly';
+export = Blockly;
diff --git a/typings/dart.d.ts b/typings/dart.d.ts
new file mode 100644
index 000000000..c04eda2a8
--- /dev/null
+++ b/typings/dart.d.ts
@@ -0,0 +1,15 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Dart generator.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import * as Blockly from './core';
+export = Blockly.Generator;
diff --git a/typings/index.d.ts b/typings/index.d.ts
new file mode 100644
index 000000000..10324babc
--- /dev/null
+++ b/typings/index.d.ts
@@ -0,0 +1,22 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for Blockly.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+///
+///
+///
+
+import * as Blockly from './core';
+import './blocks';
+import './javascript';
+import './msg/en';
+
+export = Blockly;
diff --git a/typings/javascript.d.ts b/typings/javascript.d.ts
new file mode 100644
index 000000000..f1a14baaf
--- /dev/null
+++ b/typings/javascript.d.ts
@@ -0,0 +1,15 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the JavaScript generator.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import * as Blockly from './core';
+export = Blockly.Generator;
diff --git a/typings/lua.d.ts b/typings/lua.d.ts
new file mode 100644
index 000000000..a5170bc82
--- /dev/null
+++ b/typings/lua.d.ts
@@ -0,0 +1,15 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Lua generator.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import * as Blockly from './core';
+export = Blockly.Generator;
diff --git a/typings/msg/ab.d.ts b/typings/msg/ab.d.ts
new file mode 100644
index 000000000..eb87b9bf3
--- /dev/null
+++ b/typings/msg/ab.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly ab locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/ar.d.ts b/typings/msg/ar.d.ts
new file mode 100644
index 000000000..e2435d743
--- /dev/null
+++ b/typings/msg/ar.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly ar locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/az.d.ts b/typings/msg/az.d.ts
new file mode 100644
index 000000000..a87778131
--- /dev/null
+++ b/typings/msg/az.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly az locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/ba.d.ts b/typings/msg/ba.d.ts
new file mode 100644
index 000000000..21cc21cc1
--- /dev/null
+++ b/typings/msg/ba.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly ba locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/bcc.d.ts b/typings/msg/bcc.d.ts
new file mode 100644
index 000000000..e60e54df5
--- /dev/null
+++ b/typings/msg/bcc.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly bcc locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/be-tarask.d.ts b/typings/msg/be-tarask.d.ts
new file mode 100644
index 000000000..91640bb40
--- /dev/null
+++ b/typings/msg/be-tarask.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly be-tarask locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/be.d.ts b/typings/msg/be.d.ts
new file mode 100644
index 000000000..0857b6328
--- /dev/null
+++ b/typings/msg/be.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly be locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/bg.d.ts b/typings/msg/bg.d.ts
new file mode 100644
index 000000000..81905151a
--- /dev/null
+++ b/typings/msg/bg.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly bg locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/bn.d.ts b/typings/msg/bn.d.ts
new file mode 100644
index 000000000..8207499d7
--- /dev/null
+++ b/typings/msg/bn.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly bn locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/br.d.ts b/typings/msg/br.d.ts
new file mode 100644
index 000000000..319e7ade3
--- /dev/null
+++ b/typings/msg/br.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly br locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/ca.d.ts b/typings/msg/ca.d.ts
new file mode 100644
index 000000000..a89b9374b
--- /dev/null
+++ b/typings/msg/ca.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly ca locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/constants.d.ts b/typings/msg/constants.d.ts
new file mode 100644
index 000000000..41cb98e40
--- /dev/null
+++ b/typings/msg/constants.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly constants locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/cs.d.ts b/typings/msg/cs.d.ts
new file mode 100644
index 000000000..fd8998d2b
--- /dev/null
+++ b/typings/msg/cs.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly cs locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/da.d.ts b/typings/msg/da.d.ts
new file mode 100644
index 000000000..9ae9615a0
--- /dev/null
+++ b/typings/msg/da.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly da locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/de.d.ts b/typings/msg/de.d.ts
new file mode 100644
index 000000000..84004ffdd
--- /dev/null
+++ b/typings/msg/de.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly de locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/diq.d.ts b/typings/msg/diq.d.ts
new file mode 100644
index 000000000..2dadf5b23
--- /dev/null
+++ b/typings/msg/diq.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly diq locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/dty.d.ts b/typings/msg/dty.d.ts
new file mode 100644
index 000000000..995d93af2
--- /dev/null
+++ b/typings/msg/dty.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly dty locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/ee.d.ts b/typings/msg/ee.d.ts
new file mode 100644
index 000000000..436e5b9ad
--- /dev/null
+++ b/typings/msg/ee.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly ee locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/el.d.ts b/typings/msg/el.d.ts
new file mode 100644
index 000000000..981a987b6
--- /dev/null
+++ b/typings/msg/el.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly el locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/en-gb.d.ts b/typings/msg/en-gb.d.ts
new file mode 100644
index 000000000..59032a4ff
--- /dev/null
+++ b/typings/msg/en-gb.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly en-gb locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/en.d.ts b/typings/msg/en.d.ts
new file mode 100644
index 000000000..256aa7d44
--- /dev/null
+++ b/typings/msg/en.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly en locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/eo.d.ts b/typings/msg/eo.d.ts
new file mode 100644
index 000000000..a9b4004cc
--- /dev/null
+++ b/typings/msg/eo.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly eo locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/es.d.ts b/typings/msg/es.d.ts
new file mode 100644
index 000000000..4dd0c585a
--- /dev/null
+++ b/typings/msg/es.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly es locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/et.d.ts b/typings/msg/et.d.ts
new file mode 100644
index 000000000..01541ff11
--- /dev/null
+++ b/typings/msg/et.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly et locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/eu.d.ts b/typings/msg/eu.d.ts
new file mode 100644
index 000000000..1d0e85207
--- /dev/null
+++ b/typings/msg/eu.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly eu locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/fa.d.ts b/typings/msg/fa.d.ts
new file mode 100644
index 000000000..0e929790d
--- /dev/null
+++ b/typings/msg/fa.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly fa locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/fi.d.ts b/typings/msg/fi.d.ts
new file mode 100644
index 000000000..dad65e992
--- /dev/null
+++ b/typings/msg/fi.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly fi locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/fr.d.ts b/typings/msg/fr.d.ts
new file mode 100644
index 000000000..6014c3b63
--- /dev/null
+++ b/typings/msg/fr.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly fr locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/gl.d.ts b/typings/msg/gl.d.ts
new file mode 100644
index 000000000..874c328f7
--- /dev/null
+++ b/typings/msg/gl.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly gl locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/gor.d.ts b/typings/msg/gor.d.ts
new file mode 100644
index 000000000..69c2999d4
--- /dev/null
+++ b/typings/msg/gor.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly gor locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/ha.d.ts b/typings/msg/ha.d.ts
new file mode 100644
index 000000000..f5e92a6af
--- /dev/null
+++ b/typings/msg/ha.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly ha locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/he.d.ts b/typings/msg/he.d.ts
new file mode 100644
index 000000000..deb61f950
--- /dev/null
+++ b/typings/msg/he.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly he locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/hi.d.ts b/typings/msg/hi.d.ts
new file mode 100644
index 000000000..5abcff526
--- /dev/null
+++ b/typings/msg/hi.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly hi locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/hrx.d.ts b/typings/msg/hrx.d.ts
new file mode 100644
index 000000000..785916169
--- /dev/null
+++ b/typings/msg/hrx.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly hrx locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/hu.d.ts b/typings/msg/hu.d.ts
new file mode 100644
index 000000000..3f87f846d
--- /dev/null
+++ b/typings/msg/hu.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly hu locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/hy.d.ts b/typings/msg/hy.d.ts
new file mode 100644
index 000000000..ee726e223
--- /dev/null
+++ b/typings/msg/hy.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly hy locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/ia.d.ts b/typings/msg/ia.d.ts
new file mode 100644
index 000000000..b0324c970
--- /dev/null
+++ b/typings/msg/ia.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly ia locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/id.d.ts b/typings/msg/id.d.ts
new file mode 100644
index 000000000..ddb57b7fb
--- /dev/null
+++ b/typings/msg/id.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly id locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/ig.d.ts b/typings/msg/ig.d.ts
new file mode 100644
index 000000000..90e5c7bec
--- /dev/null
+++ b/typings/msg/ig.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly ig locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/is.d.ts b/typings/msg/is.d.ts
new file mode 100644
index 000000000..88bfa07b8
--- /dev/null
+++ b/typings/msg/is.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly is locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/it.d.ts b/typings/msg/it.d.ts
new file mode 100644
index 000000000..0bff1ff74
--- /dev/null
+++ b/typings/msg/it.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly it locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/ja.d.ts b/typings/msg/ja.d.ts
new file mode 100644
index 000000000..ed76fdf25
--- /dev/null
+++ b/typings/msg/ja.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly ja locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/kab.d.ts b/typings/msg/kab.d.ts
new file mode 100644
index 000000000..98747fa49
--- /dev/null
+++ b/typings/msg/kab.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly kab locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/kn.d.ts b/typings/msg/kn.d.ts
new file mode 100644
index 000000000..9ac70f39f
--- /dev/null
+++ b/typings/msg/kn.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly kn locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/ko.d.ts b/typings/msg/ko.d.ts
new file mode 100644
index 000000000..344002e5d
--- /dev/null
+++ b/typings/msg/ko.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly ko locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/lb.d.ts b/typings/msg/lb.d.ts
new file mode 100644
index 000000000..0eee88ed5
--- /dev/null
+++ b/typings/msg/lb.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly lb locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/lki.d.ts b/typings/msg/lki.d.ts
new file mode 100644
index 000000000..9559de10e
--- /dev/null
+++ b/typings/msg/lki.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly lki locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/lo.d.ts b/typings/msg/lo.d.ts
new file mode 100644
index 000000000..5a9071cea
--- /dev/null
+++ b/typings/msg/lo.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly lo locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/lrc.d.ts b/typings/msg/lrc.d.ts
new file mode 100644
index 000000000..044134af1
--- /dev/null
+++ b/typings/msg/lrc.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly lrc locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/lt.d.ts b/typings/msg/lt.d.ts
new file mode 100644
index 000000000..9cc7516c1
--- /dev/null
+++ b/typings/msg/lt.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly lt locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/lv.d.ts b/typings/msg/lv.d.ts
new file mode 100644
index 000000000..88b41c7af
--- /dev/null
+++ b/typings/msg/lv.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly lv locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/mk.d.ts b/typings/msg/mk.d.ts
new file mode 100644
index 000000000..951b027b7
--- /dev/null
+++ b/typings/msg/mk.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly mk locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/mnw.d.ts b/typings/msg/mnw.d.ts
new file mode 100644
index 000000000..962b8c5c9
--- /dev/null
+++ b/typings/msg/mnw.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly mnw locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/ms.d.ts b/typings/msg/ms.d.ts
new file mode 100644
index 000000000..f154c4ef4
--- /dev/null
+++ b/typings/msg/ms.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly ms locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/msg.d.ts b/typings/msg/msg.d.ts
new file mode 100644
index 000000000..65d7808ab
--- /dev/null
+++ b/typings/msg/msg.d.ts
@@ -0,0 +1,444 @@
+/**
+ * @license
+ * Copyright 2019 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for Blockly Messages.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+
+declare namespace Blockly.Msg {
+ let ADD_COMMENT : string ;
+ let CANNOT_DELETE_VARIABLE_PROCEDURE : string ;
+ let CHANGE_VALUE_TITLE : string ;
+ let CLEAN_UP : string ;
+ let COLLAPSED_WARNINGS_WARNING : string ;
+ let COLLAPSE_ALL : string ;
+ let COLLAPSE_BLOCK : string ;
+ let COLOUR_BLEND_COLOUR1 : string ;
+ let COLOUR_BLEND_COLOUR2 : string ;
+ let COLOUR_BLEND_HELPURL : string ;
+ let COLOUR_BLEND_RATIO : string ;
+ let COLOUR_BLEND_TITLE : string ;
+ let COLOUR_BLEND_TOOLTIP : string ;
+ let COLOUR_HUE : string ;
+ let COLOUR_PICKER_HELPURL : string ;
+ let COLOUR_PICKER_TOOLTIP : string ;
+ let COLOUR_RANDOM_HELPURL : string ;
+ let COLOUR_RANDOM_TITLE : string ;
+ let COLOUR_RANDOM_TOOLTIP : string ;
+ let COLOUR_RGB_BLUE : string ;
+ let COLOUR_RGB_GREEN : string ;
+ let COLOUR_RGB_HELPURL : string ;
+ let COLOUR_RGB_RED : string ;
+ let COLOUR_RGB_TITLE : string ;
+ let COLOUR_RGB_TOOLTIP : string ;
+ let CONTROLS_FLOW_STATEMENTS_HELPURL : string ;
+ let CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK : string ;
+ let CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE : string ;
+ let CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK : string ;
+ let CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE : string ;
+ let CONTROLS_FLOW_STATEMENTS_WARNING : string ;
+ let CONTROLS_FOREACH_HELPURL : string ;
+ let CONTROLS_FOREACH_INPUT_DO : string ;
+ let CONTROLS_FOREACH_TITLE : string ;
+ let CONTROLS_FOREACH_TOOLTIP : string ;
+ let CONTROLS_FOR_HELPURL : string ;
+ let CONTROLS_FOR_INPUT_DO : string ;
+ let CONTROLS_FOR_TITLE : string ;
+ let CONTROLS_FOR_TOOLTIP : string ;
+ let CONTROLS_IF_ELSEIF_TITLE_ELSEIF : string ;
+ let CONTROLS_IF_ELSEIF_TOOLTIP : string ;
+ let CONTROLS_IF_ELSE_TITLE_ELSE : string ;
+ let CONTROLS_IF_ELSE_TOOLTIP : string ;
+ let CONTROLS_IF_HELPURL : string ;
+ let CONTROLS_IF_IF_TITLE_IF : string ;
+ let CONTROLS_IF_IF_TOOLTIP : string ;
+ let CONTROLS_IF_MSG_ELSE : string ;
+ let CONTROLS_IF_MSG_ELSEIF : string ;
+ let CONTROLS_IF_MSG_IF : string ;
+ let CONTROLS_IF_MSG_THEN : string ;
+ let CONTROLS_IF_TOOLTIP_1 : string ;
+ let CONTROLS_IF_TOOLTIP_2 : string ;
+ let CONTROLS_IF_TOOLTIP_3 : string ;
+ let CONTROLS_IF_TOOLTIP_4 : string ;
+ let CONTROLS_REPEAT_HELPURL : string ;
+ let CONTROLS_REPEAT_INPUT_DO : string ;
+ let CONTROLS_REPEAT_TITLE : string ;
+ let CONTROLS_REPEAT_TOOLTIP : string ;
+ let CONTROLS_WHILEUNTIL_HELPURL : string ;
+ let CONTROLS_WHILEUNTIL_INPUT_DO : string ;
+ let CONTROLS_WHILEUNTIL_OPERATOR_UNTIL : string ;
+ let CONTROLS_WHILEUNTIL_OPERATOR_WHILE : string ;
+ let CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL : string ;
+ let CONTROLS_WHILEUNTIL_TOOLTIP_WHILE : string ;
+ let DELETE_ALL_BLOCKS : string ;
+ let DELETE_BLOCK : string ;
+ let DELETE_VARIABLE : string ;
+ let DELETE_VARIABLE_CONFIRMATION : string ;
+ let DELETE_X_BLOCKS : string ;
+ let DISABLE_BLOCK : string ;
+ let DUPLICATE_BLOCK : string ;
+ let DUPLICATE_COMMENT : string ;
+ let ENABLE_BLOCK : string ;
+ let EXPAND_ALL : string ;
+ let EXPAND_BLOCK : string ;
+ let EXTERNAL_INPUTS : string ;
+ let HELP : string ;
+ let INLINE_INPUTS : string ;
+ let IOS_CANCEL : string ;
+ let IOS_ERROR : string ;
+ let IOS_OK : string ;
+ let IOS_PROCEDURES_ADD_INPUT : string ;
+ let IOS_PROCEDURES_ALLOW_STATEMENTS : string ;
+ let IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR : string ;
+ let IOS_PROCEDURES_INPUTS : string ;
+ let IOS_VARIABLES_ADD_BUTTON : string ;
+ let IOS_VARIABLES_ADD_VARIABLE : string ;
+ let IOS_VARIABLES_DELETE_BUTTON : string ;
+ let IOS_VARIABLES_EMPTY_NAME_ERROR : string ;
+ let IOS_VARIABLES_RENAME_BUTTON : string ;
+ let IOS_VARIABLES_VARIABLE_NAME : string ;
+ let LISTS_CREATE_EMPTY_HELPURL : string ;
+ let LISTS_CREATE_EMPTY_TITLE : string ;
+ let LISTS_CREATE_EMPTY_TOOLTIP : string ;
+ let LISTS_CREATE_WITH_CONTAINER_TITLE_ADD : string ;
+ let LISTS_CREATE_WITH_CONTAINER_TOOLTIP : string ;
+ let LISTS_CREATE_WITH_HELPURL : string ;
+ let LISTS_CREATE_WITH_INPUT_WITH : string ;
+ let LISTS_CREATE_WITH_ITEM_TITLE : string ;
+ let LISTS_CREATE_WITH_ITEM_TOOLTIP : string ;
+ let LISTS_CREATE_WITH_TOOLTIP : string ;
+ let LISTS_GET_INDEX_FIRST : string ;
+ let LISTS_GET_INDEX_FROM_END : string ;
+ let LISTS_GET_INDEX_FROM_START : string ;
+ let LISTS_GET_INDEX_GET : string ;
+ let LISTS_GET_INDEX_GET_REMOVE : string ;
+ let LISTS_GET_INDEX_HELPURL : string ;
+ let LISTS_GET_INDEX_INPUT_IN_LIST : string ;
+ let LISTS_GET_INDEX_LAST : string ;
+ let LISTS_GET_INDEX_RANDOM : string ;
+ let LISTS_GET_INDEX_REMOVE : string ;
+ let LISTS_GET_INDEX_TAIL : string ;
+ let LISTS_GET_INDEX_TOOLTIP_GET_FIRST : string ;
+ let LISTS_GET_INDEX_TOOLTIP_GET_FROM : string ;
+ let LISTS_GET_INDEX_TOOLTIP_GET_LAST : string ;
+ let LISTS_GET_INDEX_TOOLTIP_GET_RANDOM : string ;
+ let LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST : string ;
+ let LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM : string ;
+ let LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST : string ;
+ let LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM : string ;
+ let LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST : string ;
+ let LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM : string ;
+ let LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST : string ;
+ let LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM : string ;
+ let LISTS_GET_SUBLIST_END_FROM_END : string ;
+ let LISTS_GET_SUBLIST_END_FROM_START : string ;
+ let LISTS_GET_SUBLIST_END_LAST : string ;
+ let LISTS_GET_SUBLIST_HELPURL : string ;
+ let LISTS_GET_SUBLIST_INPUT_IN_LIST : string ;
+ let LISTS_GET_SUBLIST_START_FIRST : string ;
+ let LISTS_GET_SUBLIST_START_FROM_END : string ;
+ let LISTS_GET_SUBLIST_START_FROM_START : string ;
+ let LISTS_GET_SUBLIST_TAIL : string ;
+ let LISTS_GET_SUBLIST_TOOLTIP : string ;
+ let LISTS_HUE : string ;
+ let LISTS_INDEX_FROM_END_TOOLTIP : string ;
+ let LISTS_INDEX_FROM_START_TOOLTIP : string ;
+ let LISTS_INDEX_OF_FIRST : string ;
+ let LISTS_INDEX_OF_HELPURL : string ;
+ let LISTS_INDEX_OF_INPUT_IN_LIST : string ;
+ let LISTS_INDEX_OF_LAST : string ;
+ let LISTS_INDEX_OF_TOOLTIP : string ;
+ let LISTS_INLIST : string ;
+ let LISTS_ISEMPTY_HELPURL : string ;
+ let LISTS_ISEMPTY_TITLE : string ;
+ let LISTS_ISEMPTY_TOOLTIP : string ;
+ let LISTS_LENGTH_HELPURL : string ;
+ let LISTS_LENGTH_TITLE : string ;
+ let LISTS_LENGTH_TOOLTIP : string ;
+ let LISTS_REPEAT_HELPURL : string ;
+ let LISTS_REPEAT_TITLE : string ;
+ let LISTS_REPEAT_TOOLTIP : string ;
+ let LISTS_REVERSE_HELPURL : string ;
+ let LISTS_REVERSE_MESSAGE0 : string ;
+ let LISTS_REVERSE_TOOLTIP : string ;
+ let LISTS_SET_INDEX_HELPURL : string ;
+ let LISTS_SET_INDEX_INPUT_IN_LIST : string ;
+ let LISTS_SET_INDEX_INPUT_TO : string ;
+ let LISTS_SET_INDEX_INSERT : string ;
+ let LISTS_SET_INDEX_SET : string ;
+ let LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST : string ;
+ let LISTS_SET_INDEX_TOOLTIP_INSERT_FROM : string ;
+ let LISTS_SET_INDEX_TOOLTIP_INSERT_LAST : string ;
+ let LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM : string ;
+ let LISTS_SET_INDEX_TOOLTIP_SET_FIRST : string ;
+ let LISTS_SET_INDEX_TOOLTIP_SET_FROM : string ;
+ let LISTS_SET_INDEX_TOOLTIP_SET_LAST : string ;
+ let LISTS_SET_INDEX_TOOLTIP_SET_RANDOM : string ;
+ let LISTS_SORT_HELPURL : string ;
+ let LISTS_SORT_ORDER_ASCENDING : string ;
+ let LISTS_SORT_ORDER_DESCENDING : string ;
+ let LISTS_SORT_TITLE : string ;
+ let LISTS_SORT_TOOLTIP : string ;
+ let LISTS_SORT_TYPE_IGNORECASE : string ;
+ let LISTS_SORT_TYPE_NUMERIC : string ;
+ let LISTS_SORT_TYPE_TEXT : string ;
+ let LISTS_SPLIT_HELPURL : string ;
+ let LISTS_SPLIT_LIST_FROM_TEXT : string ;
+ let LISTS_SPLIT_TEXT_FROM_LIST : string ;
+ let LISTS_SPLIT_TOOLTIP_JOIN : string ;
+ let LISTS_SPLIT_TOOLTIP_SPLIT : string ;
+ let LISTS_SPLIT_WITH_DELIMITER : string ;
+ let LOGIC_BOOLEAN_FALSE : string ;
+ let LOGIC_BOOLEAN_HELPURL : string ;
+ let LOGIC_BOOLEAN_TOOLTIP : string ;
+ let LOGIC_BOOLEAN_TRUE : string ;
+ let LOGIC_COMPARE_HELPURL : string ;
+ let LOGIC_COMPARE_TOOLTIP_EQ : string ;
+ let LOGIC_COMPARE_TOOLTIP_GT : string ;
+ let LOGIC_COMPARE_TOOLTIP_GTE : string ;
+ let LOGIC_COMPARE_TOOLTIP_LT : string ;
+ let LOGIC_COMPARE_TOOLTIP_LTE : string ;
+ let LOGIC_COMPARE_TOOLTIP_NEQ : string ;
+ let LOGIC_HUE : string ;
+ let LOGIC_NEGATE_HELPURL : string ;
+ let LOGIC_NEGATE_TITLE : string ;
+ let LOGIC_NEGATE_TOOLTIP : string ;
+ let LOGIC_NULL : string ;
+ let LOGIC_NULL_HELPURL : string ;
+ let LOGIC_NULL_TOOLTIP : string ;
+ let LOGIC_OPERATION_AND : string ;
+ let LOGIC_OPERATION_HELPURL : string ;
+ let LOGIC_OPERATION_OR : string ;
+ let LOGIC_OPERATION_TOOLTIP_AND : string ;
+ let LOGIC_OPERATION_TOOLTIP_OR : string ;
+ let LOGIC_TERNARY_CONDITION : string ;
+ let LOGIC_TERNARY_HELPURL : string ;
+ let LOGIC_TERNARY_IF_FALSE : string ;
+ let LOGIC_TERNARY_IF_TRUE : string ;
+ let LOGIC_TERNARY_TOOLTIP : string ;
+ let LOOPS_HUE : string ;
+ let MATH_ADDITION_SYMBOL : string ;
+ let MATH_ARITHMETIC_HELPURL : string ;
+ let MATH_ARITHMETIC_TOOLTIP_ADD : string ;
+ let MATH_ARITHMETIC_TOOLTIP_DIVIDE : string ;
+ let MATH_ARITHMETIC_TOOLTIP_MINUS : string ;
+ let MATH_ARITHMETIC_TOOLTIP_MULTIPLY : string ;
+ let MATH_ARITHMETIC_TOOLTIP_POWER : string ;
+ let MATH_ATAN2_HELPURL : string ;
+ let MATH_ATAN2_TITLE : string ;
+ let MATH_ATAN2_TOOLTIP : string ;
+ let MATH_CHANGE_HELPURL : string ;
+ let MATH_CHANGE_TITLE : string ;
+ let MATH_CHANGE_TITLE_ITEM : string ;
+ let MATH_CHANGE_TOOLTIP : string ;
+ let MATH_CONSTANT_HELPURL : string ;
+ let MATH_CONSTANT_TOOLTIP : string ;
+ let MATH_CONSTRAIN_HELPURL : string ;
+ let MATH_CONSTRAIN_TITLE : string ;
+ let MATH_CONSTRAIN_TOOLTIP : string ;
+ let MATH_DIVISION_SYMBOL : string ;
+ let MATH_HUE : string ;
+ let MATH_IS_DIVISIBLE_BY : string ;
+ let MATH_IS_EVEN : string ;
+ let MATH_IS_NEGATIVE : string ;
+ let MATH_IS_ODD : string ;
+ let MATH_IS_POSITIVE : string ;
+ let MATH_IS_PRIME : string ;
+ let MATH_IS_TOOLTIP : string ;
+ let MATH_IS_WHOLE : string ;
+ let MATH_MODULO_HELPURL : string ;
+ let MATH_MODULO_TITLE : string ;
+ let MATH_MODULO_TOOLTIP : string ;
+ let MATH_MULTIPLICATION_SYMBOL : string ;
+ let MATH_NUMBER_HELPURL : string ;
+ let MATH_NUMBER_TOOLTIP : string ;
+ let MATH_ONLIST_HELPURL : string ;
+ let MATH_ONLIST_OPERATOR_AVERAGE : string ;
+ let MATH_ONLIST_OPERATOR_MAX : string ;
+ let MATH_ONLIST_OPERATOR_MEDIAN : string ;
+ let MATH_ONLIST_OPERATOR_MIN : string ;
+ let MATH_ONLIST_OPERATOR_MODE : string ;
+ let MATH_ONLIST_OPERATOR_RANDOM : string ;
+ let MATH_ONLIST_OPERATOR_STD_DEV : string ;
+ let MATH_ONLIST_OPERATOR_SUM : string ;
+ let MATH_ONLIST_TOOLTIP_AVERAGE : string ;
+ let MATH_ONLIST_TOOLTIP_MAX : string ;
+ let MATH_ONLIST_TOOLTIP_MEDIAN : string ;
+ let MATH_ONLIST_TOOLTIP_MIN : string ;
+ let MATH_ONLIST_TOOLTIP_MODE : string ;
+ let MATH_ONLIST_TOOLTIP_RANDOM : string ;
+ let MATH_ONLIST_TOOLTIP_STD_DEV : string ;
+ let MATH_ONLIST_TOOLTIP_SUM : string ;
+ let MATH_POWER_SYMBOL : string ;
+ let MATH_RANDOM_FLOAT_HELPURL : string ;
+ let MATH_RANDOM_FLOAT_TITLE_RANDOM : string ;
+ let MATH_RANDOM_FLOAT_TOOLTIP : string ;
+ let MATH_RANDOM_INT_HELPURL : string ;
+ let MATH_RANDOM_INT_TITLE : string ;
+ let MATH_RANDOM_INT_TOOLTIP : string ;
+ let MATH_ROUND_HELPURL : string ;
+ let MATH_ROUND_OPERATOR_ROUND : string ;
+ let MATH_ROUND_OPERATOR_ROUNDDOWN : string ;
+ let MATH_ROUND_OPERATOR_ROUNDUP : string ;
+ let MATH_ROUND_TOOLTIP : string ;
+ let MATH_SINGLE_HELPURL : string ;
+ let MATH_SINGLE_OP_ABSOLUTE : string ;
+ let MATH_SINGLE_OP_ROOT : string ;
+ let MATH_SINGLE_TOOLTIP_ABS : string ;
+ let MATH_SINGLE_TOOLTIP_EXP : string ;
+ let MATH_SINGLE_TOOLTIP_LN : string ;
+ let MATH_SINGLE_TOOLTIP_LOG10 : string ;
+ let MATH_SINGLE_TOOLTIP_NEG : string ;
+ let MATH_SINGLE_TOOLTIP_POW10 : string ;
+ let MATH_SINGLE_TOOLTIP_ROOT : string ;
+ let MATH_SUBTRACTION_SYMBOL : string ;
+ let MATH_TRIG_ACOS : string ;
+ let MATH_TRIG_ASIN : string ;
+ let MATH_TRIG_ATAN : string ;
+ let MATH_TRIG_COS : string ;
+ let MATH_TRIG_HELPURL : string ;
+ let MATH_TRIG_SIN : string ;
+ let MATH_TRIG_TAN : string ;
+ let MATH_TRIG_TOOLTIP_ACOS : string ;
+ let MATH_TRIG_TOOLTIP_ASIN : string ;
+ let MATH_TRIG_TOOLTIP_ATAN : string ;
+ let MATH_TRIG_TOOLTIP_COS : string ;
+ let MATH_TRIG_TOOLTIP_SIN : string ;
+ let MATH_TRIG_TOOLTIP_TAN : string ;
+ let NEW_COLOUR_VARIABLE : string ;
+ let NEW_NUMBER_VARIABLE : string ;
+ let NEW_STRING_VARIABLE : string ;
+ let NEW_VARIABLE : string ;
+ let NEW_VARIABLE_TITLE : string ;
+ let NEW_VARIABLE_TYPE_TITLE : string ;
+ let ORDINAL_NUMBER_SUFFIX : string ;
+ let PROCEDURES_ALLOW_STATEMENTS : string ;
+ let PROCEDURES_BEFORE_PARAMS : string ;
+ let PROCEDURES_CALLNORETURN_HELPURL : string ;
+ let PROCEDURES_CALLNORETURN_TOOLTIP : string ;
+ let PROCEDURES_CALLRETURN_HELPURL : string ;
+ let PROCEDURES_CALLRETURN_TOOLTIP : string ;
+ let PROCEDURES_CALL_BEFORE_PARAMS : string ;
+ let PROCEDURES_CREATE_DO : string ;
+ let PROCEDURES_DEFNORETURN_COMMENT : string ;
+ let PROCEDURES_DEFNORETURN_DO : string ;
+ let PROCEDURES_DEFNORETURN_HELPURL : string ;
+ let PROCEDURES_DEFNORETURN_PROCEDURE : string ;
+ let PROCEDURES_DEFNORETURN_TITLE : string ;
+ let PROCEDURES_DEFNORETURN_TOOLTIP : string ;
+ let PROCEDURES_DEFRETURN_COMMENT : string ;
+ let PROCEDURES_DEFRETURN_DO : string ;
+ let PROCEDURES_DEFRETURN_HELPURL : string ;
+ let PROCEDURES_DEFRETURN_PROCEDURE : string ;
+ let PROCEDURES_DEFRETURN_RETURN : string ;
+ let PROCEDURES_DEFRETURN_TITLE : string ;
+ let PROCEDURES_DEFRETURN_TOOLTIP : string ;
+ let PROCEDURES_DEF_DUPLICATE_WARNING : string ;
+ let PROCEDURES_HIGHLIGHT_DEF : string ;
+ let PROCEDURES_HUE : string ;
+ let PROCEDURES_IFRETURN_HELPURL : string ;
+ let PROCEDURES_IFRETURN_TOOLTIP : string ;
+ let PROCEDURES_IFRETURN_WARNING : string ;
+ let PROCEDURES_MUTATORARG_TITLE : string ;
+ let PROCEDURES_MUTATORARG_TOOLTIP : string ;
+ let PROCEDURES_MUTATORCONTAINER_TITLE : string ;
+ let PROCEDURES_MUTATORCONTAINER_TOOLTIP : string ;
+ let REDO : string ;
+ let REMOVE_COMMENT : string ;
+ let RENAME_VARIABLE : string ;
+ let RENAME_VARIABLE_TITLE : string ;
+ let TEXTS_HUE : string ;
+ let TEXT_APPEND_HELPURL : string ;
+ let TEXT_APPEND_TITLE : string ;
+ let TEXT_APPEND_TOOLTIP : string ;
+ let TEXT_APPEND_VARIABLE : string ;
+ let TEXT_CHANGECASE_HELPURL : string ;
+ let TEXT_CHANGECASE_OPERATOR_LOWERCASE : string ;
+ let TEXT_CHANGECASE_OPERATOR_TITLECASE : string ;
+ let TEXT_CHANGECASE_OPERATOR_UPPERCASE : string ;
+ let TEXT_CHANGECASE_TOOLTIP : string ;
+ let TEXT_CHARAT_FIRST : string ;
+ let TEXT_CHARAT_FROM_END : string ;
+ let TEXT_CHARAT_FROM_START : string ;
+ let TEXT_CHARAT_HELPURL : string ;
+ let TEXT_CHARAT_LAST : string ;
+ let TEXT_CHARAT_RANDOM : string ;
+ let TEXT_CHARAT_TAIL : string ;
+ let TEXT_CHARAT_TITLE : string ;
+ let TEXT_CHARAT_TOOLTIP : string ;
+ let TEXT_COUNT_HELPURL : string ;
+ let TEXT_COUNT_MESSAGE0 : string ;
+ let TEXT_COUNT_TOOLTIP : string ;
+ let TEXT_CREATE_JOIN_ITEM_TITLE_ITEM : string ;
+ let TEXT_CREATE_JOIN_ITEM_TOOLTIP : string ;
+ let TEXT_CREATE_JOIN_TITLE_JOIN : string ;
+ let TEXT_CREATE_JOIN_TOOLTIP : string ;
+ let TEXT_GET_SUBSTRING_END_FROM_END : string ;
+ let TEXT_GET_SUBSTRING_END_FROM_START : string ;
+ let TEXT_GET_SUBSTRING_END_LAST : string ;
+ let TEXT_GET_SUBSTRING_HELPURL : string ;
+ let TEXT_GET_SUBSTRING_INPUT_IN_TEXT : string ;
+ let TEXT_GET_SUBSTRING_START_FIRST : string ;
+ let TEXT_GET_SUBSTRING_START_FROM_END : string ;
+ let TEXT_GET_SUBSTRING_START_FROM_START : string ;
+ let TEXT_GET_SUBSTRING_TAIL : string ;
+ let TEXT_GET_SUBSTRING_TOOLTIP : string ;
+ let TEXT_INDEXOF_HELPURL : string ;
+ let TEXT_INDEXOF_OPERATOR_FIRST : string ;
+ let TEXT_INDEXOF_OPERATOR_LAST : string ;
+ let TEXT_INDEXOF_TITLE : string ;
+ let TEXT_INDEXOF_TOOLTIP : string ;
+ let TEXT_ISEMPTY_HELPURL : string ;
+ let TEXT_ISEMPTY_TITLE : string ;
+ let TEXT_ISEMPTY_TOOLTIP : string ;
+ let TEXT_JOIN_HELPURL : string ;
+ let TEXT_JOIN_TITLE_CREATEWITH : string ;
+ let TEXT_JOIN_TOOLTIP : string ;
+ let TEXT_LENGTH_HELPURL : string ;
+ let TEXT_LENGTH_TITLE : string ;
+ let TEXT_LENGTH_TOOLTIP : string ;
+ let TEXT_PRINT_HELPURL : string ;
+ let TEXT_PRINT_TITLE : string ;
+ let TEXT_PRINT_TOOLTIP : string ;
+ let TEXT_PROMPT_HELPURL : string ;
+ let TEXT_PROMPT_TOOLTIP_NUMBER : string ;
+ let TEXT_PROMPT_TOOLTIP_TEXT : string ;
+ let TEXT_PROMPT_TYPE_NUMBER : string ;
+ let TEXT_PROMPT_TYPE_TEXT : string ;
+ let TEXT_REPLACE_HELPURL : string ;
+ let TEXT_REPLACE_MESSAGE0 : string ;
+ let TEXT_REPLACE_TOOLTIP : string ;
+ let TEXT_REVERSE_HELPURL : string ;
+ let TEXT_REVERSE_MESSAGE0 : string ;
+ let TEXT_REVERSE_TOOLTIP : string ;
+ let TEXT_TEXT_HELPURL : string ;
+ let TEXT_TEXT_TOOLTIP : string ;
+ let TEXT_TRIM_HELPURL : string ;
+ let TEXT_TRIM_OPERATOR_BOTH : string ;
+ let TEXT_TRIM_OPERATOR_LEFT : string ;
+ let TEXT_TRIM_OPERATOR_RIGHT : string ;
+ let TEXT_TRIM_TOOLTIP : string ;
+ let TODAY : string ;
+ let UNDO : string ;
+ let UNNAMED_KEY : string ;
+ let VARIABLES_DEFAULT_NAME : string ;
+ let VARIABLES_DYNAMIC_HUE : string ;
+ let VARIABLES_GET_CREATE_SET : string ;
+ let VARIABLES_GET_HELPURL : string ;
+ let VARIABLES_GET_TOOLTIP : string ;
+ let VARIABLES_HUE : string ;
+ let VARIABLES_SET : string ;
+ let VARIABLES_SET_CREATE_GET : string ;
+ let VARIABLES_SET_HELPURL : string ;
+ let VARIABLES_SET_TOOLTIP : string ;
+ let VARIABLE_ALREADY_EXISTS : string ;
+ let VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE : string ;
+ let WORKSPACE_ARIA_LABEL : string ;
+ let WORKSPACE_COMMENT_DEFAULT_TEXT : string ;
+}
+
diff --git a/typings/msg/nb.d.ts b/typings/msg/nb.d.ts
new file mode 100644
index 000000000..42aaa1b25
--- /dev/null
+++ b/typings/msg/nb.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly nb locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/nl.d.ts b/typings/msg/nl.d.ts
new file mode 100644
index 000000000..5d383fb0c
--- /dev/null
+++ b/typings/msg/nl.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly nl locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/oc.d.ts b/typings/msg/oc.d.ts
new file mode 100644
index 000000000..f8eabb76e
--- /dev/null
+++ b/typings/msg/oc.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly oc locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/pl.d.ts b/typings/msg/pl.d.ts
new file mode 100644
index 000000000..957f3820d
--- /dev/null
+++ b/typings/msg/pl.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly pl locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/pms.d.ts b/typings/msg/pms.d.ts
new file mode 100644
index 000000000..35df33e31
--- /dev/null
+++ b/typings/msg/pms.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly pms locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/pt-br.d.ts b/typings/msg/pt-br.d.ts
new file mode 100644
index 000000000..065d639cd
--- /dev/null
+++ b/typings/msg/pt-br.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly pt-br locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/pt.d.ts b/typings/msg/pt.d.ts
new file mode 100644
index 000000000..f89879cad
--- /dev/null
+++ b/typings/msg/pt.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly pt locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/qqq.d.ts b/typings/msg/qqq.d.ts
new file mode 100644
index 000000000..4c58a607f
--- /dev/null
+++ b/typings/msg/qqq.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly qqq locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/ro.d.ts b/typings/msg/ro.d.ts
new file mode 100644
index 000000000..f2183fa49
--- /dev/null
+++ b/typings/msg/ro.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly ro locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/ru.d.ts b/typings/msg/ru.d.ts
new file mode 100644
index 000000000..95ffc8300
--- /dev/null
+++ b/typings/msg/ru.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly ru locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/sc.d.ts b/typings/msg/sc.d.ts
new file mode 100644
index 000000000..2d5afcbde
--- /dev/null
+++ b/typings/msg/sc.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly sc locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/sd.d.ts b/typings/msg/sd.d.ts
new file mode 100644
index 000000000..cafc97893
--- /dev/null
+++ b/typings/msg/sd.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly sd locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/shn.d.ts b/typings/msg/shn.d.ts
new file mode 100644
index 000000000..07a531329
--- /dev/null
+++ b/typings/msg/shn.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly shn locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/sk.d.ts b/typings/msg/sk.d.ts
new file mode 100644
index 000000000..3c26e48bc
--- /dev/null
+++ b/typings/msg/sk.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly sk locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/skr-arab.d.ts b/typings/msg/skr-arab.d.ts
new file mode 100644
index 000000000..4ddb30fd8
--- /dev/null
+++ b/typings/msg/skr-arab.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly skr-arab locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/sl.d.ts b/typings/msg/sl.d.ts
new file mode 100644
index 000000000..51f1f568f
--- /dev/null
+++ b/typings/msg/sl.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly sl locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/sq.d.ts b/typings/msg/sq.d.ts
new file mode 100644
index 000000000..e7997e2f4
--- /dev/null
+++ b/typings/msg/sq.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly sq locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/sr-latn.d.ts b/typings/msg/sr-latn.d.ts
new file mode 100644
index 000000000..f9bf0645e
--- /dev/null
+++ b/typings/msg/sr-latn.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly sr-latn locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/sr.d.ts b/typings/msg/sr.d.ts
new file mode 100644
index 000000000..7d6ea16a5
--- /dev/null
+++ b/typings/msg/sr.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly sr locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/sv.d.ts b/typings/msg/sv.d.ts
new file mode 100644
index 000000000..11018f261
--- /dev/null
+++ b/typings/msg/sv.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly sv locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/synonyms.d.ts b/typings/msg/synonyms.d.ts
new file mode 100644
index 000000000..93e21974f
--- /dev/null
+++ b/typings/msg/synonyms.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly synonyms locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/ta.d.ts b/typings/msg/ta.d.ts
new file mode 100644
index 000000000..d74bd3c48
--- /dev/null
+++ b/typings/msg/ta.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly ta locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/tcy.d.ts b/typings/msg/tcy.d.ts
new file mode 100644
index 000000000..64278359d
--- /dev/null
+++ b/typings/msg/tcy.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly tcy locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/te.d.ts b/typings/msg/te.d.ts
new file mode 100644
index 000000000..c7acfb0c8
--- /dev/null
+++ b/typings/msg/te.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly te locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/th.d.ts b/typings/msg/th.d.ts
new file mode 100644
index 000000000..bf77eae8b
--- /dev/null
+++ b/typings/msg/th.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly th locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/tl.d.ts b/typings/msg/tl.d.ts
new file mode 100644
index 000000000..0d51a38f3
--- /dev/null
+++ b/typings/msg/tl.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly tl locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/tlh.d.ts b/typings/msg/tlh.d.ts
new file mode 100644
index 000000000..5eb07eb8d
--- /dev/null
+++ b/typings/msg/tlh.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly tlh locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/tr.d.ts b/typings/msg/tr.d.ts
new file mode 100644
index 000000000..2b1a29a02
--- /dev/null
+++ b/typings/msg/tr.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly tr locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/ug-arab.d.ts b/typings/msg/ug-arab.d.ts
new file mode 100644
index 000000000..f9445a560
--- /dev/null
+++ b/typings/msg/ug-arab.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly ug-arab locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/uk.d.ts b/typings/msg/uk.d.ts
new file mode 100644
index 000000000..1250e6cb1
--- /dev/null
+++ b/typings/msg/uk.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly uk locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/ur.d.ts b/typings/msg/ur.d.ts
new file mode 100644
index 000000000..b944aad7f
--- /dev/null
+++ b/typings/msg/ur.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly ur locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/vi.d.ts b/typings/msg/vi.d.ts
new file mode 100644
index 000000000..86a0e7d6f
--- /dev/null
+++ b/typings/msg/vi.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly vi locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/xmf.d.ts b/typings/msg/xmf.d.ts
new file mode 100644
index 000000000..e230058ac
--- /dev/null
+++ b/typings/msg/xmf.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly xmf locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/yo.d.ts b/typings/msg/yo.d.ts
new file mode 100644
index 000000000..29120ab8d
--- /dev/null
+++ b/typings/msg/yo.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly yo locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/zh-hans.d.ts b/typings/msg/zh-hans.d.ts
new file mode 100644
index 000000000..938f55356
--- /dev/null
+++ b/typings/msg/zh-hans.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly zh-hans locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/msg/zh-hant.d.ts b/typings/msg/zh-hant.d.ts
new file mode 100644
index 000000000..f2917aac6
--- /dev/null
+++ b/typings/msg/zh-hant.d.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly zh-hant locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+
diff --git a/typings/php.d.ts b/typings/php.d.ts
new file mode 100644
index 000000000..75f2ef693
--- /dev/null
+++ b/typings/php.d.ts
@@ -0,0 +1,15 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the PHP generator.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import * as Blockly from './core';
+export = Blockly.Generator;
diff --git a/typings/python.d.ts b/typings/python.d.ts
new file mode 100644
index 000000000..ba328145a
--- /dev/null
+++ b/typings/python.d.ts
@@ -0,0 +1,15 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Python generator.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import * as Blockly from './core';
+export = Blockly.Generator;
diff --git a/typings/parts/blockly-header.d.ts b/typings/templates/blockly-header.template
similarity index 100%
rename from typings/parts/blockly-header.d.ts
rename to typings/templates/blockly-header.template
diff --git a/typings/parts/blockly-interfaces.d.ts b/typings/templates/blockly-interfaces.template
similarity index 100%
rename from typings/parts/blockly-interfaces.d.ts
rename to typings/templates/blockly-interfaces.template
diff --git a/typings/templates/msg.template b/typings/templates/msg.template
new file mode 100644
index 000000000..7377e2543
--- /dev/null
+++ b/typings/templates/msg.template
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @fileoverview Type definitions for the Blockly <%= locale %> locale.
+ * @author samelh@google.com (Sam El-Husseini)
+ */
+
+///
+
+import BlocklyMsg = Blockly.Msg;
+export = BlocklyMsg;
+