diff --git a/appengine/app.yaml b/appengine/app.yaml index 38b041c68..32fe41181 100644 --- a/appengine/app.yaml +++ b/appengine/app.yaml @@ -110,3 +110,18 @@ handlers: upload: robots\.txt secure: always + +skip_files: +# App Engine default patterns. +- ^(.*/)?#.*#$ +- ^(.*/)?.*~$ +- ^(.*/)?.*\.py[co]$ +- ^(.*/)?.*/RCS/.*$ +- ^(.*/)?\..*$ +# Custom skip patterns. +- ^static/appengine/.*$ +- ^static/apps/json/.*$ +- ^static/apps/_soy/.+\.jar$ +- ^static/i18n/.*$ +- ^static/msg/json/.*$ +- ^.+\.soy$ diff --git a/appengine/apple-touch-icon.png b/appengine/apple-touch-icon.png index ae6287491..455abac2d 100644 Binary files a/appengine/apple-touch-icon.png and b/appengine/apple-touch-icon.png differ diff --git a/apps/blockfactory/blocks.js b/apps/blockfactory/blocks.js index 6b993fdb5..40b97c03f 100644 --- a/apps/blockfactory/blocks.js +++ b/apps/blockfactory/blocks.js @@ -40,10 +40,10 @@ Blockly.Blocks['factory_base'] = { .appendField(dropdown, 'INLINE'); dropdown = new Blockly.FieldDropdown([ ['no connections', 'NONE'], - ['left output', 'LEFT'], - ['top+bottom connections', 'BOTH'], - ['top connection', 'TOP'], - ['bottom connection', 'BOTTOM']], + ['← left output', 'LEFT'], + ['↕ top+bottom connections', 'BOTH'], + ['↑ top connection', 'TOP'], + ['↓ bottom connection', 'BOTTOM']], function(option) { var block = this.sourceBlock_; var outputExists = block.getInput('OUTPUTTYPE'); @@ -276,12 +276,13 @@ Blockly.Blocks['field_dropdown'] = { } }, decompose: function(workspace) { - var containerBlock = new Blockly.Block(workspace, - 'field_dropdown_container'); + var containerBlock = + Blockly.Block.obtain(workspace, 'field_dropdown_container'); containerBlock.initSvg(); var connection = containerBlock.getInput('STACK').connection; for (var x = 0; x < this.optionCount_; x++) { - var optionBlock = new Blockly.Block(workspace, 'field_dropdown_option'); + var optionBlock = + Blockly.Block.obtain(workspace, 'field_dropdown_option'); optionBlock.initSvg(); connection.connect(optionBlock.previousConnection); connection = optionBlock.nextConnection; @@ -483,12 +484,12 @@ Blockly.Blocks['type_group'] = { } }, decompose: function(workspace) { - var containerBlock = new Blockly.Block(workspace, - 'type_group_container'); + var containerBlock = + Blockly.Block.obtain(workspace, 'type_group_container'); containerBlock.initSvg(); var connection = containerBlock.getInput('STACK').connection; for (var x = 0; x < this.typeCount_; x++) { - var typeBlock = new Blockly.Block(workspace, 'type_group_item'); + var typeBlock = Blockly.Block.obtain(workspace, 'type_group_item'); typeBlock.initSvg(); connection.connect(typeBlock.previousConnection); connection = typeBlock.nextConnection; @@ -655,10 +656,9 @@ function fieldNameCheck(referenceBlock) { var blocks = referenceBlock.workspace.getAllBlocks(); for (var x = 0, block; block = blocks[x]; x++) { var otherName = block.getFieldValue('FIELDNAME'); - if (otherName) { - if (otherName.toLowerCase() == name) { - count++; - } + if (!block.disabled && !block.getInheritedDisabled() && + otherName && otherName.toLowerCase() == name) { + count++; } } var msg = (count > 1) ? @@ -677,10 +677,9 @@ function inputNameCheck(referenceBlock) { var blocks = referenceBlock.workspace.getAllBlocks(); for (var x = 0, block; block = blocks[x]; x++) { var otherName = block.getFieldValue('INPUTNAME'); - if (otherName) { - if (otherName.toLowerCase() == name) { - count++; - } + if (!block.disabled && !block.getInheritedDisabled() && + otherName && otherName.toLowerCase() == name) { + count++; } } var msg = (count > 1) ? diff --git a/apps/blockfactory/factory.js b/apps/blockfactory/factory.js index 5f8fc8d9f..5a0e133f4 100644 --- a/apps/blockfactory/factory.js +++ b/apps/blockfactory/factory.js @@ -23,12 +23,6 @@ */ 'use strict'; -/** - * The uneditable container block that everything else attaches to. - * @type {Blockly.Block} - */ -var rootBlock = null; - /** * The type of the generated block. */ @@ -47,7 +41,11 @@ function initPreview(updateFunc) { * When the workspace changes, update the three other displays. */ function onchange() { - var name = rootBlock.getFieldValue('NAME'); + var name = ''; + var rootBlock = getRootBlock(); + if (rootBlock) { + name = rootBlock.getFieldValue('NAME'); + } blockType = name.replace(/\W/g, '_').replace(/^(\d)/, '_\\1').toLowerCase(); if (!blockType) { blockType = 'unnamed'; @@ -64,67 +62,72 @@ function updateLanguage() { // Generate name. var code = []; code.push("Blockly.Blocks['" + blockType + "'] = {"); - code.push(" init: function() {"); - code.push(" this.setHelpUrl('http://www.example.com/');"); - // Generate colour. - var colourBlock = rootBlock.getInputTargetBlock('COLOUR'); - if (colourBlock) { - var hue = parseInt(colourBlock.getFieldValue('HUE'), 10); - code.push(' this.setColour(' + hue + ');'); - } - // Generate inputs. - var TYPES = {'input_value': 'appendValueInput', - 'input_statement': 'appendStatementInput', - 'input_dummy': 'appendDummyInput'}; - var inputVarDefined = false; - var contentsBlock = rootBlock.getInputTargetBlock('INPUTS'); - while (contentsBlock) { - var align = contentsBlock.getFieldValue('ALIGN'); - var fields = getFields(contentsBlock.getInputTargetBlock('FIELDS')); - var name = ''; - // Dummy inputs don't have names. Other inputs do. - if (contentsBlock.type != 'input_dummy') { - name = escapeString(contentsBlock.getFieldValue('INPUTNAME')); + var rootBlock = getRootBlock(); + if (rootBlock) { + code.push(" init: function() {"); + code.push(" this.setHelpUrl('http://www.example.com/');"); + // Generate colour. + var colourBlock = rootBlock.getInputTargetBlock('COLOUR'); + if (colourBlock && !colourBlock.disabled) { + var hue = parseInt(colourBlock.getFieldValue('HUE'), 10); + code.push(' this.setColour(' + hue + ');'); } - var check = getOptTypesFrom(contentsBlock, 'TYPE'); - code.push(' this.' + TYPES[contentsBlock.type] + - '(' + name + ')'); - if (check && check != 'null') { - code.push(' .setCheck(' + check + ')'); + // Generate inputs. + var TYPES = {'input_value': 'appendValueInput', + 'input_statement': 'appendStatementInput', + 'input_dummy': 'appendDummyInput'}; + var inputVarDefined = false; + var contentsBlock = rootBlock.getInputTargetBlock('INPUTS'); + while (contentsBlock) { + if (!contentsBlock.disabled && !contentsBlock.getInheritedDisabled()) { + var align = contentsBlock.getFieldValue('ALIGN'); + var fields = getFields(contentsBlock.getInputTargetBlock('FIELDS')); + var name = ''; + // Dummy inputs don't have names. Other inputs do. + if (contentsBlock.type != 'input_dummy') { + name = escapeString(contentsBlock.getFieldValue('INPUTNAME')); + } + var check = getOptTypesFrom(contentsBlock, 'TYPE'); + code.push(' this.' + TYPES[contentsBlock.type] + + '(' + name + ')'); + if (check && check != 'null') { + code.push(' .setCheck(' + check + ')'); + } + if (align != 'LEFT') { + code.push(' .setAlign(Blockly.ALIGN_' + align + ')'); + } + for (var x = 0; x < fields.length; x++) { + code.push(' .appendField(' + fields[x] + ')'); + } + // Add semicolon to last line to finish the statement. + code[code.length - 1] += ';'; + } + contentsBlock = contentsBlock.nextConnection && + contentsBlock.nextConnection.targetBlock(); } - if (align != 'LEFT') { - code.push(' .setAlign(Blockly.ALIGN_' + align + ')'); + // Generate inline/external switch. + if (rootBlock.getFieldValue('INLINE') == 'INT') { + code.push(' this.setInputsInline(true);'); } - for (var x = 0; x < fields.length; x++) { - code.push(' .appendField(' + fields[x] + ')'); + // Generate output, or next/previous connections. + switch (rootBlock.getFieldValue('CONNECTIONS')) { + case 'LEFT': + code.push(connectionLine_('setOutput', 'OUTPUTTYPE')); + break; + case 'BOTH': + code.push(connectionLine_('setPreviousStatement', 'TOPTYPE')); + code.push(connectionLine_('setNextStatement', 'BOTTOMTYPE')); + break; + case 'TOP': + code.push(connectionLine_('setPreviousStatement', 'TOPTYPE')); + break; + case 'BOTTOM': + code.push(connectionLine_('setNextStatement', 'BOTTOMTYPE')); + break; } - // Add semicolon to last line to finish the statement. - code[code.length - 1] += ';'; - contentsBlock = contentsBlock.nextConnection && - contentsBlock.nextConnection.targetBlock(); + code.push(" this.setTooltip('');"); + code.push(" }"); } - // Generate inline/external switch. - if (rootBlock.getFieldValue('INLINE') == 'INT') { - code.push(' this.setInputsInline(true);'); - } - // Generate output, or next/previous connections. - switch (rootBlock.getFieldValue('CONNECTIONS')) { - case 'LEFT': - code.push(connectionLine_('setOutput', 'OUTPUTTYPE')); - break; - case 'BOTH': - code.push(connectionLine_('setPreviousStatement', 'TOPTYPE')); - code.push(connectionLine_('setNextStatement', 'BOTTOMTYPE')); - break; - case 'TOP': - code.push(connectionLine_('setPreviousStatement', 'TOPTYPE')); - break; - case 'BOTTOM': - code.push(connectionLine_('setNextStatement', 'BOTTOMTYPE')); - break; - } - code.push(" this.setTooltip('');"); - code.push(" }"); code.push("};"); injectCode(code, 'languagePre'); @@ -138,7 +141,7 @@ function updateLanguage() { * @private */ function connectionLine_(functionName, typeName) { - var type = getOptTypesFrom(rootBlock, typeName); + var type = getOptTypesFrom(getRootBlock(), typeName); if (type) { type = ', ' + type; } @@ -153,66 +156,68 @@ function connectionLine_(functionName, typeName) { function getFields(block) { var fields = []; while (block) { - switch (block.type) { - case 'field_static': - // Result: 'hello' - fields.push(escapeString(block.getFieldValue('TEXT'))); - break; - case 'field_input': - // Result: new Blockly.FieldTextInput('Hello'), 'GREET' - fields.push('new Blockly.FieldTextInput(' + - escapeString(block.getFieldValue('TEXT')) + '), ' + - escapeString(block.getFieldValue('FIELDNAME'))); - break; - case 'field_angle': - // Result: new Blockly.FieldAngle(90), 'ANGLE' - fields.push('new Blockly.FieldAngle(' + - escapeString(block.getFieldValue('ANGLE')) + '), ' + - escapeString(block.getFieldValue('FIELDNAME'))); - break; - case 'field_checkbox': - // Result: new Blockly.FieldCheckbox('TRUE'), 'CHECK' - fields.push('new Blockly.FieldCheckbox(' + - escapeString(block.getFieldValue('CHECKED')) + '), ' + - escapeString(block.getFieldValue('FIELDNAME'))); - break; - case 'field_colour': - // Result: new Blockly.FieldColour('#ff0000'), 'COLOUR' - fields.push('new Blockly.FieldColour(' + - escapeString(block.getFieldValue('COLOUR')) + '), ' + - escapeString(block.getFieldValue('FIELDNAME'))); - break; - case 'field_variable': - // Result: - // new Blockly.FieldVariable('item'), 'VAR' - var varname = block.getFieldValue('TEXT'); - varname = varname ? escapeString(varname) : 'null'; - fields.push('new Blockly.FieldVariable(' + varname + '), ' + - escapeString(block.getFieldValue('FIELDNAME'))); - break; - case 'field_dropdown': - // Result: - // new Blockly.FieldDropdown([['yes', '1'], ['no', '0']]), 'TOGGLE' - var options = []; - for (var x = 0; x < block.optionCount_; x++) { - options[x] = '[' + escapeString(block.getFieldValue('USER' + x)) + - ', ' + escapeString(block.getFieldValue('CPU' + x)) + ']'; - } - if (options.length) { - fields.push('new Blockly.FieldDropdown([' + - options.join(', ') + ']), ' + + if (!block.disabled && !block.getInheritedDisabled()) { + switch (block.type) { + case 'field_static': + // Result: 'hello' + fields.push(escapeString(block.getFieldValue('TEXT'))); + break; + case 'field_input': + // Result: new Blockly.FieldTextInput('Hello'), 'GREET' + fields.push('new Blockly.FieldTextInput(' + + escapeString(block.getFieldValue('TEXT')) + '), ' + escapeString(block.getFieldValue('FIELDNAME'))); - } - break; - case 'field_image': - // Result: new Blockly.FieldImage('http://...', 80, 60) - var src = escapeString(block.getFieldValue('SRC')); - var width = Number(block.getFieldValue('WIDTH')); - var height = Number(block.getFieldValue('HEIGHT')); - var alt = escapeString(block.getFieldValue('ALT')); - fields.push('new Blockly.FieldImage(' + - src + ', ' + width + ', ' + height + ', ' + alt + ')'); - break; + break; + case 'field_angle': + // Result: new Blockly.FieldAngle(90), 'ANGLE' + fields.push('new Blockly.FieldAngle(' + + escapeString(block.getFieldValue('ANGLE')) + '), ' + + escapeString(block.getFieldValue('FIELDNAME'))); + break; + case 'field_checkbox': + // Result: new Blockly.FieldCheckbox('TRUE'), 'CHECK' + fields.push('new Blockly.FieldCheckbox(' + + escapeString(block.getFieldValue('CHECKED')) + '), ' + + escapeString(block.getFieldValue('FIELDNAME'))); + break; + case 'field_colour': + // Result: new Blockly.FieldColour('#ff0000'), 'COLOUR' + fields.push('new Blockly.FieldColour(' + + escapeString(block.getFieldValue('COLOUR')) + '), ' + + escapeString(block.getFieldValue('FIELDNAME'))); + break; + case 'field_variable': + // Result: + // new Blockly.FieldVariable('item'), 'VAR' + var varname = block.getFieldValue('TEXT'); + varname = varname ? escapeString(varname) : 'null'; + fields.push('new Blockly.FieldVariable(' + varname + '), ' + + escapeString(block.getFieldValue('FIELDNAME'))); + break; + case 'field_dropdown': + // Result: + // new Blockly.FieldDropdown([['yes', '1'], ['no', '0']]), 'TOGGLE' + var options = []; + for (var x = 0; x < block.optionCount_; x++) { + options[x] = '[' + escapeString(block.getFieldValue('USER' + x)) + + ', ' + escapeString(block.getFieldValue('CPU' + x)) + ']'; + } + if (options.length) { + fields.push('new Blockly.FieldDropdown([' + + options.join(', ') + ']), ' + + escapeString(block.getFieldValue('FIELDNAME'))); + } + break; + case 'field_image': + // Result: new Blockly.FieldImage('http://...', 80, 60) + var src = escapeString(block.getFieldValue('SRC')); + var width = Number(block.getFieldValue('WIDTH')); + var height = Number(block.getFieldValue('HEIGHT')); + var alt = escapeString(block.getFieldValue('ALT')); + fields.push('new Blockly.FieldImage(' + + src + ', ' + width + ', ' + height + ', ' + alt + ')'); + break; + } } block = block.nextConnection && block.nextConnection.targetBlock(); } @@ -262,7 +267,7 @@ function getOptTypesFrom(block, name) { function getTypesFrom_(block, name) { var typeBlock = block.getInputTargetBlock(name); var types; - if (!typeBlock) { + if (!typeBlock || typeBlock.disabled) { types = []; } else if (typeBlock.type == 'type_other') { types = [escapeString(typeBlock.getFieldValue('TYPE'))]; @@ -295,64 +300,71 @@ function updateGenerator() { } var language = document.getElementById('language').value; var code = []; - code.push("Blockly." + language + "['" + blockType + "'] = function(block) {"); - // Loop through every block, and generate getters for any fields or inputs. - var blocks = rootBlock.getDescendants(); - for (var x = 0, block; block = blocks[x]; x++) { - switch (block.type) { - case 'field_input': - var name = block.getFieldValue('FIELDNAME'); - code.push(makeVar('text', name) + - " = block.getFieldValue('" + name + "');"); - break; - case 'field_angle': - var name = block.getFieldValue('FIELDNAME'); - code.push(makeVar('angle', name) + - " = block.getFieldValue('" + name + "');"); - break; - case 'field_dropdown': - var name = block.getFieldValue('FIELDNAME'); - code.push(makeVar('dropdown', name) + - " = block.getFieldValue('" + name + "');"); - break; - case 'field_checkbox': - var name = block.getFieldValue('FIELDNAME'); - code.push(makeVar('checkbox', name) + - " = block.getFieldValue('" + name + "') == 'TRUE';"); - break; - case 'field_colour': - var name = block.getFieldValue('FIELDNAME'); - code.push(makeVar('colour', name) + - " = block.getFieldValue('" + name + "');"); - break; - case 'field_variable': - var name = block.getFieldValue('FIELDNAME'); - code.push(makeVar('variable', name) + - " = Blockly." + language + - ".variableDB_.getName(block.getFieldValue('" + name + - "'), Blockly.Variables.NAME_TYPE);"); - break; - case 'input_value': - var name = block.getFieldValue('INPUTNAME'); - code.push(makeVar('value', name) + - " = Blockly." + language + ".valueToCode(block, '" + name + - "', Blockly." + language + ".ORDER_ATOMIC);"); - break; - case 'input_statement': - var name = block.getFieldValue('INPUTNAME'); - code.push(makeVar('statements', name) + - " = Blockly.' + language + '.statementToCode(block, '" + - name + "');"); - break; + code.push("Blockly." + language + "['" + blockType + + "'] = function(block) {"); + var rootBlock = getRootBlock(); + if (rootBlock) { + // Loop through every block, and generate getters for any fields or inputs. + var blocks = rootBlock.getDescendants(); + for (var x = 0, block; block = blocks[x]; x++) { + if (block.disabled || block.getInheritedDisabled()) { + continue; + } + switch (block.type) { + case 'field_input': + var name = block.getFieldValue('FIELDNAME'); + code.push(makeVar('text', name) + + " = block.getFieldValue('" + name + "');"); + break; + case 'field_angle': + var name = block.getFieldValue('FIELDNAME'); + code.push(makeVar('angle', name) + + " = block.getFieldValue('" + name + "');"); + break; + case 'field_dropdown': + var name = block.getFieldValue('FIELDNAME'); + code.push(makeVar('dropdown', name) + + " = block.getFieldValue('" + name + "');"); + break; + case 'field_checkbox': + var name = block.getFieldValue('FIELDNAME'); + code.push(makeVar('checkbox', name) + + " = block.getFieldValue('" + name + "') == 'TRUE';"); + break; + case 'field_colour': + var name = block.getFieldValue('FIELDNAME'); + code.push(makeVar('colour', name) + + " = block.getFieldValue('" + name + "');"); + break; + case 'field_variable': + var name = block.getFieldValue('FIELDNAME'); + code.push(makeVar('variable', name) + + " = Blockly." + language + + ".variableDB_.getName(block.getFieldValue('" + name + + "'), Blockly.Variables.NAME_TYPE);"); + break; + case 'input_value': + var name = block.getFieldValue('INPUTNAME'); + code.push(makeVar('value', name) + + " = Blockly." + language + ".valueToCode(block, '" + name + + "', Blockly." + language + ".ORDER_ATOMIC);"); + break; + case 'input_statement': + var name = block.getFieldValue('INPUTNAME'); + code.push(makeVar('statements', name) + + " = Blockly." + language + ".statementToCode(block, '" + + name + "');"); + break; + } + } + code.push(" // TODO: Assemble " + language + " into code variable."); + code.push(" var code = \'...\';"); + if (rootBlock.getFieldValue('CONNECTIONS') == 'LEFT') { + code.push(" // TODO: Change ORDER_NONE to the correct strength."); + code.push(" return [code, Blockly." + language + ".ORDER_NONE];"); + } else { + code.push(" return code;"); } - } - code.push(" // TODO: Assemble " + language + " into code variable."); - code.push(" var code = \'...\';"); - if (rootBlock.getFieldValue('CONNECTIONS') == 'LEFT') { - code.push(" // TODO: Change ORDER_NONE to the correct strength."); - code.push(" return [code, Blockly." + language + ".ORDER_NONE];"); - } else { - code.push(" return code;"); } code.push("};"); @@ -389,10 +401,38 @@ function injectCode(code, id) { pre.innerHTML = code; } +/** + * Return the uneditable container block that everything else attaches to. + * @return {Blockly.Block} + */ +function getRootBlock() { + var blocks = Blockly.mainWorkspace.getTopBlocks(false); + for (var i = 0, block; block = blocks[i]; i++) { + if (block.type == 'factory_base') { + return block; + } + } + return null; +} + /** * Initialize Blockly and layout. Called on page load. */ function init() { + if ('BlocklyStorage' in window) { + BlocklyStorage.HTTPREQUEST_ERROR = + 'There was a problem with the request.\n'; + BlocklyStorage.LINK_ALERT = + 'Share your blocks with this link:\n\n%1'; + BlocklyStorage.HASH_ERROR = + 'Sorry, "%1" doesn\'t correspond with any saved Blockly file.'; + BlocklyStorage.XML_ERROR = 'Could not load your saved file.\n'+ + 'Perhaps it was created with a different version of Blockly?'; + var linkButton = document.getElementById('linkButton'); + linkButton.style.display = 'inline-block'; + linkButton.addEventListener('click', BlocklyStorage.link); + } + var expandList = [ document.getElementById('blockly'), document.getElementById('previewFrame'), @@ -413,11 +453,15 @@ function init() { {path: '../../', toolbox: toolbox}); // Create the root block. - rootBlock = new Blockly.Block(Blockly.mainWorkspace, 'factory_base'); - rootBlock.initSvg(); - rootBlock.render(); - rootBlock.setMovable(false); - rootBlock.setDeletable(false); + if ('BlocklyStorage' in window && window.location.hash.length > 1) { + BlocklyStorage.retrieveXml(window.location.hash.substring(1)); + } else { + var rootBlock = Blockly.Block.obtain(Blockly.mainWorkspace, 'factory_base'); + rootBlock.initSvg(); + rootBlock.render(); + rootBlock.setMovable(false); + rootBlock.setDeletable(false); + } Blockly.addChangeListener(onchange); document.getElementById('direction') diff --git a/apps/blockfactory/index.html b/apps/blockfactory/index.html index a69551f73..e172bf723 100644 --- a/apps/blockfactory/index.html +++ b/apps/blockfactory/index.html @@ -4,6 +4,7 @@ Blockly : Block Factory + @@ -52,6 +53,25 @@ border: #ddd 1px solid; overflow: scroll; } + + #linkButton { + border-radius: 4px; + border: 1px solid #ddd; + background-color: #eee; + color: #000; + padding: 1px 10px; + margin: 1px 5px; + display: none; + } + #linkButton:hover { + box-shadow: 2px 2px 5px #888; + } + #linkButton>img { + opacity: 0.6; + } + #linkButton:hover>img { + opacity: 1; + } @@ -62,13 +82,24 @@

