From e3bf012c20b1c6acfdd08569e21f020ea46ae695 Mon Sep 17 00:00:00 2001 From: Rachel Fenichel Date: Mon, 29 Oct 2018 15:41:43 -0700 Subject: [PATCH 01/85] Use checkboxes instead of dropdowns for generator tests --- tests/generators/index.html | 55 ++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 25 deletions(-) diff --git a/tests/generators/index.html b/tests/generators/index.html index e1e5a1720..fea98344b 100644 --- a/tests/generators/index.html +++ b/tests/generators/index.html @@ -75,6 +75,7 @@ 'use strict'; var demoWorkspace = null; +var outputCode = ''; function start() { demoWorkspace = Blockly.inject('blocklyDiv', @@ -111,11 +112,11 @@ function loadSelected() { // Clear before adding all of the blocks. demoWorkspace.clear(); - var boxList = document.getElementById('checkboxes'); - var inputChildren = boxList.getElementsByTagName('input'); - for (var i = 0; i < inputChildren.length; i++) { - if (inputChildren[i].checked) { - var testUrl = inputChildren[i].value; + var boxList = document.getElementsByClassName('suite_checkbox'); + console.log(boxList.length); + for (var i = 0; i < boxList.length; i++) { + if (boxList[i].checked) { + var testUrl = boxList[i].value; if (testUrl) { var xmlText = fetchFile(testUrl); if (xmlText !== null) { @@ -195,18 +196,17 @@ function fromXml(filename, xmlText, opt_append) { } function checkAll() { - var boxList = document.getElementById('checkboxes'); - var inputChildren = boxList.getElementsByTagName('input'); - for (var i = 0; i < inputChildren.length; i++) { - inputChildren[i].checked = true; + var boxList = document.getElementsByClassName('suite_checkbox'); + console.log(boxList.length) + for (var i = 0; i < boxList.length; i++) { + boxList[i].checked = true; } } function uncheckAll() { - var boxList = document.getElementById('checkboxes'); - var inputChildren = boxList.getElementsByTagName('input'); - for (var i = 0; i < inputChildren.length; i++) { - inputChildren[i].checked = false; + var boxList = document.getElementsByClassName('suite_checkbox'); + for (var i = 0; i < boxList.length; i++) { + boxList[i].checked = false; } } @@ -229,26 +229,31 @@ function toJavaScript() { var code = '\'use strict\';\n\n' code += Blockly.JavaScript.workspaceToCode(demoWorkspace); setOutput(code); + outputCode = code; } function toPython() { var code = Blockly.Python.workspaceToCode(demoWorkspace); setOutput(code); + outputCode = code; } function toPhp() { var code = Blockly.PHP.workspaceToCode(demoWorkspace); setOutput(code); + outputCode = code; } function toLua() { var code = Blockly.Lua.workspaceToCode(demoWorkspace); setOutput(code); + outputCode = code; } function toDart() { var code = Blockly.Dart.workspaceToCode(demoWorkspace); setOutput(code); + outputCode = code; } function changeIndex() { @@ -392,18 +397,18 @@ h1 {
- -
- Logic
- Loops 1 (repeat, while, foreach)
- Loops 2 (count)
- Loops 3 (continue, break)
- Math
- Text
- Lists
- Colour
- Variables
- Functions
+ +
+ Logic
+ Loops 1 (repeat, while, foreach)
+ Loops 2 (count)
+ Loops 3 (continue, break)
+ Math
+ Text
+ Lists
+ Colour
+ Variables
+ Functions

From 200afba1d0c916f73ee84d9d6bca2821aaf3f5c5 Mon Sep 17 00:00:00 2001 From: Rachel Fenichel Date: Tue, 30 Oct 2018 10:47:17 -0700 Subject: [PATCH 02/85] Update version number --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 37bbdc631..31359c180 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "blockly", - "version": "1.20180904.0-develop", + "version": "1.20181030.0-develop", "description": "Blockly is a library for building visual programming editors.", "main": "blockly_node_javascript_en.js", "keywords": [ From ecc555b7f3a7fd6c009b33c0c1801c28f82dd014 Mon Sep 17 00:00:00 2001 From: RoboErikG Date: Wed, 31 Oct 2018 09:52:59 -0700 Subject: [PATCH 03/85] Fix bad xml element when generating next node (#2098) Fixes #2096 We were creating a text node to wrap any block connected to next when we should have just been attaching the generated dom. --- core/xml.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core/xml.js b/core/xml.js index fcae31d5d..6a8ba6e15 100644 --- a/core/xml.js +++ b/core/xml.js @@ -261,8 +261,7 @@ Blockly.Xml.blockToDom = function(block, opt_noId) { var nextBlock = block.getNextBlock(); if (nextBlock) { var container = Blockly.Xml.utils.createElement('next'); - container.appendChild(Blockly.Xml.utils.createTextNode( - Blockly.Xml.blockToDom(nextBlock, opt_noId))); + container.appendChild(Blockly.Xml.blockToDom(nextBlock, opt_noId)); element.appendChild(container); } var shadow = block.nextConnection && block.nextConnection.getShadowDom(); From 29e836770d4c41ffe28cb10559a87b3a4ef8f02e Mon Sep 17 00:00:00 2001 From: Rachel Fenichel Date: Wed, 31 Oct 2018 15:05:28 -0700 Subject: [PATCH 04/85] Remove bad classes --- tests/generators/index.html | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/generators/index.html b/tests/generators/index.html index fea98344b..dbff605dc 100644 --- a/tests/generators/index.html +++ b/tests/generators/index.html @@ -113,7 +113,6 @@ function loadSelected() { demoWorkspace.clear(); var boxList = document.getElementsByClassName('suite_checkbox'); - console.log(boxList.length); for (var i = 0; i < boxList.length; i++) { if (boxList[i].checked) { var testUrl = boxList[i].value; @@ -197,7 +196,6 @@ function fromXml(filename, xmlText, opt_append) { function checkAll() { var boxList = document.getElementsByClassName('suite_checkbox'); - console.log(boxList.length) for (var i = 0; i < boxList.length; i++) { boxList[i].checked = true; } @@ -397,8 +395,8 @@ h1 {

- -
+ +
Logic
Loops 1 (repeat, while, foreach)
Loops 2 (count)
From 275659607d567b539ef0e92e5acbe43d3e0c6f46 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Thu, 1 Nov 2018 08:04:45 +0100 Subject: [PATCH 05/85] Localisation updates from https://translatewiki.net. --- msg/json/ar.json | 3 +++ msg/json/da.json | 4 +++- msg/json/de.json | 3 +++ msg/json/fi.json | 5 ++++- msg/json/fr.json | 6 +++++- msg/json/it.json | 1 + msg/json/pt-br.json | 3 +++ msg/json/pt.json | 6 +++++- msg/json/qqq.json | 9 +++++++++ msg/json/sr.json | 3 +++ msg/json/zh-hant.json | 3 +++ 11 files changed, 42 insertions(+), 4 deletions(-) diff --git a/msg/json/ar.json b/msg/json/ar.json index 7b6337fcf..030cf8520 100644 --- a/msg/json/ar.json +++ b/msg/json/ar.json @@ -209,6 +209,9 @@ "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "كسر عشوائي", "MATH_RANDOM_FLOAT_TOOLTIP": "يرجع جزء عشوائي بين 0.0 (ضمنياً) و 1.0 (خارجيا).", + "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", + "MATH_ATAN2_TITLE": "atan2 من X:%1 Y:%2", + "MATH_ATAN2_TOOLTIP": "عودة قوس ظل النقطة (س، ص) بالدرجات من -180 إلى 180.", "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", "TEXT_TEXT_TOOLTIP": "حرف أو كلمة أو سطر من النص.", "TEXT_JOIN_TITLE_CREATEWITH": "انشئ نص مع", diff --git a/msg/json/da.json b/msg/json/da.json index b8e38b8d2..671a8064c 100644 --- a/msg/json/da.json +++ b/msg/json/da.json @@ -6,7 +6,8 @@ "MGA73", "Mads Haupt", "Tjernobyl", - "Joedalton" + "Joedalton", + "Saederup92" ] }, "VARIABLES_DEFAULT_NAME": "element", @@ -191,6 +192,7 @@ "MATH_RANDOM_FLOAT_HELPURL": "https://da.wikipedia.org/wiki/Tilfældighedsgenerator", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "tilfældigt decimaltal (mellem 0 og 1)", "MATH_RANDOM_FLOAT_TOOLTIP": "Returner et tilfældigt decimaltal mellem 0,0 (inklusiv) og 1,0 (eksklusiv).", + "MATH_ATAN2_TITLE": "atan2 af X:%1 Y:%2", "TEXT_TEXT_HELPURL": "https://da.wikipedia.org/wiki/Tekststreng", "TEXT_TEXT_TOOLTIP": "En bogstav, et ord eller en linje med tekst.", "TEXT_JOIN_TITLE_CREATEWITH": "lav en tekst med", diff --git a/msg/json/de.json b/msg/json/de.json index 02d01fcef..e9cd33d24 100644 --- a/msg/json/de.json +++ b/msg/json/de.json @@ -201,6 +201,9 @@ "MATH_RANDOM_FLOAT_HELPURL": "https://de.wikipedia.org/wiki/Zufallszahlen", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "Zufallszahl (0.0 - 1.0)", "MATH_RANDOM_FLOAT_TOOLTIP": "Erzeugt eine Zufallszahl zwischen 0.0 (inklusiv) und 1.0 (exklusiv).", + "MATH_ATAN2_HELPURL": "https://de.wikipedia.org/wiki/Arctan2", + "MATH_ATAN2_TITLE": "atan2 von X:%1 Y:%2", + "MATH_ATAN2_TOOLTIP": "Gibt den Arkustangens des Punktes (X, Y) in Grad von -180 bis 180 zurück.", "TEXT_TEXT_HELPURL": "https://de.wikipedia.org/wiki/Zeichenkette", "TEXT_TEXT_TOOLTIP": "Ein Buchstabe, Text oder Satz.", "TEXT_JOIN_HELPURL": "", diff --git a/msg/json/fi.json b/msg/json/fi.json index dcb5bffa2..254117043 100644 --- a/msg/json/fi.json +++ b/msg/json/fi.json @@ -20,6 +20,7 @@ "DUPLICATE_BLOCK": "Kaksoiskappale", "ADD_COMMENT": "Lisää kommentti", "REMOVE_COMMENT": "Poista kommentti", + "DUPLICATE_COMMENT": "Kahdenna kommentti", "EXTERNAL_INPUTS": "Ulkoiset syötteet", "INLINE_INPUTS": "Tuo syötteet", "DELETE_BLOCK": "Poista lohko", @@ -327,6 +328,7 @@ "LISTS_SPLIT_WITH_DELIMITER": "erottimen kanssa", "LISTS_SPLIT_TOOLTIP_SPLIT": "Jaa teksti osiin erotinmerkin perusteella ja järjestä osat listaksi.", "LISTS_SPLIT_TOOLTIP_JOIN": "Yhdistä luettelon tekstit yhdeksi tekstiksi, erotettuina välimerkillä.", + "LISTS_REVERSE_MESSAGE0": "%1 takaperin", "VARIABLES_GET_TOOLTIP": "Palauttaa muuttujan arvon.", "VARIABLES_GET_CREATE_SET": "Luo 'aseta %1'", "VARIABLES_SET": "aseta %1 arvoksi %2", @@ -354,5 +356,6 @@ "PROCEDURES_CREATE_DO": "Luo '%1'", "PROCEDURES_IFRETURN_TOOLTIP": "Jos arvo on tosi, palauta toinen arvo.", "PROCEDURES_IFRETURN_HELPURL": "http://c2.com/cgi/wiki?GuardClause", - "PROCEDURES_IFRETURN_WARNING": "Varoitus: tätä lohkoa voi käyttää vain funktion määrityksessä." + "PROCEDURES_IFRETURN_WARNING": "Varoitus: tätä lohkoa voi käyttää vain funktion määrityksessä.", + "WORKSPACE_COMMENT_DEFAULT_TEXT": "Sano jotakin..." } diff --git a/msg/json/fr.json b/msg/json/fr.json index e7695bcc5..323d88261 100644 --- a/msg/json/fr.json +++ b/msg/json/fr.json @@ -13,7 +13,8 @@ "Vexthedorito", "Urhixidur", "RoboErikG", - "Zarisi" + "Zarisi", + "Alacabe" ] }, "VARIABLES_DEFAULT_NAME": "élément", @@ -201,6 +202,9 @@ "MATH_RANDOM_FLOAT_HELPURL": "https://fr.wikipedia.org/wiki/G%C3%A9n%C3%A9rateur_de_nombres_al%C3%A9atoires", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "fraction aléatoire", "MATH_RANDOM_FLOAT_TOOLTIP": "Renvoyer une fraction aléatoire entre 0.0 (inclus) et 1.0 (exclus).", + "MATH_ATAN2_HELPURL": "https://fr.wikipedia.org/wiki/Atan2", + "MATH_ATAN2_TITLE": "atan2 de X:%1 Y:%2", + "MATH_ATAN2_TOOLTIP": "Renvoie l'arc tangente du point (X, Y) en degrés entre -180 et 180.", "TEXT_TEXT_HELPURL": "https://fr.wikipedia.org/wiki/Cha%C3%AEne_de_caract%C3%A8res", "TEXT_TEXT_TOOLTIP": "Une lettre, un mot ou une ligne de texte.", "TEXT_JOIN_TITLE_CREATEWITH": "créer un texte avec", diff --git a/msg/json/it.json b/msg/json/it.json index e67414201..21de197a0 100644 --- a/msg/json/it.json +++ b/msg/json/it.json @@ -191,6 +191,7 @@ "MATH_RANDOM_FLOAT_HELPURL": "https://it.wikipedia.org/wiki/Numeri_pseudo-casuali", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "frazione casuale", "MATH_RANDOM_FLOAT_TOOLTIP": "Restituisce una frazione compresa fra 0.0 (incluso) e 1.0 (escluso).", + "MATH_ATAN2_HELPURL": "https://it.wikipedia.org/wiki/Arcotangente2", "TEXT_TEXT_HELPURL": "https://it.wikipedia.org/wiki/Stringa_(informatica)", "TEXT_TEXT_TOOLTIP": "Una lettera, una parola o una linea di testo.", "TEXT_JOIN_TITLE_CREATEWITH": "crea testo con", diff --git a/msg/json/pt-br.json b/msg/json/pt-br.json index aff2437fe..6c91cf1bc 100644 --- a/msg/json/pt-br.json +++ b/msg/json/pt-br.json @@ -206,6 +206,9 @@ "MATH_RANDOM_FLOAT_HELPURL": "https://pt.wikipedia.org/wiki/Gerador_de_n%C3%BAmeros_pseudoaleat%C3%B3rios", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "fração aleatória", "MATH_RANDOM_FLOAT_TOOLTIP": "Retorna uma fração aleatória entre 0.0 (inclusivo) e 1.0 (exclusivo).", + "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", + "MATH_ATAN2_TITLE": "atan2 de X:%1 Y:%2", + "MATH_ATAN2_TOOLTIP": "Retorne o arco tangente do ponto (X, Y) em graus de -180 a 180.", "TEXT_TEXT_HELPURL": "https://pt.wikipedia.org/wiki/Cadeia_de_caracteres", "TEXT_TEXT_TOOLTIP": "Uma letra, palavra ou linha de texto.", "TEXT_JOIN_TITLE_CREATEWITH": "criar texto com", diff --git a/msg/json/pt.json b/msg/json/pt.json index 9c6f5af1c..3e9844fc3 100644 --- a/msg/json/pt.json +++ b/msg/json/pt.json @@ -14,7 +14,8 @@ "Vicng", "MokaAkashiyaPT", "Athena in Wonderland", - "McDutchie" + "McDutchie", + "Hamilton Abreu" ] }, "VARIABLES_DEFAULT_NAME": "item", @@ -213,6 +214,9 @@ "MATH_RANDOM_FLOAT_HELPURL": "http://pt.wikipedia.org/wiki/N%C3%BAmero_aleat%C3%B3rio", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "fração aleatória", "MATH_RANDOM_FLOAT_TOOLTIP": "Insere uma fração aleatória entre 0.0 (inclusive) e 1.0 (exclusive).", + "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", + "MATH_ATAN2_TITLE": "atan2 de X:%1 Y:%2", + "MATH_ATAN2_TOOLTIP": "Devolver o arco tangente do ponto (X, Y) em graus entre -180 e 180.", "TEXT_TEXT_HELPURL": "http://pt.wikipedia.org/wiki/Cadeia_de_caracteres", "TEXT_TEXT_TOOLTIP": "Uma letra, palavra ou linha de texto.", "TEXT_JOIN_TITLE_CREATEWITH": "criar texto com", diff --git a/msg/json/qqq.json b/msg/json/qqq.json index 039e4e3a4..b58fe9655 100644 --- a/msg/json/qqq.json +++ b/msg/json/qqq.json @@ -1,4 +1,13 @@ { + "@metadata": { + "authors": [ + "Espertus", + "Liuxinyu970226", + "Metalhead64", + "Robby", + "Shirayuki" + ] + }, "VARIABLES_DEFAULT_NAME": "default name - A simple, general default name for a variable, preferably short. For more context, see [[Translating:Blockly#infrequent_message_types]].\n{{Identical|Item}}", "TODAY": "button text - Button that sets a calendar to today's date.\n{{Identical|Today}}", "DUPLICATE_BLOCK": "context menu - Make a copy of the selected block (and any blocks it contains).\n{{Identical|Duplicate}}", diff --git a/msg/json/sr.json b/msg/json/sr.json index ae2694e71..7aab14d1a 100644 --- a/msg/json/sr.json +++ b/msg/json/sr.json @@ -207,6 +207,9 @@ "MATH_RANDOM_FLOAT_HELPURL": "https://sr.wikipedia.org/wiki/Генератор_случајних_бројева", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "случајни разломак", "MATH_RANDOM_FLOAT_TOOLTIP": "Враћа случајни разломак између 0.0 (укључиво) и 1.0 (искључиво).", + "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", + "MATH_ATAN2_TITLE": "атан2 од X:%1 Y:%2", + "MATH_ATAN2_TOOLTIP": "Врати арктангенту тачке (X, Y) у степенима од -180 до 180.", "TEXT_TEXT_HELPURL": "https://sr.wikipedia.org/wiki/Ниска", "TEXT_TEXT_TOOLTIP": "Слово, реч или ред текста.", "TEXT_JOIN_TITLE_CREATEWITH": "напиши текст са", diff --git a/msg/json/zh-hant.json b/msg/json/zh-hant.json index 629dc40d9..2eefefa56 100644 --- a/msg/json/zh-hant.json +++ b/msg/json/zh-hant.json @@ -196,6 +196,9 @@ "MATH_RANDOM_FLOAT_HELPURL": "https://zh.wikipedia.org/wiki/隨機數生成器", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "隨機取分數", "MATH_RANDOM_FLOAT_TOOLTIP": "在 0.0(包含)和 1.0(不包含)之間隨機取一個數。", + "MATH_ATAN2_HELPURL": "https://zh.wikipedia.org/wiki/Atan2", + "MATH_ATAN2_TITLE": "X:%1 Y:%2 的 Atan2", + "MATH_ATAN2_TOOLTIP": "回傳點(X,Y)從 -180 至 180 度的反正切值。", "TEXT_TEXT_HELPURL": "https://zh.wikipedia.org/wiki/字串", "TEXT_TEXT_TOOLTIP": "一個字元、一個單詞,或一串文字。", "TEXT_JOIN_TITLE_CREATEWITH": "字串組合", From d582c379745e614d83ec0225b64026ccaddc26b1 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 5 Nov 2018 08:39:49 +0100 Subject: [PATCH 06/85] Localisation updates from https://translatewiki.net. --- msg/json/be-tarask.json | 3 +++ msg/json/da.json | 1 + msg/json/ko.json | 1 + msg/json/pms.json | 3 +++ msg/json/ru.json | 4 +++- msg/json/sv.json | 8 ++++++-- msg/json/tr.json | 3 +++ msg/json/zh-hans.json | 5 ++++- 8 files changed, 24 insertions(+), 4 deletions(-) diff --git a/msg/json/be-tarask.json b/msg/json/be-tarask.json index c4c0aaf31..7453df9c0 100644 --- a/msg/json/be-tarask.json +++ b/msg/json/be-tarask.json @@ -187,6 +187,9 @@ "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "выпадковая дроб", "MATH_RANDOM_FLOAT_TOOLTIP": "Вяртае выпадковую дроб у дыяпазоне ад 0,0 (уключна) да 1,0.", + "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", + "MATH_ATAN2_TITLE": "atan2 ад X:%1 Y:%2", + "MATH_ATAN2_TOOLTIP": "Вяртае арктангенс пункту (X, Y) у градусах ад -180 да 180.", "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", "TEXT_TEXT_TOOLTIP": "Літара, слова ці радок тэксту.", "TEXT_JOIN_TITLE_CREATEWITH": "стварыць тэкст з", diff --git a/msg/json/da.json b/msg/json/da.json index 671a8064c..806636574 100644 --- a/msg/json/da.json +++ b/msg/json/da.json @@ -192,6 +192,7 @@ "MATH_RANDOM_FLOAT_HELPURL": "https://da.wikipedia.org/wiki/Tilfældighedsgenerator", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "tilfældigt decimaltal (mellem 0 og 1)", "MATH_RANDOM_FLOAT_TOOLTIP": "Returner et tilfældigt decimaltal mellem 0,0 (inklusiv) og 1,0 (eksklusiv).", + "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", "MATH_ATAN2_TITLE": "atan2 af X:%1 Y:%2", "TEXT_TEXT_HELPURL": "https://da.wikipedia.org/wiki/Tekststreng", "TEXT_TEXT_TOOLTIP": "En bogstav, et ord eller en linje med tekst.", diff --git a/msg/json/ko.json b/msg/json/ko.json index 12f082c17..d59cf2c2a 100644 --- a/msg/json/ko.json +++ b/msg/json/ko.json @@ -219,6 +219,7 @@ "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "임의 분수", "MATH_RANDOM_FLOAT_TOOLTIP": "0.0 (포함)과 1.0 (배타적) 사이의 임의 분수 값을 돌려줍니다.", + "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", "TEXT_TEXT_HELPURL": "https://ko.wikipedia.org/wiki/문자열", "TEXT_TEXT_TOOLTIP": "문자, 단어, 문장.", "TEXT_JOIN_HELPURL": "https://github.com/google/blockly/wiki/Text#text-creation", diff --git a/msg/json/pms.json b/msg/json/pms.json index 6bdc32fc0..e5e4b803f 100644 --- a/msg/json/pms.json +++ b/msg/json/pms.json @@ -185,6 +185,9 @@ "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "frassion aleatòria", "MATH_RANDOM_FLOAT_TOOLTIP": "A smon na frassion aleatòria antra 0,0 (comprèis) e 1,0 (esclus).", + "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", + "MATH_ATAN2_TITLE": "atan2 ëd X:%1 Y:%2", + "MATH_ATAN2_TOOLTIP": "A rëspond con l'arch-tangent dël pont (X, Y) an gre da -180 a 180.", "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", "TEXT_TEXT_TOOLTIP": "Na litra, na paròla o na linia ëd test.", "TEXT_JOIN_TITLE_CREATEWITH": "creé ël test con", diff --git a/msg/json/ru.json b/msg/json/ru.json index dbf057a7e..7ef80d209 100644 --- a/msg/json/ru.json +++ b/msg/json/ru.json @@ -12,7 +12,8 @@ "Helpau", "SimondR", "Mouse21", - "Movses" + "Movses", + "Vlad5250" ] }, "VARIABLES_DEFAULT_NAME": "элемент", @@ -198,6 +199,7 @@ "MATH_RANDOM_FLOAT_HELPURL": "https://ru.wikipedia.org/wiki/Генератор_псевдослучайных_чисел", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "случайное число от 0 (включительно) до 1", "MATH_RANDOM_FLOAT_TOOLTIP": "Возвращает случайное число от 0.0 (включительно) до 1.0.", + "MATH_ATAN2_TOOLTIP": "Возвращает арктангенс точки (X, Y) в градусах от -180 до 180.", "TEXT_TEXT_HELPURL": "https://ru.wikipedia.org/wiki/Строковый_тип", "TEXT_TEXT_TOOLTIP": "Буква, слово или строка текста.", "TEXT_JOIN_TITLE_CREATEWITH": "создать текст из", diff --git a/msg/json/sv.json b/msg/json/sv.json index a350616ab..f0473dbc5 100644 --- a/msg/json/sv.json +++ b/msg/json/sv.json @@ -5,7 +5,8 @@ "WikiPhoenix", "Abbedabb", "Aaoo", - "아라" + "아라", + "Eldaria" ] }, "VARIABLES_DEFAULT_NAME": "föremål", @@ -19,7 +20,7 @@ "DELETE_BLOCK": "Radera block", "DELETE_X_BLOCKS": "Radera %1 block", "DELETE_ALL_BLOCKS": "Radera alla %1 block?", - "CLEAN_UP": "Rada upp block", + "CLEAN_UP": "Städa upp block", "COLLAPSE_BLOCK": "Fäll ihop block", "COLLAPSE_ALL": "Fäll ihop block", "EXPAND_BLOCK": "Fäll ut block", @@ -204,6 +205,9 @@ "MATH_RANDOM_FLOAT_HELPURL": "https://sv.wikipedia.org/wiki/Slumptalsgenerator", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "slumpat decimaltal", "MATH_RANDOM_FLOAT_TOOLTIP": "Ger tillbaka ett slumpat decimaltal mellan 0.0 (inkluderat) och 1.0 (exkluderat).", + "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", + "MATH_ATAN2_TITLE": "atan2 av X:%1 Y:%2", + "MATH_ATAN2_TOOLTIP": "Returnerar arcustangens av punkt (X, Y) i grader från -180 till 180.", "TEXT_TEXT_HELPURL": "https://sv.wikipedia.org/wiki/Str%C3%A4ng_%28data%29", "TEXT_TEXT_TOOLTIP": "En bokstav, ord eller textrad.", "TEXT_JOIN_TITLE_CREATEWITH": "skapa text med", diff --git a/msg/json/tr.json b/msg/json/tr.json index 6ae71ccb3..ca90c3bea 100644 --- a/msg/json/tr.json +++ b/msg/json/tr.json @@ -217,6 +217,9 @@ "MATH_RANDOM_FLOAT_HELPURL": "https://tr.wikipedia.org/wiki/Rastgele_say%C4%B1_%C3%BCretimi", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "Rast gele kesirli sayı , yada parça", "MATH_RANDOM_FLOAT_TOOLTIP": "0.0(dahil) ve 1.0 (hariç) sayıları arasında bir sayı döndür .", + "MATH_ATAN2_HELPURL": "https://en.wikipedia.org/wiki/Atan2", + "MATH_ATAN2_TITLE": "atan2, X:%1 Y:%2", + "MATH_ATAN2_TOOLTIP": "Noktanın (X, Y) arktanjantını -180 ila 180 derece arasında döndürün.", "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", "TEXT_TEXT_TOOLTIP": "Metnin bir harfi,kelimesi veya satırı.", "TEXT_JOIN_TITLE_CREATEWITH": "ile metin oluştur", diff --git a/msg/json/zh-hans.json b/msg/json/zh-hans.json index 51ee449c0..10485de84 100644 --- a/msg/json/zh-hans.json +++ b/msg/json/zh-hans.json @@ -13,7 +13,8 @@ "Duzc2", "Tonylianlong", "WindWood", - "Deathkon" + "Deathkon", + "Muhaoying" ] }, "VARIABLES_DEFAULT_NAME": "项目", @@ -199,6 +200,8 @@ "MATH_RANDOM_FLOAT_HELPURL": "https://zh.wikipedia.org/wiki/随机数生成器", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "随机小数", "MATH_RANDOM_FLOAT_TOOLTIP": "返回一个介于0.0到1.0之间(含边界)的随机数。", + "MATH_ATAN2_HELPURL": "https://zh.wikipedia.org/wiki/反正切2", + "MATH_ATAN2_TITLE": "点(x,y)的反正切", "TEXT_TEXT_HELPURL": "https://zh.wikipedia.org/wiki/字符串", "TEXT_TEXT_TOOLTIP": "一个字、词语或一行文本。", "TEXT_JOIN_TITLE_CREATEWITH": "建立文本从", From 280fa51597796410daa84a39e89c551e03061617 Mon Sep 17 00:00:00 2001 From: Neil Fraser Date: Mon, 5 Nov 2018 09:38:24 -0800 Subject: [PATCH 07/85] =?UTF-8?q?Don=E2=80=99t=20move=20immovable=20blocks?= =?UTF-8?q?=20in=20workspace=20cleanup.=20(#2104)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/workspace_svg.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/workspace_svg.js b/core/workspace_svg.js index 5f5a462d9..7484650e8 100644 --- a/core/workspace_svg.js +++ b/core/workspace_svg.js @@ -1285,6 +1285,9 @@ Blockly.WorkspaceSvg.prototype.cleanUp = function() { var topBlocks = this.getTopBlocks(true); var cursorY = 0; for (var i = 0, block; block = topBlocks[i]; i++) { + if (!block.isMovable()) { + continue; + } var xy = block.getRelativeToSurfaceXY(); block.moveBy(-xy.x, cursorY - xy.y); block.snapToGrid(); From 9e9e566d89723e5cf87ea4336ea4ac5f9b825d2f Mon Sep 17 00:00:00 2001 From: Rachel Fenichel Date: Mon, 29 Oct 2018 15:42:20 -0700 Subject: [PATCH 08/85] add test skeleton --- .../run_js_generator_tests_in_browser.js | 136 ++++++++++++++++++ tests/run_all_tests.sh | 8 +- 2 files changed, 140 insertions(+), 4 deletions(-) create mode 100644 tests/generators/run_js_generator_tests_in_browser.js diff --git a/tests/generators/run_js_generator_tests_in_browser.js b/tests/generators/run_js_generator_tests_in_browser.js new file mode 100644 index 000000000..66e984e1e --- /dev/null +++ b/tests/generators/run_js_generator_tests_in_browser.js @@ -0,0 +1,136 @@ +/** + * @license + * Visual Blocks Editor + * + * Copyright 2018 Google Inc. + * https://developers.google.com/blockly/ + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @fileoverview Node.js script to run JsUnit tests in Chrome, via webdriver. + */ +var webdriverio = require('webdriverio'); + +/* + * Notes + * this.execute runs the code in the browser's context (which is what I want). + * this is browser in most of the webdriverio examples. + * tests currently fail because of CORS restrictions. Oh, that's because it's + * running in chrome. let's try making it run in firefox before giving up and + * figuring out how to start a server. + * in firefox it pops up the alerts about it but also still works. so uh... + */ +/** + * Runs the JsUnit tests in this directory in Chrome. It uses webdriverio to + * launch Chrome and load index.html. Outputs a summary of the test results + * to the console. + * @return the Thenable managing the processing of the browser tests. + */ +function runJsGeneratorTestsInBrowser() { + var options = { + desiredCapabilities: { + browserName: 'firefox' + } + }; + + var url = 'file://' + __dirname + '/index.html'; + console.log('Starting webdriverio...'); + return webdriverio + .remote(options) + .init() + .then(function() { + console.log('Initialized.\nLoading url: ' + url); + }) + .url(url) + .then(function() { + console.log('Loaded.\nPausing to allow processing.'); + }) + .pause(1000) + .then(function() { + this.execute( function() { + checkAll(); + loadSelected(); + }) + // var logs = this.log('browser') + // console.log('============Start Browser Logs================='); + // console.log(logs); + // console.log('============End Browser Logs================='); + }) + .pause(15000) + .then(function() { + this.execute(function() { + toJavaScript(); + console.log('Code generated'); + eval(outputCode); + }) + }) //TODO: change pause to waitunitl + // .then(function() { + // console.log('Retrieving results...'); + // }) + // .getHTML('#closureTestRunnerLog') + // .then(function(result) { + // // call js to parse html + // var regex = /[\d]+\spassed,\s([\d]+)\sfailed./i; + // var numOfFailure = regex.exec(result)[1]; + // var regex2 = /Unit Tests for Blockly .*]/; + // var testStatus = regex2.exec(result)[0]; + // console.log('============Blockly Unit Test Summary================='); + // console.log(testStatus); + // var regex3 = /\d+ passed,\s\d+ failed/; + // var detail = regex3.exec(result)[0]; + // console.log(detail); + // console.log('============Blockly Unit Test Summary================='); + // if (parseInt(numOfFailure) !== 0) { + // console.log(result); + // process.exit(1); + // } + // }) + .pause(10000) + .catch(function(e) { + console.error('Error: ', e); + + if (require.main === module) { + // .catch() doesn't seem to work in the calling code, + // even if the error is rethrown. To ensure the script + // exit code is non-zero, shutdown the process here. + process.exit(1); + } + + // WARNING: Catching this outside of runJsUnitTestsInBrowser() is not + // working. However, killing the process doesn't seem good, either. + throw e; + }); +} + +module.exports = runJsGeneratorTestsInBrowser; + +if (require.main === module) { + try { + runJsGeneratorTestsInBrowser() + .catch(function(e) { + // TODO: Never called during errors. Fix. + console.error('Error: ' + e); + process.exit(1); + }) + .endAll() + .then(function() { + console.log('JSUnit tests completed'); + process.exit(0); + }); + } catch(e) { + console.error('Uncaught error: ', e); + process.exit(1); + } +} diff --git a/tests/run_all_tests.sh b/tests/run_all_tests.sh index ae6b8ca3b..537c2bd71 100755 --- a/tests/run_all_tests.sh +++ b/tests/run_all_tests.sh @@ -52,15 +52,15 @@ run_test_command () { # Setup the environment (Chrome, Selenium, etc.) run_test_command "test_setup" "tests/scripts/test_setup.sh" -# Lint the codebase. -run_test_command "eslint" "eslint ." +# # Lint the codebase. +# run_test_command "eslint" "eslint ." # Run JSUnit tests inside a browser. run_test_command "jsunit" "node tests/jsunit/run_jsunit_tests_in_browser.js" # TODO: Make sure jsunit output is captured. Child process? -# Attempt advanced compilation of a Blockly app. -run_test_command "compile" "tests/compile/compile.sh" +# # Attempt advanced compilation of a Blockly app. +# run_test_command "compile" "tests/compile/compile.sh" # End of tests. From a248c012f4e92f06a98ea9fcd1736e6064180874 Mon Sep 17 00:00:00 2001 From: Rachel Fenichel Date: Thu, 1 Nov 2018 16:32:55 -0700 Subject: [PATCH 09/85] Run generator tests and save a file with the generated js! --- tests/generators/index.html | 24 +++++++++++++++++++ .../run_js_generator_tests_in_browser.js | 16 +++++++++++++ tests/run_all_tests.sh | 5 +++- 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/tests/generators/index.html b/tests/generators/index.html index dbff605dc..672bbbabe 100644 --- a/tests/generators/index.html +++ b/tests/generators/index.html @@ -259,6 +259,27 @@ function changeIndex() { demoWorkspace.options.oneBasedIndex = oneBasedIndex; demoWorkspace.toolbox_.flyout_.workspace_.options.oneBasedIndex = oneBasedIndex; } + +//https://stackoverflow.com/a/18197341 +function download(filename, text) { + var element = document.createElement('a'); + element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text)); + element.setAttribute('download', filename); + + element.style.display = 'none'; + document.body.appendChild(element); + + element.click(); + + document.body.removeChild(element); +} + +function downloadOutputCode() { + + console.log('clicked!'); + download('outputcode.js', outputCode); + console.log('and done'); +}