Blockly : Block Factory

- -

Preview: - -

+ + + + + + +
+

Preview: + +

+
+ +
diff --git a/apps/blockfactory/preview.js b/apps/blockfactory/preview.js index e4a522250..2a67be6a0 100644 --- a/apps/blockfactory/preview.js +++ b/apps/blockfactory/preview.js @@ -41,7 +41,7 @@ function updateFunc(type, code) { } eval(code); // Create the preview block. - previewBlock = new Blockly.Block(Blockly.mainWorkspace, type); + previewBlock = Blockly.Block.obtain(Blockly.mainWorkspace, type); previewBlock.initSvg(); previewBlock.render(); previewBlock.setMovable(false); diff --git a/apps/code/code.js b/apps/code/code.js index f34b9bf8d..dc9418e16 100644 --- a/apps/code/code.js +++ b/apps/code/code.js @@ -23,10 +23,11 @@ */ // Supported languages. -BlocklyApps.LANGUAGES = [ - 'ar', 'ca', 'cs', 'da', 'de', 'el', 'en', 'es', 'fa', 'fr', 'he', 'hu', 'is', - 'it', 'ko', 'ms', 'nl', 'pl', 'pms', 'pt-br', 'ro', 'ru', 'sr', 'sv', 'th', - 'tl', 'tr', 'uk', 'vi', 'zh-hans', 'zh-hant']; +BlocklyApps.LANGUAGES = + ['ace', 'ar', 'ca', 'cs', 'da', 'de', 'el', 'en', 'es', 'fa', 'fr', 'he', + 'hrx', 'hu', 'is', 'it', 'ko', 'mg', 'ms', 'nl', 'pl', 'pms', 'pt-br', + 'ro', 'ru', 'sco', 'sr', 'sv', 'th', 'tlh', 'tr', 'uk', 'vi', 'zh-hans', + 'zh-hant']; BlocklyApps.LANG = BlocklyApps.getLang(); document.write(' - - - - - - - - diff --git a/apps/code/style.css b/apps/code/style.css index dfd1a09e4..3fa7f5a7f 100644 --- a/apps/code/style.css +++ b/apps/code/style.css @@ -59,6 +59,7 @@ td { margin: 0; padding: 1ex; position: absolute; + direction: ltr; } pre.content { overflow: scroll; diff --git a/apps/code/template.soy b/apps/code/template.soy index eccd1fa4e..6cf30015e 100644 --- a/apps/code/template.soy +++ b/apps/code/template.soy @@ -15,7 +15,7 @@ {template .messages} {call apps.messages /}
- {msg meaning="Code.badXml" desc="alert - Message shown when the user tries switching from the XML tab after entering XML text that could not be parsed. This asks whether they wish to abandon the XML they added. If they select 'OK' (or the translated equivalent), the XML is cleared, and the other tab is shown. If they select 'Cancel', they remain on the XML tab with the bad XML.\n\nUsed in JavaScript \u003Ccode\u003Ewindow.confirm()\u003C/code\u003E."}Error parsing XML:\n%1\n\nSelect 'OK' to abandon your changes or 'Cancel' to further edit the XML.{/msg} + {msg meaning="Code.badXml" desc="alert - Message shown when the user tries switching from the XML tab after entering XML text that could not be parsed. This asks whether they wish to abandon the XML they added. If they select 'OK' (or the translated equivalent), the XML is cleared, and the other tab is shown. If they select 'Cancel', they remain on the XML tab with the bad XML.\n\nUsed in JavaScript window.confirm()."}Error parsing XML:\n%1\n\nSelect 'OK' to abandon your changes or 'Cancel' to further edit the XML.{/msg} {msg meaning="Code.badCode" desc="alert - Message shown if an error occurs while interpreting the user program. The error description follows."}Program error:\n%1{/msg} {msg meaning="Code.timeout" desc="alert - Message shown if the program has run for more than the permitted number of steps. This exists so that programs with infinite loops do not run forever."}Maximum execution iterations exceeded.{/msg} {msg meaning="Code.discard" desc="alert - Message shown after the user clicks on the 'discard all' icon. Selecting 'OK' (or the translated equivalent) causes all of the blocks to be discarded. Selecting 'Cancel' prevents blocks from being deleted.\n\nParameters:\n* %1 - number of blocks to be deleted. It is always an integer greater than or equal to 2."}Delete all %1 blocks?{/msg} @@ -54,7 +54,7 @@ - + @@ -213,7 +213,11 @@ - + + + + + @@ -259,22 +263,42 @@ - - + + + + 100 + + + + + 50 + + + + + 0 + + + + + + + #ff0000 + + + + + #3333ff + + + + + 0.5 + + + - + {/template} - -/** - * Readonly Blockly in an iframe. - */ -{template .readonly} - {call .messages /} - - - - -
-{/template} diff --git a/apps/common.js b/apps/common.js index 2b1cc5c1b..b91c65b76 100644 --- a/apps/common.js +++ b/apps/common.js @@ -29,9 +29,10 @@ var BlocklyApps = {}; * Lookup for names of languages. Keys should be in ISO 639 format. */ BlocklyApps.LANGUAGE_NAME = { + 'ace': 'بهسا اچيه', 'af': 'Afrikaans', 'ar': 'العربية', - 'az-latn': 'Azərbaycanca', + 'az': 'Azərbaycanca', 'be-tarask': 'Taraškievica', 'br': 'Brezhoneg', 'ca': 'Català', @@ -51,6 +52,8 @@ BlocklyApps.LANGUAGE_NAME = { 'gl': 'Galego', 'hak': '客家話', 'he': 'עברית', + 'hi': 'हिन्दी', + 'hrx': 'Hunsrik', 'hu': 'Magyar', 'ia': 'Interlingua', 'id': 'Bahasa Indonesia', @@ -66,6 +69,7 @@ BlocklyApps.LANGUAGE_NAME = { 'lb': 'Lëtzebuergesch', 'lt': 'Lietuvių', 'lv': 'Latviešu', + 'mg': 'Malagasy', 'ml': 'മലയാളം', 'mk': 'Македонски', 'mr': 'मराठी', @@ -82,43 +86,51 @@ BlocklyApps.LANGUAGE_NAME = { 'ro': 'Română', 'pt-br': 'Português Brasileiro', 'ru': 'Русский', + 'sc': 'Sardu', + 'sco': 'Scots', + 'si': 'සිංහල', 'sk': 'Slovenčina', 'sr': 'Српски', 'sv': 'Svenska', 'sw': 'Kishwahili', 'th': 'ภาษาไทย', + 'tl': 'Tagalog', + 'tlh': 'tlhIngan Hol', 'tr': 'Türkçe', 'uk': 'Українська', 'vi': 'Tiếng Việt', 'zh-hans': '簡體中文', - 'zh-hant': '正體中文', - 'zh-tw': '國語' + 'zh-hant': '正體中文' }; /** * List of RTL languages. */ -BlocklyApps.LANGUAGE_RTL = ['ar', 'fa', 'he', 'mzn', 'ps']; +BlocklyApps.LANGUAGE_RTL = ['ace', 'ar', 'fa', 'he', 'mzn', 'ps']; /** * Lookup for Blockly core block language pack. */ BlocklyApps.LANGUAGE_PACK = { 'ar': 'msg/js/ar.js', + 'az-latn': 'msg/js/az-latn.js', 'az': 'msg/js/az.js', 'ca': 'msg/js/ca.js', - 'cdo': 'msg/js/zh_hant.js', + 'cdo': 'msg/js/zh-hant.js', 'cs': 'msg/js/cs.js', 'da': 'msg/js/da.js', 'de': 'msg/js/de.js', 'el': 'msg/js/el.js', + 'en': 'msg/js/en.js', + 'en_us': 'msg/js/en_us.js', 'es': 'msg/js/es.js', 'fa': 'msg/js/fa.js', + 'fi': 'msg/js/fi.js', 'fr': 'msg/js/fr.js', 'frr': 'msg/js/de.js', 'he': 'msg/js/he.js', + 'hrx': 'msg/js/hrx.js', 'hu': 'msg/js/hu.js', - 'ia': 'msg/js/ia.js', 'id': 'msg/js/id.js', 'is': 'msg/js/is.js', 'it': 'msg/js/it.js', @@ -127,6 +139,7 @@ BlocklyApps.LANGUAGE_PACK = { 'ksh': 'msg/js/de.js', 'lb': 'msg/js/de.js', 'ms': 'msg/js/ms.js', + 'nb': 'msg/js/nb.js', 'nl': 'msg/js/nl.js', 'no': 'msg/js/no.js', 'pl': 'msg/js/pl.js', @@ -143,6 +156,7 @@ BlocklyApps.LANGUAGE_PACK = { 'sv': 'msg/js/sv.js', 'th': 'msg/js/th.js', 'tl': 'msg/js/tl.js', + 'tlh': 'msg/js/tlh.js', 'tr': 'msg/js/tr.js', 'uk': 'msg/js/uk.js', 'vi': 'msg/js/vi.js', @@ -166,6 +180,12 @@ BlocklyApps.LANG = undefined; */ BlocklyApps.LANGUAGES = undefined; +/** + * Length of time to supress clicks to avoid a double-click. + * @type number + */ +BlocklyApps.DOUBLE_CLICK_TIME = 400; + /** * Extracts a parameter from the URL. * If the parameter is absent default_value is returned. @@ -305,7 +325,7 @@ BlocklyApps.init = function() { BlocklyStorage['XML_ERROR'] = BlocklyApps.getMsg('xmlError'); // Swap out the BlocklyStorage's alert() for a nicer dialog. BlocklyStorage.alert = BlocklyApps.storageAlert; - BlocklyApps.bindClick('linkButton', BlocklyStorage.link); + BlocklyApps.bindClick(linkButton, BlocklyStorage.link); } else if (linkButton) { linkButton.className = 'disabled'; } @@ -378,7 +398,8 @@ BlocklyApps.changeLanguage = function() { // Store the blocks for the duration of the reload. // This should be skipped for the index page, which has no blocks and does // not load Blockly. - if (typeof Blockly != 'undefined') { + // MSIE 11 does not support sessionStorage on file:// URLs. + if (typeof Blockly != 'undefined' && window.sessionStorage) { var xml = Blockly.Xml.workspaceToDom(Blockly.mainWorkspace); var text = Blockly.Xml.domToText(xml); window.sessionStorage.loadOnceBlocks = text; @@ -820,36 +841,16 @@ BlocklyApps.getMsgOrNull = function(key) { } }; -/** - * On touch enabled browsers, add touch-friendly variants of event handlers - * for elements such as buttons whose event handlers are specified in the - * markup. For example, ontouchend is treated as equivalent to onclick. - */ -BlocklyApps.addTouchEvents = function() { - // Do nothing if the browser doesn't support touch. - if (!('ontouchstart' in document.documentElement)) { - return; - } - // Treat ontouchend as equivalent to onclick for buttons. - var buttons = document.getElementsByTagName('button'); - for (var i = 0, button; button = buttons[i]; i++) { - if (!button.ontouchend) { - button.ontouchend = button.onclick; - } - } -}; - -// Add events for touch devices when the window is done loading. -window.addEventListener('load', BlocklyApps.addTouchEvents, false); - /** * Bind a function to a button's click event. * On touch enabled browsers, ontouchend is treated as equivalent to onclick. - * @param {string} id ID of button element. + * @param {!Element|string} el Button element or ID thereof. * @param {!Function} func Event handler to bind. */ -BlocklyApps.bindClick = function(id, func) { - var el = document.getElementById(id); +BlocklyApps.bindClick = function(el, func) { + if (typeof el == 'string') { + el = document.getElementById(el); + } el.addEventListener('click', func, true); el.addEventListener('touchend', func, true); }; diff --git a/apps/common.soy b/apps/common.soy index 303706267..56ec8f50e 100644 --- a/apps/common.soy +++ b/apps/common.soy @@ -11,9 +11,13 @@ * * Create en.json, keys.json, and qqq.json. * ../i18n/xliff_to_json.py --xlf extracted_msgs.xlf --templates common.soy {code,graph,index,maze,plane,puzzle,turtle}/template.soy + * or in Windows: + * python ..\i18n\xliff_to_json.py --xlf extracted_msgs.xlf --templates common.soy code\template.soy graph\template.soy index\template.soy maze\template.soy plane\template.soy puzzle\template.soy turtle\template.soy * * Generate .js files for each project and the index: * for i in code graph index maze plane puzzle turtle; do ../i18n/json_to_js.py --output_dir=$i/generated --template common.soy,$i/template.soy json/*.json; done + * or in Windows: + * FOR %i IN (code graph index maze plane puzzle turtle) DO python ..\i18n\json_to_js.py --output_dir=%i\generated --template common.soy,%i\template.soy json\*.json */ /** @@ -46,10 +50,10 @@ {msg meaning="Apps.catLoops" desc="category - Blocks related to [https://en.wikipedia.org/wiki/Control_flow#Loops loops]."}Loops{/msg} {msg meaning="Apps.catMath" desc="category - Blocks related to mathematics."}Math{/msg} {{msg meaning="Apps.catText" desc="category - Blocks related to [https://code.google.com/p/blockly/wiki/Text text processing].\n{lb}{lb}Identical|Text{rb}{rb}"}}Text{{/msg}} - {msg meaning="Apps.catLists" desc="category - Blocks related to [https://code.google.com/p/blockly/wiki/Lists lists]."}Lists{/msg} - {msg meaning="Apps.catColour" desc="category - Blocks related to [https://code.google.com/p/blockly/wiki/Colour colour]."}Colour{/msg} + {{msg meaning="Apps.catLists" desc="category - Blocks related to [https://code.google.com/p/blockly/wiki/Lists lists].\n{lb}{lb}Identical|Lists{rb}{rb}"}}Lists{{/msg}} + {{msg meaning="Apps.catColour" desc="category - Blocks related to [https://code.google.com/p/blockly/wiki/Colour colour].\n{lb}{lb}Identical|Colour{rb}{rb}"}}Colour{{/msg}} {msg meaning="Apps.catVariables" desc="category - Blocks related to [https://code.google.com/p/blockly/wiki/Variables variables]."}Variables{/msg} - {msg meaning="Apps.catProcedures" desc="category - Blocks related to [https://en.wikipedia.org/wiki/Subroutine defining or using procedures/functions]."}Procedures{/msg} + {msg meaning="Apps.catProcedures" desc="category - Blocks related to [https://en.wikipedia.org/wiki/Subroutine defining or using procedures/functions]."}Functions{/msg} // Error messages related to loading/storing user programs. {msg meaning="Apps.httpRequestError" desc="alert - The URL is invalid or a server error occurred. This message will be followed by technical information useful to engineers trying to understand the problem."}There was a problem with the request.{/msg} diff --git a/apps/graph/generated/af.js b/apps/graph/generated/af.js index d5ca20ab6..d3ef46ba8 100644 --- a/apps/graph/generated/af.js +++ b/apps/graph/generated/af.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetOKCancelLogicLoopsMathTextListsColourVariablesProceduresThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; + return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetOKCancelLogicLoopsMathTextListsColourVariablesFunctionsThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; }; diff --git a/apps/graph/generated/ar.js b/apps/graph/generated/ar.js index 5008e03c6..9a598cd2d 100644 --- a/apps/graph/generated/ar.js +++ b/apps/graph/generated/ar.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
بيئة برمجة مرئيةبلوكليراجع إنشاء تعليمات برمجية JavaScript.احفظ ووصلة إلى البلوكات.شغل البرنامج المعرف بواسطة البلوكات في مساحة العمل.شغِّل البرنامجإعادة ضبطحسنإلغاء الأمرمنطقالحلقاترياضياتنصقوائملونمتغيراتإجراءاتكانت هناك مشكلة مع هذا الطلب.مشاركة كود بلوكلي الخاص بك مع هذا الرابط:\n 1%عذراً،ال \'1%\' لا تتوافق مع أي برنامج تم حفظه.تعذر تحميل الملف المحفوظة الخاصة بك. ربما تم إنشاؤه باستخدام إصدار مختلف من بلوكلي؟قائمةنص
'; + return '
بيئة برمجة مرئيةبلوكليراجع إنشاء تعليمات برمجية JavaScript.احفظ ووصلة إلى البلوكات.شغل البرنامج المعرف بواسطة البلوكات في مساحة العمل.شغِّل البرنامجإعادة ضبطحسنإلغاء الأمرمنطقالحلقاترياضياتنصقوائملونمتغيراتإجراءاتكانت هناك مشكلة مع هذا الطلب.مشاركة كود بلوكلي الخاص بك مع هذا الرابط:\n %1عذراً،ال \'%1\' لا تتوافق مع أي برنامج تم حفظه.تعذر تحميل الملف المحفوظة الخاصة بك. ربما تم إنشاؤه باستخدام إصدار مختلف من بلوكلي؟قائمةنص
'; }; diff --git a/apps/graph/generated/arz.js b/apps/graph/generated/arz.js index d5ca20ab6..d3ef46ba8 100644 --- a/apps/graph/generated/arz.js +++ b/apps/graph/generated/arz.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetOKCancelLogicLoopsMathTextListsColourVariablesProceduresThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; + return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetOKCancelLogicLoopsMathTextListsColourVariablesFunctionsThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; }; diff --git a/apps/graph/generated/be-tarask.js b/apps/graph/generated/be-tarask.js index 9dabb2e4e..4c83f64ca 100644 --- a/apps/graph/generated/be-tarask.js +++ b/apps/graph/generated/be-tarask.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
Асяродзьдзе віртуальнага праграмаваньняBlockly (Блоклі)Глядзі згенераваны код JavaScript.Захаваць і зьвязаць з блёкамі. Запусьціце праграму, вызначаную блёкамі ў \\nпрацоўнай вобласьці. Запусьціць праграмуСкасавацьOKСкасавацьЛёгікаПетліМатэматычныя формулыТэкстСьпісыКолерЗьменныяПрацэдурыУзьнікла праблема з запытам.Падзяліцца Вашым блёкам праз гэтую спасылку:\n\n%1Прабачце, \'%1\' не адпавядае ніводнай захаванай праграме.Не атрымалася загрузіць захаваны файл. Магчыма, ён быў створаны з іншай вэрсіяй Блёклі?сьпістэкст
'; + return '
Асяродзьдзе віртуальнага праграмаваньняBlockly (Блоклі)Глядзі згенераваны код JavaScript.Захаваць і зьвязаць з блёкамі.Запусьціце праграму, вызначаную блёкамі ў працоўнай вобласьці.Запусьціць праграмуСкасавацьOKСкасавацьЛёгікаПетліМатэматычныя формулыТэкстСьпісыКолерЗьменныяФункцыіУзьнікла праблема з запытам.Падзяліцца Вашым блёкам праз гэтую спасылку:\n\n%1Прабачце, \'%1\' не адпавядае ніводнай захаванай праграме.Не атрымалася загрузіць захаваны файл. Магчыма, ён быў створаны з іншай вэрсіяй Блёклі?сьпістэкст
'; }; @@ -41,7 +41,7 @@ graphpage.messages = function(opt_data, opt_ignored, opt_ijData) { graphpage.start = function(opt_data, opt_ignored, opt_ijData) { - return graphpage.messages(null, null, opt_ijData) + '
{msg meaning="Code.blocks" desc="tab text - Displays and allows editing of the user's program as blocks."}Blocks{/msg}{{msg meaning="Code.blocks" desc="tab text - Displays and allows editing of the user's program as blocks.\n{lb}{lb}Identical|Blocks{rb}{rb}"}}Blocks{{/msg}}   JavaScript  

Blockly (Блоклі) : Графічны калькулятар

   
...
{call .toolbox /}
- - ⟲⟳ -
@@ -150,7 +147,7 @@   {msg meaning="Maze.helpOneTopBlock" desc="callout - This is displayed if a user attempts to run a program composed of multiple stacks of blocks, letting them know they need to create a single stack."}On this level, you need to stack together all of the blocks in the white workspace.{/msg} - +
diff --git a/apps/plane/generated/af.js b/apps/plane/generated/af.js index 835a52d48..6373ee509 100644 --- a/apps/plane/generated/af.js +++ b/apps/plane/generated/af.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetOKCancelLogicLoopsMathTextListsColourVariablesProceduresThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; + return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetOKCancelLogicLoopsMathTextListsColourVariablesFunctionsThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; }; diff --git a/apps/plane/generated/ar.js b/apps/plane/generated/ar.js index 2a10d983a..e7118ca78 100644 --- a/apps/plane/generated/ar.js +++ b/apps/plane/generated/ar.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
بيئة برمجة مرئيةبلوكليراجع إنشاء تعليمات برمجية JavaScript.احفظ ووصلة إلى البلوكات.شغل البرنامج المعرف بواسطة البلوكات في مساحة العمل.شغِّل البرنامجإعادة ضبطحسنإلغاء الأمرمنطقالحلقاترياضياتنصقوائملونمتغيراتإجراءاتكانت هناك مشكلة مع هذا الطلب.مشاركة كود بلوكلي الخاص بك مع هذا الرابط:\n 1%عذراً،ال \'1%\' لا تتوافق مع أي برنامج تم حفظه.تعذر تحميل الملف المحفوظة الخاصة بك. ربما تم إنشاؤه باستخدام إصدار مختلف من بلوكلي؟قائمةنص
'; + return '
بيئة برمجة مرئيةبلوكليراجع إنشاء تعليمات برمجية JavaScript.احفظ ووصلة إلى البلوكات.شغل البرنامج المعرف بواسطة البلوكات في مساحة العمل.شغِّل البرنامجإعادة ضبطحسنإلغاء الأمرمنطقالحلقاترياضياتنصقوائملونمتغيراتإجراءاتكانت هناك مشكلة مع هذا الطلب.مشاركة كود بلوكلي الخاص بك مع هذا الرابط:\n %1عذراً،ال \'%1\' لا تتوافق مع أي برنامج تم حفظه.تعذر تحميل الملف المحفوظة الخاصة بك. ربما تم إنشاؤه باستخدام إصدار مختلف من بلوكلي؟قائمةنص
'; }; @@ -36,7 +36,7 @@ if (typeof planepage == 'undefined') { var planepage = {}; } planepage.messages = function(opt_data, opt_ignored, opt_ijData) { - return apps.messages(null, null, opt_ijData) + '
الصفوف: 1%الصفوف (1%)صفوف الطبقة الأولى: 1%صفوف الطبقة الأولى (1%)صفوف الفئة الثانية: 1%صفوف الفئة الثانية: (1%)المقاعد: 1%؟المقاعد =
'; + return apps.messages(null, null, opt_ijData) + '
الصفوف: %1الصفوف (%1)صفوف الطبقة الأولى: %1صفوف الطبقة الأولى (%1)صفوف الفئة الثانية: %1صفوف الفئة الثانية: (%1)المقاعد: %1؟المقاعد =
'; }; diff --git a/apps/plane/generated/arz.js b/apps/plane/generated/arz.js index 835a52d48..6373ee509 100644 --- a/apps/plane/generated/arz.js +++ b/apps/plane/generated/arz.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetOKCancelLogicLoopsMathTextListsColourVariablesProceduresThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; + return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetOKCancelLogicLoopsMathTextListsColourVariablesFunctionsThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; }; diff --git a/apps/plane/generated/be-tarask.js b/apps/plane/generated/be-tarask.js index 2e388e12b..610fa209d 100644 --- a/apps/plane/generated/be-tarask.js +++ b/apps/plane/generated/be-tarask.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
Асяродзьдзе віртуальнага праграмаваньняBlockly (Блоклі)Глядзі згенераваны код JavaScript.Захаваць і зьвязаць з блёкамі. Запусьціце праграму, вызначаную блёкамі ў \\nпрацоўнай вобласьці. Запусьціць праграмуСкасавацьOKСкасавацьЛёгікаПетліМатэматычныя формулыТэкстСьпісыКолерЗьменныяПрацэдурыУзьнікла праблема з запытам.Падзяліцца Вашым блёкам праз гэтую спасылку:\n\n%1Прабачце, \'%1\' не адпавядае ніводнай захаванай праграме.Не атрымалася загрузіць захаваны файл. Магчыма, ён быў створаны з іншай вэрсіяй Блёклі?сьпістэкст
'; + return '
Асяродзьдзе віртуальнага праграмаваньняBlockly (Блоклі)Глядзі згенераваны код JavaScript.Захаваць і зьвязаць з блёкамі.Запусьціце праграму, вызначаную блёкамі ў працоўнай вобласьці.Запусьціць праграмуСкасавацьOKСкасавацьЛёгікаПетліМатэматычныя формулыТэкстСьпісыКолерЗьменныяФункцыіУзьнікла праблема з запытам.Падзяліцца Вашым блёкам праз гэтую спасылку:\n\n%1Прабачце, \'%1\' не адпавядае ніводнай захаванай праграме.Не атрымалася загрузіць захаваны файл. Магчыма, ён быў створаны з іншай вэрсіяй Блёклі?сьпістэкст
'; }; diff --git a/apps/plane/generated/bg.js b/apps/plane/generated/bg.js index ca0f0f07b..020d55c2a 100644 --- a/apps/plane/generated/bg.js +++ b/apps/plane/generated/bg.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetOKОтказванеLogicLoopsMathTextListsColourПроменливиProceduresThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; + return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetOKОтказванеLogicLoopsMathTextListsColourПроменливиFunctionsThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; }; diff --git a/apps/plane/generated/bn.js b/apps/plane/generated/bn.js index b88ca7566..790cf3bcf 100644 --- a/apps/plane/generated/bn.js +++ b/apps/plane/generated/bn.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetঠিক আছেCancelLogicLoopsMathTextListsColourVariablesProceduresThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; + return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetঠিক আছেCancelLogicLoopsMathTextListsColourVariablesFunctionsThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; }; diff --git a/apps/plane/generated/br.js b/apps/plane/generated/br.js index e2bb5d971..a283ec414 100644 --- a/apps/plane/generated/br.js +++ b/apps/plane/generated/br.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
un endro programmiñ da weletBlocklyGwelet ar c\'hod JavaScript krouet.Enrollañ ha liammañ d\'ar bloc\'hadoù.Lañsañ ar programm termenet gant ar bloc\'hadoù \\nen takad labour. Lañsañ ar programmAdderaouekaatMat eoNullañPoellBoukloùMatematikTestennRolloùLivArgemmennoùArgerzhadurioùUr gudenn zo gant ar reked.Rannañ ho ploc\'hoù gant al liamm-mañ :\n\n%1Digarezit. "%1" ne glot gant programm enrollet ebet.Ne c\'haller ket kargañ ho restr enrollet. Marteze e oa bet krouet gant ur stumm disheñvel eus Blockly ?rolltestenn
'; + return '
un endro programmiñ da weletBlocklyGwelet ar c\'hod JavaScript krouet.Enrollañ ha liammañ d\'ar bloc\'hadoù.Lañsañ ar programm termenet gant ar bloc\'hadoù en takad labour.Lañsañ ar programmAdderaouekaatMat eoNullañPoellBoukloùMatematikTestennRolloùLivArgemmennoùArc\'hwelioùUr gudenn zo gant ar reked.Rannañ ho ploc\'hoù gant al liamm-mañ :\n\n%1Digarezit. "%1" ne glot gant programm enrollet ebet.Ne c\'haller ket kargañ ho restr enrollet. Marteze e oa bet krouet gant ur stumm disheñvel eus Blockly ?rolltestenn
'; }; diff --git a/apps/plane/generated/ca.js b/apps/plane/generated/ca.js index 936c035af..7f7d7e158 100644 --- a/apps/plane/generated/ca.js +++ b/apps/plane/generated/ca.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
un entorn visual de programacióBlocklyVegeu el codi JavaScript generat.Desa i enllaça als blocs.Executa el programa definit pels blocs de l\'àrea \\nde treball. Executa el programaReinicialitzaD\'acordCancel·laLògicaBuclesMatemàtiquesTextLlistesColorVariablesProcedimentsHi ha hagut un problema amb la sol·licitud.Comparteix els teus blocs amb aquest enllaç: %1Ho sentim, \'%1\' no es correspon amb cap fitxer desat de Blockly.No s\'ha pogut carregar el teu fitxer desat. Potser va ser creat amb una versió diferent de Blockly?llistatext
'; + return '
un entorn visual de programacióBlocklyVegeu el codi JavaScript generat.Desa i enllaça als blocs.Executa el programa definit pels blocs de l\'àrea de treball.Executa el programaReinicialitzaD\'acordCancel·laLògicaBuclesMatemàtiquesTextLlistesColorVariablesProcedimentsHi ha hagut un problema amb la sol·licitud.Comparteix els teus blocs amb aquest enllaç: %1Ho sentim, \'%1\' no es correspon amb cap fitxer desat de Blockly.No s\'ha pogut carregar el teu fitxer desat. Potser va ser creat amb una versió diferent de Blockly?llistatext
'; }; diff --git a/apps/plane/generated/cdo.js b/apps/plane/generated/cdo.js index 70c3a1421..a88d698ca 100644 --- a/apps/plane/generated/cdo.js +++ b/apps/plane/generated/cdo.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramReset確定CancelLogicLoopsMathTextListsColourVariablesProceduresThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; + return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramReset確定CancelLogicLoopsMathTextListsColourVariablesFunctionsThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; }; diff --git a/apps/plane/generated/cs.js b/apps/plane/generated/cs.js index b1399e515..5617b3b96 100644 --- a/apps/plane/generated/cs.js +++ b/apps/plane/generated/cs.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
grafické programovací prostředíBlocklyZobraz generovaný JavaScriptový kód.Ulož a spoj bloky..Run the program defined by the blocks in the workspace.Spusť programResetOKZrušitLogikaSmyčkyMatematikaTextSeznamyBarvaProměnnéProceduryDošlo k potížím s požadavkem.Sdílej bloky tímto odkazem: %1Omlouváme se, \'%1\' nesouhlasí s žádným z uložených souborů.Nepodařilo se uložit vás soubor. Pravděpodobně byl vytvořen jinou verzí Blockly?seznamtext
'; + return '
grafické programovací prostředíBlocklyZobrazit generovaný JavaScriptový kód.Ulož a spoj bloky..Run the program defined by the blocks in the workspace.Spusť programResetOKZrušitLogikaSmyčkyMatematikaTextSeznamyBarvaProměnnéProceduryDošlo k potížím s požadavkem.Sdílej bloky tímto odkazem: \n\n%1Omlouváme se, \'%1\' nesouhlasí s žádným z uložených souborů.Nepodařilo se uložit vás soubor. Pravděpodobně byl vytvořen jinou verzí Blockly?seznamtext
'; }; diff --git a/apps/plane/generated/da.js b/apps/plane/generated/da.js index ac8fe7a0c..3e954a72b 100644 --- a/apps/plane/generated/da.js +++ b/apps/plane/generated/da.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
et visuelt programmeringsmiljøBlocklySe den genererede JavaScript kode.Gem og link til blokke.Kør programmet, der er defineret af blokkene i \\narbejdsområdet. Kør programNulstilOKAfbrydLogikLøkkerMatematikTekstListerFarveVariablerProcedurerDer var et problem med forespørgslen.Del dine blokke med dette link:\n\n%1Beklager, \'%1\' passer ikke med nogen gemt Blockly fil.Kunne ikke hente din gemte fil. Måske er den lavet med en anden udgave af Blockly?listetekst
'; + return '
et visuelt programmeringsmiljøBlocklySe den genererede JavaScript kode.Gem og link til blokke.Kør programmet, der er defineret af blokkene i arbejdsområdet.Kør programNulstilOKAfbrydLogikLøkkerMatematikTekstListerFarveVariablerFunktionerDer var et problem med forespørgslen.Del dine blokke med dette link:\n\n%1Beklager, \'%1\' passer ikke med nogen gemt Blockly fil.Kunne ikke hente din gemte fil. Måske er den lavet med en anden udgave af Blockly?listetekst
'; }; diff --git a/apps/plane/generated/de.js b/apps/plane/generated/de.js index 9a7eb3851..407a4f2c6 100644 --- a/apps/plane/generated/de.js +++ b/apps/plane/generated/de.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
Visuelle ProgrammierumgebungBlocklyErzeugten JavaScript-Code ansehen.Speichern und auf Bausteine verlinken.Das Programm ausführen, das von den Bausteinen \\nim Arbeitsbereich definiert ist. Programm ausführenZurücksetzenOkayAbbrechenLogikSchleifenMathematikTextListenFarbeVariablenFunktionenMit der Anfrage gab es ein Problem.Teile deine Bausteine mit diesem Link:\n\n%1„%1“ stimmt leider mit keinem gespeicherten Programm überein.Deine gespeicherte Datei konnte nicht geladen werden. Vielleicht wurde sie mit einer anderen Version von Blockly erstellt.ListeText
'; + return '
Visuelle ProgrammierumgebungBlocklyErzeugten JavaScript-Code ansehen.Speichern und auf Bausteine verlinken.Das Programm ausführen, das von den Bausteinen im Arbeitsbereich definiert ist.Programm ausführenZurücksetzenOkayAbbrechenLogikSchleifenMathematikTextListenFarbeVariablenFunktionenMit der Anfrage gab es ein Problem.Teile deine Bausteine mit diesem Link:\n\n%1„%1“ stimmt leider mit keinem gespeicherten Programm überein.Deine gespeicherte Datei konnte nicht geladen werden. Vielleicht wurde sie mit einer anderen Version von Blockly erstellt.ListeText
'; }; diff --git a/apps/plane/generated/diq.js b/apps/plane/generated/diq.js index a2c211077..bfc5fdae6 100644 --- a/apps/plane/generated/diq.js +++ b/apps/plane/generated/diq.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Programi Akar fiReset kerêTEMAMBıterkneMantığDingekiMatematikMetinListeyRengVırneyeniProseduriwaştışi deyne zew problem estoBlokan na linkera bıhesrne\n\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listenuşte
'; + return '
yew grafikê programkerdışê dormeyBlocklyKodê JavaScriptê vıraştey bımocne.Qeyd ke û be blokan ra gıre de.Cayê kari de programo ke terefê blokan ra name biyo, ey bıgurene.Programi Akar fiReset kerêTEMAMBıtexelneMantığDingekiMatematikMetinListeyRengVırneyeniFonksiyoniwaştışi deyne zew problem estoBlokan na linkera bıhesrne\n\n%1Melûlime, \'%1\' be qet yew programi ra yewbini nêgêno.Could not load your saved file. Perhaps it was created with a different version of Blockly?listenuşte
'; }; @@ -36,12 +36,12 @@ if (typeof planepage == 'undefined') { var planepage = {}; } planepage.messages = function(opt_data, opt_ignored, opt_ijData) { - return apps.messages(null, null, opt_ijData) + '
Rows: %1rows (%1)1st class rows: %11st class rows (%1)2nd class rows: %12nd class rows (%1)Seats: %1?iskemey =
'; + return apps.messages(null, null, opt_ijData) + '
Rêzi: %1rêzi(%1)Rêzê sınıfa verêne: %1Rêzê sınıfa verêne (%1)Rêzê sınıfa dıyıne: %1Rêzê sınıfa dıyıne (%1)Paldangi: %1?iskemey =
'; }; planepage.start = function(opt_data, opt_ignored, opt_ijData) { - var output = planepage.messages(null, null, opt_ijData) + '

Blockly : Teyera   '; + var output = planepage.messages(null, null, opt_ijData) + '

Blockly : Hesabkerdoğê Cayê Tiyarey   '; var iLimit130 = opt_ijData.maxLevel + 1; for (var i130 = 1; i130 < iLimit130; i130++) { output += ' ' + ((i130 == opt_ijData.level) ? '' + soy.$$escapeHtml(i130) + '' : (i130 < opt_ijData.level) ? '' : '' + soy.$$escapeHtml(i130) + ''); diff --git a/apps/plane/generated/el.js b/apps/plane/generated/el.js index c482a6f8a..e2c2ab065 100644 --- a/apps/plane/generated/el.js +++ b/apps/plane/generated/el.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
γραφικό περιβάλλον προγραμματισμούBlockly (Μπλόκλι)Δες τον κώδικα JavaScript που δημιουργήθηκε.Αποθηκεύει και συνδέει σε μπλοκ.Εκτελεί το πρόγραμμα που ορίζεται από τα μπλοκ \\nστον χώρο εργασίας. Εκτέλεση ΠρογράμματοςΕπανεκκίνησηΕντάξειΑκύρωσηΛογικήΕπαναλήψειςΜαθηματικάΚείμενοΛίστεςΧρώμαΜεταβλητέςΔιαδικασίεςΥπήρξε πρόβλημα με το αίτημα.Μοιράσου τα μπλοκ σου με αυτόν τον σύνδεσμο:\n\n%1Λυπάμαι, το «%1» δεν αντιστοιχεί σε κανένα αποθηκευμένο πρόγραμμα.Δεν μπορώ να φορτώσω το αποθηκευμένο αρχείο σου. Μήπως δημιουργήθηκε από μία παλιότερη έκδοση του Μπλόκλι;λίστακείμενο
'; + return '
γραφικό περιβάλλον προγραμματισμούBlockly (Μπλόκλι)Δες τον κώδικα JavaScript που δημιουργήθηκε.Αποθηκεύει και συνδέει σε μπλοκ.Εκτελεί το πρόγραμμα που ορίζεται από τα μπλοκ στον χώρο εργασίας.Εκτέλεση ΠρογράμματοςΕπανεκκίνησηΕντάξειΑκύρωσηΛογικήΕπαναλήψειςΜαθηματικάΚείμενοΛίστεςΧρώμαΜεταβλητέςΣυναρτήσειςΥπήρξε πρόβλημα με το αίτημα.Κοινοποίησε τα μπλοκ σου με αυτόν τον σύνδεσμο:\n\n%1Λυπάμαι, το «%1» δεν αντιστοιχεί σε κανένα αποθηκευμένο πρόγραμμα.Δεν μπορώ να φορτώσω το αποθηκευμένο αρχείο σου. Μήπως δημιουργήθηκε από μία παλιότερη έκδοση του Blockly;λίστακείμενο
'; }; @@ -36,7 +36,7 @@ if (typeof planepage == 'undefined') { var planepage = {}; } planepage.messages = function(opt_data, opt_ignored, opt_ijData) { - return apps.messages(null, null, opt_ijData) + '
Σειρές: %1σειρές (%1)Σειρές 1ης θέσης: %1σειρές 1ης θέσης (%1)Σειρές 2ης θέσης: %1σειρές 2ης θέσης (%1)Καθίσματα: %1;καθίσματα =
'; + return apps.messages(null, null, opt_ijData) + '
Σειρές: %1σειρές (%1)Σειρές 1ης θέσης: %1Σειρές 1ης θέσης (%1)Σειρές 2ης θέσης: %1Σειρές 2ης θέσης (%1)Καθίσματα: %1;καθίσματα =
'; }; diff --git a/apps/plane/generated/en.js b/apps/plane/generated/en.js index cc12e4b53..20aaff3c9 100644 --- a/apps/plane/generated/en.js +++ b/apps/plane/generated/en.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
a visual programming environmentBlocklySee generated JavaScript code. Save and link to blocks.Run the program defined by the blocks in the \\nworkspace. Run ProgramResetOKCancelLogicLoopsMathTextListsColourVariablesProceduresThere was a problem with the request.Share your blocks with this link:\n\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; + return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetOKCancelLogicLoopsMathTextListsColourVariablesFunctionsThere was a problem with the request.Share your blocks with this link:\n\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; }; diff --git a/apps/plane/generated/es.js b/apps/plane/generated/es.js index 5148bd08d..90ad6b713 100644 --- a/apps/plane/generated/es.js +++ b/apps/plane/generated/es.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
un entorno de programación visualBlocklyMira el código JavaScript generado.Guarda conexión a los bloques. Ejecute el programa definido por los bloques en \\nel área de trabajo. Ejecutar el programaRestablecerAceptarCancelarLógicaSecuenciasMatemáticasTextoListasColorVariablesProcedimientosHubo un problema con la petición.Comparte tus bloques con este enlace:\n\n%1«%1» no corresponde con ningún programa guardado.No se pudo cargar el archivo guardado. ¿Quizá fue creado con otra versión de Blockly?listatexto
'; + return '
un entorno de programación visualBlocklyMira el código JavaScript generado.Guarda conexión a los bloques.Ejecute el programa definido por los bloques en el área de trabajo.Ejecutar el programaRestablecerAceptarCancelarLógicaSecuenciasMatemáticasTextoListasColorVariablesFuncionesHubo un problema con la petición.Comparte tus bloques con este enlace:\n\n%1«%1» no corresponde con ningún programa guardado.No se pudo cargar el archivo guardado. ¿Quizá fue creado con otra versión de Blockly?listatexto
'; }; diff --git a/apps/plane/generated/eu.js b/apps/plane/generated/eu.js index f3175c258..c2647a60e 100644 --- a/apps/plane/generated/eu.js +++ b/apps/plane/generated/eu.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
a visual programming environmentBlocklyIkusi sorturiko JavaScript kodea.Gorde eta lotura sortu.Run the program defined by the blocks in the workspace.Programa exekutatuBerriz hasiAdosCancelLogicLoopsMathTextListsColourVariablesProceduresEskaerarekin arazo bat egon da.Elkarbanatu blokeak lotura honekin:\n\n%1Barkatu, «%1» ez dator bat gordetako ezein programarekin.Ezin izan da zure fitxategia kargatu. Agian Blockly-ren beste bertsio batekin sortua izan zen?listtext
'; + return '
a visual programming environmentBlocklyIkusi sorturiko JavaScript kodea.Gorde eta lotura sortu.Run the program defined by the blocks in the workspace.Programa exekutatuBerriz hasiAdosUtziLogikaBegiztakMatematikaTestuaZerrendakKoloreaAldagaiakProzedurakEskaerarekin arazo bat egon da.Elkarbanatu blokeak lotura honekin:\n\n%1Barkatu, «%1» ez dator bat gordetako ezein programarekin.Ezin izan da zure fitxategia kargatu. Agian Blockly-ren beste bertsio batekin sortua izan zen?zerrendatestua
'; }; @@ -36,7 +36,7 @@ if (typeof planepage == 'undefined') { var planepage = {}; } planepage.messages = function(opt_data, opt_ignored, opt_ijData) { - return apps.messages(null, null, opt_ijData) + '
Rows: %1rows (%1)1st class rows: %11st class rows (%1)2nd class rows: %12nd class rows (%1)Seats: %1?seats =
'; + return apps.messages(null, null, opt_ijData) + '
Rows: %1rows (%1)1st class rows: %11st class rows (%1)2nd class rows: %12nd class rows (%1)Eserlekuak: %1?eserlekuak =
'; }; diff --git a/apps/plane/generated/fa.js b/apps/plane/generated/fa.js index 2845b5ba4..6bdd9d826 100644 --- a/apps/plane/generated/fa.js +++ b/apps/plane/generated/fa.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
یک محیط برنامه\u200Cنویسی بصریبلوکیدیدن کد جاوااسکریپت ایجادشده.ذخیره و پیوند به بلوک\u200Cها.اجرای برنامهٔ تعریف\u200Cشده توسط بلوک\u200Cها در فضای کار.اجرای برنامهاز نوتأییدلغومنطقحلقه\u200Cهاریاضیمتنفهرست\u200Cهارنگمتغییرهاروندهامشکلی با درخواست وجود داشت.اشتراک\u200Cگذاری بلاک\u200Cهایتان با این پیوند:\n\n%1شرمنده، «%1» با هیچ برنامهٔ ذخیره\u200Cشده\u200Cای تطبیق پیدا نکرد.نتوانست پروندهٔ ذخیرهٔ شما بارگیری شود. احتمالاً با نسخهٔ متفاوتی از بلوکی درست شده\u200Cاست؟فهرستمتن
'; + return '
یک محیط برنامه\u200Cنویسی بصریبلوکیدیدن کد جاوااسکریپت ایجادشده.ذخیره و پیوند به بلوک\u200Cها.اجرای برنامهٔ تعریف\u200Cشده توسط بلوک\u200Cها در فضای کار.اجرای برنامهاز نوتأییدلغومنطقحلقه\u200Cهاریاضیمتنفهرست\u200Cهارنگمتغییرهاتوابعمشکلی با درخواست وجود داشت.اشتراک\u200Cگذاری بلاک\u200Cهایتان با این پیوند:\n\n%1شرمنده، «%1» با هیچ برنامهٔ ذخیره\u200Cشده\u200Cای تطبیق پیدا نکرد.نتوانست پروندهٔ ذخیرهٔ شما بارگیری شود. احتمالاً با نسخهٔ متفاوتی از بلوکی درست شده\u200Cاست؟فهرستمتن
'; }; diff --git a/apps/plane/generated/fi.js b/apps/plane/generated/fi.js index 9e80e736e..85afb0e8f 100644 --- a/apps/plane/generated/fi.js +++ b/apps/plane/generated/fi.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
visuaalinen ohjelmointiympäristöBlocklyKatso luotua JavaScript-koodia.Save and link to blocks.Run the program defined by the blocks in the workspace.Suorita ohjelmaNollaaOKPeruutaKirjauduLoopsMathTekstiListsVäriMuuttujatProceduresThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listteksti
'; + return '
visuaalinen ohjelmointiympäristöBlocklyKatso luotua JavaScript-koodia.Save and link to blocks.Run the program defined by the blocks in the workspace.Suorita ohjelmaNollaaOKPeruutaKirjauduLoopsMathTekstiListsVäriMuuttujatFunctionsThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listteksti
'; }; diff --git a/apps/plane/generated/fo.js b/apps/plane/generated/fo.js index 835a52d48..6373ee509 100644 --- a/apps/plane/generated/fo.js +++ b/apps/plane/generated/fo.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetOKCancelLogicLoopsMathTextListsColourVariablesProceduresThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; + return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetOKCancelLogicLoopsMathTextListsColourVariablesFunctionsThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; }; diff --git a/apps/plane/generated/fr.js b/apps/plane/generated/fr.js index 6fe1d6c16..c90c6ad26 100644 --- a/apps/plane/generated/fr.js +++ b/apps/plane/generated/fr.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
un environnement de programmation visuelBlocklyVoir le code JavaScript généré\'.Sauvegarde et lies aux blocs.Lancer le programme défini par les blocs dans \\nl’espace de travail. Execute le programmeResetOKAnnulerLogiqueBouclesMathTexteListesCouleurVariablesProcéduresIl y a eu un problème avec la demande.Partagez vos blocs grâce à ce lien:\n\n%1Désolé, \'%1\' ne correspond pas à un fichier Blockly sauvegarde.Impossible de charger le fichier de sauvegarde. Peut être a t-il ete créé avec une autre version de Blockly?listetexte
'; + return '
un environnement de programmation visuelBlocklyVoir le code JavaScript généré.Sauvegarder et lier aux blocs.Lancer le programme défini par les blocs dans l’espace de travail.Exécuter le programmeResetOKAnnulerLogiqueBouclesMathTexteListesCouleurVariablesFonctionsIl y a eu un problème avec la demande.Partagez vos blocs grâce à ce lien:\n\n%1Désolé, \'%1\' ne correspond à aucun programme sauvegardé.Impossible de charger le fichier de sauvegarde. Peut être a t-il été créé avec une autre version de Blockly?listetexte
'; }; diff --git a/apps/plane/generated/frr.js b/apps/plane/generated/frr.js index 835a52d48..6373ee509 100644 --- a/apps/plane/generated/frr.js +++ b/apps/plane/generated/frr.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetOKCancelLogicLoopsMathTextListsColourVariablesProceduresThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; + return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetOKCancelLogicLoopsMathTextListsColourVariablesFunctionsThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; }; diff --git a/apps/plane/generated/gl.js b/apps/plane/generated/gl.js index ce7291fab..802663ded 100644 --- a/apps/plane/generated/gl.js +++ b/apps/plane/generated/gl.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
un contorno de programación visualBlocklyVer o código JavaScript xerado.Gardar e crear unha ligazón aos bloques.Executar o programa definido polos bloques no \\nespazo de traballo. Executar o programaRestablecerAceptarCancelarLóxicaBuclesMatemáticasTextoListasCorVariablesProcedementosHoubo un problema coa solicitude.Comparte os teus bloques con esta ligazón:\n\n%1Sentímolo, "%1" non se corresponde con ningún programa gardado.Non se puido cargar o ficheiro gardado. Se cadra, foi creado cunha versión diferente de Blockly.listatexto
'; + return '
un contorno de programación visualBlocklyVer o código JavaScript xerado.Gardar e crear unha ligazón aos bloques.Executar o programa definido polos bloques no espazo de traballo.Executar o programaRestablecerAceptarCancelarLóxicaBuclesMatemáticasTextoListasCorVariablesFunciónsHoubo un problema coa solicitude.Comparte os teus bloques con esta ligazón:\n\n%1Sentímolo, "%1" non se corresponde con ningún programa gardado.Non se puido cargar o ficheiro gardado. Se cadra, foi creado cunha versión diferente de Blockly.listatexto
'; }; diff --git a/apps/plane/generated/gn.js b/apps/plane/generated/gn.js index a028be3ba..66771ac05 100644 --- a/apps/plane/generated/gn.js +++ b/apps/plane/generated/gn.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
peteĩ techa myatyrõ hekohaBlocklyEhecha JavaScript mba\'e apopyre.Oñongatu ha ombojoaju vorekuéra.Pejapo pe jejaporã vorekuéra ohechauka akue \\ntembiapo rendápe. Pejapo pe JejaporãÑepyrũ jeyOKCancelKuaarapeTapykueguaPapapykuaaJehaipyTysýiSa\'yÑemoambuévaAporekoPeteĩ tekojepe\'y ohechauka.Temboja\'o nde vorekuéra ko joaju ndie:\n\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?tysýijehaipy
'; + return '
peteĩ techa myatyrõ hekohaBlocklyEhecha JavaScript mba\'e apopyre.Oñongatu ha ombojoaju vorekuéra.Pejapo pe jejaporã vorekuéra ohechauka akue tembiapo rendápe.Pejapo pe JejaporãÑepyrũ jeyOKCancelKuaarapeTapykueguaPapapykuaaJehaipyTysýiSa\'yÑemoambuévaAporekoPeteĩ tekojepe\'y ohechauka.Temboja\'o nde vorekuéra ko joaju ndie:\n\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?tysýijehaipy
'; }; diff --git a/apps/plane/generated/hak.js b/apps/plane/generated/hak.js index eb2e6544e..748a8739f 100644 --- a/apps/plane/generated/hak.js +++ b/apps/plane/generated/hak.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramReset確定取消LogicLoopsSṳ-ho̍k kûng-sṳt文字列表顏色變量流程命令出現錯誤。Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.沒存到你保存个檔案。可能它係從其他版本个Blockly創建麼?列表文字
'; + return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramReset確定取消LogicLoopsSṳ-ho̍k kûng-sṳt文字列表顏色變量函數命令出現錯誤。Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.沒存到你保存个檔案。可能它係從其他版本个Blockly創建麼?列表文字
'; }; diff --git a/apps/plane/generated/he.js b/apps/plane/generated/he.js index 98c8b0efb..3216212d0 100644 --- a/apps/plane/generated/he.js +++ b/apps/plane/generated/he.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
סביבת תיכנות חזותיבלוקליהצגת קוד הג\'אווה סקריפט שנוצר. שמירה וקישור לקטעי קוד.הרצת התכנית שהוגדרה על ידי קטעי הקוד שבמרחב העבודה.הרץ תכניתאיפוסאישורביטוללוגיקהלולאותמתמטיקהטקסטרשימותצבעמשתניםפרוצדורותהבקשה נכשלה.ניתן לשתף את קטעי הקוד שלך באמצעות קישור זה:\n\n%1לצערנו, \'%1\' איננו מתאים לאף אחת מהתוכניות השמורותנסיון הטעינה של הקובץ השמור שלך נכשל. האם ייתכן שהוא נוצר בגרסא שונה של בלוקלי?רשימהטקסט
'; + return '
סביבת תיכנות חזותיבלוקליהצגת קוד ה־Javascript שנוצר.שמירה וקישור לקטעי קוד.הרצת התכנית שהוגדרה על ידי קטעי הקוד שבמרחב העבודה.הרץ תכניתאיפוסאישורביטוללוגיקהלולאותמתמטיקהטקסטרשימותצבעמשתניםפונקציותהבקשה נכשלה.ניתן לשתף את קטעי הקוד שלך באמצעות קישור זה:\n\n%1לצערנו, \'%1\' איננו מתאים לאף אחת מהתוכניות השמורותנסיון הטעינה של הקובץ השמור שלך נכשל. האם ייתכן שהוא נוצר בגרסא שונה של בלוקלי?רשימהטקסט
'; }; @@ -58,7 +58,7 @@ planepage.start = function(opt_data, opt_ignored, opt_ijData) { output += 'במטוס יש שני מושבים עבור הצוות (בשביל הטייס וטייס המשנה), ומספר שורות מושבים במחלקת הנוסעים הראשונה ובמחלקת הנוסעים השנייה. כל שורה במחלקה הראשונה מכילה ארבעה מושבים. כל שורה במחלקה השנייה מכילה חמישה מושבים.'; break; } - output += '

בנה נוסחה (למטה) אשר תחשב את סך כל המושבים במטוס בהתאם לשינוי מספר השורות (למעלה)

diff --git a/apps/puzzle/generated/af.js b/apps/puzzle/generated/af.js index c48527d68..546abda3f 100644 --- a/apps/puzzle/generated/af.js +++ b/apps/puzzle/generated/af.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetOKCancelLogicLoopsMathTextListsColourVariablesProceduresThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; + return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetOKCancelLogicLoopsMathTextListsColourVariablesFunctionsThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; }; diff --git a/apps/puzzle/generated/ar.js b/apps/puzzle/generated/ar.js index df58c8945..962bc4a2a 100644 --- a/apps/puzzle/generated/ar.js +++ b/apps/puzzle/generated/ar.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
بيئة برمجة مرئيةبلوكليراجع إنشاء تعليمات برمجية JavaScript.احفظ ووصلة إلى البلوكات.شغل البرنامج المعرف بواسطة البلوكات في مساحة العمل.شغِّل البرنامجإعادة ضبطحسنإلغاء الأمرمنطقالحلقاترياضياتنصقوائملونمتغيراتإجراءاتكانت هناك مشكلة مع هذا الطلب.مشاركة كود بلوكلي الخاص بك مع هذا الرابط:\n 1%عذراً،ال \'1%\' لا تتوافق مع أي برنامج تم حفظه.تعذر تحميل الملف المحفوظة الخاصة بك. ربما تم إنشاؤه باستخدام إصدار مختلف من بلوكلي؟قائمةنص
'; + return '
بيئة برمجة مرئيةبلوكليراجع إنشاء تعليمات برمجية JavaScript.احفظ ووصلة إلى البلوكات.شغل البرنامج المعرف بواسطة البلوكات في مساحة العمل.شغِّل البرنامجإعادة ضبطحسنإلغاء الأمرمنطقالحلقاترياضياتنصقوائملونمتغيراتإجراءاتكانت هناك مشكلة مع هذا الطلب.مشاركة كود بلوكلي الخاص بك مع هذا الرابط:\n %1عذراً،ال \'%1\' لا تتوافق مع أي برنامج تم حفظه.تعذر تحميل الملف المحفوظة الخاصة بك. ربما تم إنشاؤه باستخدام إصدار مختلف من بلوكلي؟قائمةنص
'; }; diff --git a/apps/puzzle/generated/arz.js b/apps/puzzle/generated/arz.js index 7cb01f312..0bfbabf64 100644 --- a/apps/puzzle/generated/arz.js +++ b/apps/puzzle/generated/arz.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetOKCancelLogicLoopsMathTextListsColourVariablesProceduresThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; + return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetOKCancelLogicLoopsMathTextListsColourVariablesFunctionsThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; }; diff --git a/apps/puzzle/generated/be-tarask.js b/apps/puzzle/generated/be-tarask.js index 5485de7f1..804ae2177 100644 --- a/apps/puzzle/generated/be-tarask.js +++ b/apps/puzzle/generated/be-tarask.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
Асяродзьдзе віртуальнага праграмаваньняBlockly (Блоклі)Глядзі згенераваны код JavaScript.Захаваць і зьвязаць з блёкамі. Запусьціце праграму, вызначаную блёкамі ў \\nпрацоўнай вобласьці. Запусьціць праграмуСкасавацьOKСкасавацьЛёгікаПетліМатэматычныя формулыТэкстСьпісыКолерЗьменныяПрацэдурыУзьнікла праблема з запытам.Падзяліцца Вашым блёкам праз гэтую спасылку:\n\n%1Прабачце, \'%1\' не адпавядае ніводнай захаванай праграме.Не атрымалася загрузіць захаваны файл. Магчыма, ён быў створаны з іншай вэрсіяй Блёклі?сьпістэкст
'; + return '
Асяродзьдзе віртуальнага праграмаваньняBlockly (Блоклі)Глядзі згенераваны код JavaScript.Захаваць і зьвязаць з блёкамі.Запусьціце праграму, вызначаную блёкамі ў працоўнай вобласьці.Запусьціць праграмуСкасавацьOKСкасавацьЛёгікаПетліМатэматычныя формулыТэкстСьпісыКолерЗьменныяФункцыіУзьнікла праблема з запытам.Падзяліцца Вашым блёкам праз гэтую спасылку:\n\n%1Прабачце, \'%1\' не адпавядае ніводнай захаванай праграме.Не атрымалася загрузіць захаваны файл. Магчыма, ён быў створаны з іншай вэрсіяй Блёклі?сьпістэкст
'; }; diff --git a/apps/puzzle/generated/bg.js b/apps/puzzle/generated/bg.js index 0d99fd65c..30714c40d 100644 --- a/apps/puzzle/generated/bg.js +++ b/apps/puzzle/generated/bg.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetOKОтказванеLogicLoopsMathTextListsColourПроменливиProceduresThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; + return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetOKОтказванеLogicLoopsMathTextListsColourПроменливиFunctionsThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; }; diff --git a/apps/puzzle/generated/bn.js b/apps/puzzle/generated/bn.js index 67b791587..f09168111 100644 --- a/apps/puzzle/generated/bn.js +++ b/apps/puzzle/generated/bn.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetঠিক আছেCancelLogicLoopsMathTextListsColourVariablesProceduresThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; + return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramResetঠিক আছেCancelLogicLoopsMathTextListsColourVariablesFunctionsThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; }; diff --git a/apps/puzzle/generated/br.js b/apps/puzzle/generated/br.js index 744d92461..49e1a0dfe 100644 --- a/apps/puzzle/generated/br.js +++ b/apps/puzzle/generated/br.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
un endro programmiñ da weletBlocklyGwelet ar c\'hod JavaScript krouet.Enrollañ ha liammañ d\'ar bloc\'hadoù.Lañsañ ar programm termenet gant ar bloc\'hadoù \\nen takad labour. Lañsañ ar programmAdderaouekaatMat eoNullañPoellBoukloùMatematikTestennRolloùLivArgemmennoùArgerzhadurioùUr gudenn zo gant ar reked.Rannañ ho ploc\'hoù gant al liamm-mañ :\n\n%1Digarezit. "%1" ne glot gant programm enrollet ebet.Ne c\'haller ket kargañ ho restr enrollet. Marteze e oa bet krouet gant ur stumm disheñvel eus Blockly ?rolltestenn
'; + return '
un endro programmiñ da weletBlocklyGwelet ar c\'hod JavaScript krouet.Enrollañ ha liammañ d\'ar bloc\'hadoù.Lañsañ ar programm termenet gant ar bloc\'hadoù en takad labour.Lañsañ ar programmAdderaouekaatMat eoNullañPoellBoukloùMatematikTestennRolloùLivArgemmennoùArc\'hwelioùUr gudenn zo gant ar reked.Rannañ ho ploc\'hoù gant al liamm-mañ :\n\n%1Digarezit. "%1" ne glot gant programm enrollet ebet.Ne c\'haller ket kargañ ho restr enrollet. Marteze e oa bet krouet gant ur stumm disheñvel eus Blockly ?rolltestenn
'; }; diff --git a/apps/puzzle/generated/ca.js b/apps/puzzle/generated/ca.js index d2878e347..78f48b0bc 100644 --- a/apps/puzzle/generated/ca.js +++ b/apps/puzzle/generated/ca.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
un entorn visual de programacióBlocklyVegeu el codi JavaScript generat.Desa i enllaça als blocs.Executa el programa definit pels blocs de l\'àrea \\nde treball. Executa el programaReinicialitzaD\'acordCancel·laLògicaBuclesMatemàtiquesTextLlistesColorVariablesProcedimentsHi ha hagut un problema amb la sol·licitud.Comparteix els teus blocs amb aquest enllaç: %1Ho sentim, \'%1\' no es correspon amb cap fitxer desat de Blockly.No s\'ha pogut carregar el teu fitxer desat. Potser va ser creat amb una versió diferent de Blockly?llistatext
'; + return '
un entorn visual de programacióBlocklyVegeu el codi JavaScript generat.Desa i enllaça als blocs.Executa el programa definit pels blocs de l\'àrea de treball.Executa el programaReinicialitzaD\'acordCancel·laLògicaBuclesMatemàtiquesTextLlistesColorVariablesProcedimentsHi ha hagut un problema amb la sol·licitud.Comparteix els teus blocs amb aquest enllaç: %1Ho sentim, \'%1\' no es correspon amb cap fitxer desat de Blockly.No s\'ha pogut carregar el teu fitxer desat. Potser va ser creat amb una versió diferent de Blockly?llistatext
'; }; diff --git a/apps/puzzle/generated/cdo.js b/apps/puzzle/generated/cdo.js index b3aebad5e..ded3dfb6e 100644 --- a/apps/puzzle/generated/cdo.js +++ b/apps/puzzle/generated/cdo.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramReset確定CancelLogicLoopsMathTextListsColourVariablesProceduresThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; + return '
a visual programming environmentBlocklySee generated JavaScript code.Save and link to blocks.Run the program defined by the blocks in the workspace.Run ProgramReset確定CancelLogicLoopsMathTextListsColourVariablesFunctionsThere was a problem with the request.Share your blocks with this link:\\n\\n%1Sorry, \'%1\' doesn\'t correspond with any saved program.Could not load your saved file. Perhaps it was created with a different version of Blockly?listtext
'; }; diff --git a/apps/puzzle/generated/cs.js b/apps/puzzle/generated/cs.js index 49659c9f0..a944d1363 100644 --- a/apps/puzzle/generated/cs.js +++ b/apps/puzzle/generated/cs.js @@ -5,7 +5,7 @@ if (typeof apps == 'undefined') { var apps = {}; } apps.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
grafické programovací prostředíBlocklyZobraz generovaný JavaScriptový kód.Ulož a spoj bloky..Run the program defined by the blocks in the workspace.Spusť programResetOKZrušitLogikaSmyčkyMatematikaTextSeznamyBarvaProměnnéProceduryDošlo k potížím s požadavkem.Sdílej bloky tímto odkazem: %1Omlouváme se, \'%1\' nesouhlasí s žádným z uložených souborů.Nepodařilo se uložit vás soubor. Pravděpodobně byl vytvořen jinou verzí Blockly?seznamtext
'; + return '
grafické programovací prostředíBlocklyZobrazit generovaný JavaScriptový kód.Ulož a spoj bloky..Run the program defined by the blocks in the workspace.Spusť programResetOKZrušitLogikaSmyčkyMatematikaTextSeznamyBarvaProměnnéProceduryDošlo k potížím s požadavkem.Sdílej bloky tímto odkazem: \n\n%1Omlouváme se, \'%1\' nesouhlasí s žádným z uložených souborů.Nepodařilo se uložit vás soubor. Pravděpodobně byl vytvořen jinou verzí Blockly?seznamtext
'; }; @@ -36,12 +36,12 @@ if (typeof puzzlepage == 'undefined') { var puzzlepage = {}; } puzzlepage.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
Austrálieflag_au.png50100AngličtinaMelbourneSydneyhttps://cs.wikipedia.org/wiki/AustrálieNěmeckoflag_de.png60100NěmčinaBerlínMnichovhttps://cs.wikipedia.org/wiki/NěmeckoČínaflag_cn.png66100ČínštinaPekingŠanghajhttps://cs.wikipedia.org/wiki/ČínaBrazílieflag_br.png70100PortugalštinaRio de JaneiroSão Paulohttps://cs.wikipedia.org/wiki/Brazílievlajka:jazyk:vyber...města:Výborně!\nVšech %1 bloků je umístěno správně.Skoro! Jeden blok je nesprávně.%1 bloky jsou chybně.Zvýrazněný blok není správně.\nZkoušej to dál.
'; + return '
Austrálieflag_au.png50100AngličtinaMelbourneSydneyhttps://cs.wikipedia.org/wiki/AustrálieNěmeckoflag_de.png60100NěmčinaBerlínMnichovhttps://cs.wikipedia.org/wiki/NěmeckoČínaflag_cn.png66100ČínštinaPekingŠanghajhttps://cs.wikipedia.org/wiki/ČínaBrazílieflag_br.png70100PortugalštinaRio de JaneiroSão Paulohttps://cs.wikipedia.org/wiki/Brazílievlajka:jazyk:vyber...města:Výborně!\nVšech %1 bloků je umístěno správně.Skoro! Jeden blok je špatně.%1 bloky jsou chybně.Zvýrazněný blok není správně.\nZkoušej to dál.
'; }; puzzlepage.start = function(opt_data, opt_ignored, opt_ijData) { - return puzzlepage.messages(null, null, opt_ijData) + ' -

→ More info on Cloud Storage...

+

→ More info on Cloud Storage...

@@ -50,8 +50,14 @@