mirror of
https://github.com/google/blockly.git
synced 2026-01-08 09:30:06 +01:00
Move Code app to demos directory.
This commit is contained in:
510
demos/code/code.js
Normal file
510
demos/code/code.js
Normal file
@@ -0,0 +1,510 @@
|
||||
/**
|
||||
* Blockly Demos: Code
|
||||
*
|
||||
* Copyright 2012 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 JavaScript for Blockly's Code demo.
|
||||
* @author fraser@google.com (Neil Fraser)
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Create a namespace for the application.
|
||||
*/
|
||||
var Code = {};
|
||||
|
||||
/**
|
||||
* Lookup for names of supported languages. Keys should be in ISO 639 format.
|
||||
*/
|
||||
Code.LANGUAGE_NAME = {
|
||||
'ace': 'بهسا اچيه',
|
||||
'ar': 'العربية',
|
||||
'be-tarask': 'Taraškievica',
|
||||
'br': 'Brezhoneg',
|
||||
'ca': 'Català',
|
||||
'cs': 'Česky',
|
||||
'da': 'Dansk',
|
||||
'de': 'Deutsch',
|
||||
'el': 'Ελληνικά',
|
||||
'en': 'English',
|
||||
'es': 'Español',
|
||||
'fa': 'فارسی',
|
||||
'fr': 'Français',
|
||||
'gl': 'Galego',
|
||||
'he': 'עברית',
|
||||
'hrx': 'Hunsrik',
|
||||
'hu': 'Magyar',
|
||||
'ia': 'Interlingua',
|
||||
'is': 'Íslenska',
|
||||
'it': 'Italiano',
|
||||
'ja': '日本語',
|
||||
'ko': '한국어',
|
||||
'lv': 'Latviešu',
|
||||
'mg': 'Malagasy',
|
||||
'mk': 'Македонски',
|
||||
'ms': 'Bahasa Melayu',
|
||||
'nb': 'Norsk Bokmål',
|
||||
'nl': 'Nederlands, Vlaams',
|
||||
'oc': 'Lenga d\'òc',
|
||||
'pl': 'Polski',
|
||||
'pms': 'Piemontèis',
|
||||
'pt-br': 'Português Brasileiro',
|
||||
'ro': 'Română',
|
||||
'ru': 'Русский',
|
||||
'sc': 'Sardu',
|
||||
'sco': 'Scots',
|
||||
'sk': 'Slovenčina',
|
||||
'sr': 'Српски',
|
||||
'sv': 'Svenska',
|
||||
'th': 'ภาษาไทย',
|
||||
'tlh': 'tlhIngan Hol',
|
||||
'tr': 'Türkçe',
|
||||
'uk': 'Українська',
|
||||
'vi': 'Tiếng Việt',
|
||||
'zh-hans': '簡體中文',
|
||||
'zh-hant': '正體中文'
|
||||
};
|
||||
|
||||
/**
|
||||
* List of RTL languages.
|
||||
*/
|
||||
Code.LANGUAGE_RTL = ['ace', 'ar', 'fa', 'he'];
|
||||
|
||||
/**
|
||||
* Extracts a parameter from the URL.
|
||||
* If the parameter is absent default_value is returned.
|
||||
* @param {string} name The name of the parameter.
|
||||
* @param {string} defaultValue Value to return if paramater not found.
|
||||
* @return {string} The parameter value or the default value if not found.
|
||||
*/
|
||||
Code.getStringParamFromUrl = function(name, defaultValue) {
|
||||
var val = location.search.match(new RegExp('[?&]' + name + '=([^&]+)'));
|
||||
return val ? decodeURIComponent(val[1].replace(/\+/g, '%20')) : defaultValue;
|
||||
};
|
||||
|
||||
/**
|
||||
* Get the language of this user from the URL.
|
||||
* @return {string} User's language.
|
||||
*/
|
||||
Code.getLang = function() {
|
||||
var lang = Code.getStringParamFromUrl('lang', '');
|
||||
if (Code.LANGUAGE_NAME[lang] === undefined) {
|
||||
// Default to English.
|
||||
lang = 'en';
|
||||
}
|
||||
return lang;
|
||||
};
|
||||
|
||||
/**
|
||||
* Is the current language (Code.LANG) an RTL language?
|
||||
* @return {boolean} True if RTL, false if LTR.
|
||||
*/
|
||||
Code.isRtl = function() {
|
||||
return Code.LANGUAGE_RTL.indexOf(Code.LANG) != -1;
|
||||
};
|
||||
|
||||
/**
|
||||
* Load blocks saved on App Engine Storage or in session/local storage.
|
||||
* @param {string} defaultXml Text representation of default blocks.
|
||||
*/
|
||||
Code.loadBlocks = function(defaultXml) {
|
||||
try {
|
||||
var loadOnce = window.sessionStorage.loadOnceBlocks;
|
||||
} catch(e) {
|
||||
// Firefox sometimes throws a SecurityError when accessing sessionStorage.
|
||||
// Restarting Firefox fixes this, so it looks like a bug.
|
||||
var loadOnce = null;
|
||||
}
|
||||
if ('BlocklyStorage' in window && window.location.hash.length > 1) {
|
||||
// An href with #key trigers an AJAX call to retrieve saved blocks.
|
||||
BlocklyStorage.retrieveXml(window.location.hash.substring(1));
|
||||
} else if (loadOnce) {
|
||||
// Language switching stores the blocks during the reload.
|
||||
delete window.sessionStorage.loadOnceBlocks;
|
||||
var xml = Blockly.Xml.textToDom(loadOnce);
|
||||
Blockly.Xml.domToWorkspace(Blockly.mainWorkspace, xml);
|
||||
} else if (defaultXml) {
|
||||
// Load the editor with default starting blocks.
|
||||
var xml = Blockly.Xml.textToDom(defaultXml);
|
||||
Blockly.Xml.domToWorkspace(Blockly.mainWorkspace, xml);
|
||||
} else if ('BlocklyStorage' in window) {
|
||||
// Restore saved blocks in a separate thread so that subsequent
|
||||
// initialization is not affected from a failed load.
|
||||
window.setTimeout(BlocklyStorage.restoreBlocks, 0);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Save the blocks and reload with a different language.
|
||||
*/
|
||||
Code.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.
|
||||
// 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;
|
||||
}
|
||||
|
||||
var languageMenu = document.getElementById('languageMenu');
|
||||
var newLang = encodeURIComponent(
|
||||
languageMenu.options[languageMenu.selectedIndex].value);
|
||||
var search = window.location.search;
|
||||
if (search.length <= 1) {
|
||||
search = '?lang=' + newLang;
|
||||
} else if (search.match(/[?&]lang=[^&]*/)) {
|
||||
search = search.replace(/([?&]lang=)[^&]*/, '$1' + newLang);
|
||||
} else {
|
||||
search = search.replace(/\?/, '?lang=' + newLang + '&');
|
||||
}
|
||||
|
||||
window.location = window.location.protocol + '//' +
|
||||
window.location.host + window.location.pathname + search;
|
||||
};
|
||||
|
||||
/**
|
||||
* Bind a function to a button's click event.
|
||||
* On touch enabled browsers, ontouchend is treated as equivalent to onclick.
|
||||
* @param {!Element|string} el Button element or ID thereof.
|
||||
* @param {!Function} func Event handler to bind.
|
||||
*/
|
||||
Code.bindClick = function(el, func) {
|
||||
if (typeof el == 'string') {
|
||||
el = document.getElementById(el);
|
||||
}
|
||||
el.addEventListener('click', func, true);
|
||||
el.addEventListener('touchend', func, true);
|
||||
};
|
||||
|
||||
/**
|
||||
* Load the Prettify CSS and JavaScript.
|
||||
*/
|
||||
Code.importPrettify = function() {
|
||||
//<link rel="stylesheet" type="text/css" href="../prettify.css">
|
||||
//<script type="text/javascript" src="../prettify.js"></script>
|
||||
var link = document.createElement('link');
|
||||
link.setAttribute('rel', 'stylesheet');
|
||||
link.setAttribute('type', 'text/css');
|
||||
link.setAttribute('href', '../prettify.css');
|
||||
document.head.appendChild(link);
|
||||
var script = document.createElement('script');
|
||||
script.setAttribute('type', 'text/javascript');
|
||||
script.setAttribute('src', '../prettify.js');
|
||||
document.head.appendChild(script);
|
||||
};
|
||||
|
||||
/**
|
||||
* Compute the absolute coordinates and dimensions of an HTML element.
|
||||
* @param {!Element} element Element to match.
|
||||
* @return {!Object} Contains height, width, x, and y properties.
|
||||
* @private
|
||||
*/
|
||||
Code.getBBox_ = function(element) {
|
||||
var height = element.offsetHeight;
|
||||
var width = element.offsetWidth;
|
||||
var x = 0;
|
||||
var y = 0;
|
||||
do {
|
||||
x += element.offsetLeft;
|
||||
y += element.offsetTop;
|
||||
element = element.offsetParent;
|
||||
} while (element);
|
||||
return {
|
||||
height: height,
|
||||
width: width,
|
||||
x: x,
|
||||
y: y
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* User's language (e.g. "en").
|
||||
* @type string
|
||||
*/
|
||||
Code.LANG = Code.getLang();
|
||||
|
||||
/**
|
||||
* List of tab names.
|
||||
* @private
|
||||
*/
|
||||
Code.TABS_ = ['blocks', 'javascript', 'python', 'dart', 'xml'];
|
||||
|
||||
Code.selected = 'blocks';
|
||||
|
||||
/**
|
||||
* Switch the visible pane when a tab is clicked.
|
||||
* @param {string} clickedName Name of tab clicked.
|
||||
*/
|
||||
Code.tabClick = function(clickedName) {
|
||||
// If the XML tab was open, save and render the content.
|
||||
if (document.getElementById('tab_xml').className == 'tabon') {
|
||||
var xmlTextarea = document.getElementById('content_xml');
|
||||
var xmlText = xmlTextarea.value;
|
||||
var xmlDom = null;
|
||||
try {
|
||||
xmlDom = Blockly.Xml.textToDom(xmlText);
|
||||
} catch (e) {
|
||||
var q =
|
||||
window.confirm(MSG['badXml'].replace('%1', e));
|
||||
if (!q) {
|
||||
// Leave the user on the XML tab.
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (xmlDom) {
|
||||
Blockly.mainWorkspace.clear();
|
||||
Blockly.Xml.domToWorkspace(Blockly.mainWorkspace, xmlDom);
|
||||
}
|
||||
}
|
||||
|
||||
// Deselect all tabs and hide all panes.
|
||||
for (var i = 0; i < Code.TABS_.length; i++) {
|
||||
var name = Code.TABS_[i];
|
||||
document.getElementById('tab_' + name).className = 'taboff';
|
||||
document.getElementById('content_' + name).style.visibility = 'hidden';
|
||||
}
|
||||
|
||||
// Select the active tab.
|
||||
Code.selected = clickedName;
|
||||
document.getElementById('tab_' + clickedName).className = 'tabon';
|
||||
// Show the selected pane.
|
||||
document.getElementById('content_' + clickedName).style.visibility =
|
||||
'visible';
|
||||
Code.renderContent();
|
||||
Blockly.fireUiEvent(window, 'resize');
|
||||
};
|
||||
|
||||
/**
|
||||
* Populate the currently selected pane with content generated from the blocks.
|
||||
*/
|
||||
Code.renderContent = function() {
|
||||
var content = document.getElementById('content_' + Code.selected);
|
||||
// Initialize the pane.
|
||||
if (content.id == 'content_xml') {
|
||||
var xmlTextarea = document.getElementById('content_xml');
|
||||
var xmlDom = Blockly.Xml.workspaceToDom(Blockly.mainWorkspace);
|
||||
var xmlText = Blockly.Xml.domToPrettyText(xmlDom);
|
||||
xmlTextarea.value = xmlText;
|
||||
xmlTextarea.focus();
|
||||
} else if (content.id == 'content_javascript') {
|
||||
var code = Blockly.JavaScript.workspaceToCode();
|
||||
content.textContent = code;
|
||||
if (typeof prettyPrintOne == 'function') {
|
||||
code = content.innerHTML;
|
||||
code = prettyPrintOne(code, 'js');
|
||||
content.innerHTML = code;
|
||||
}
|
||||
} else if (content.id == 'content_python') {
|
||||
code = Blockly.Python.workspaceToCode();
|
||||
content.textContent = code;
|
||||
if (typeof prettyPrintOne == 'function') {
|
||||
code = content.innerHTML;
|
||||
code = prettyPrintOne(code, 'py');
|
||||
content.innerHTML = code;
|
||||
}
|
||||
} else if (content.id == 'content_dart') {
|
||||
code = Blockly.Dart.workspaceToCode();
|
||||
content.textContent = code;
|
||||
if (typeof prettyPrintOne == 'function') {
|
||||
code = content.innerHTML;
|
||||
code = prettyPrintOne(code, 'dart');
|
||||
content.innerHTML = code;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Initialize Blockly. Called on page load.
|
||||
*/
|
||||
Code.init = function() {
|
||||
Code.initLanguage();
|
||||
|
||||
// Disable the link button if page isn't backed by App Engine storage.
|
||||
var linkButton = document.getElementById('linkButton');
|
||||
if ('BlocklyStorage' in window) {
|
||||
BlocklyStorage['HTTPREQUEST_ERROR'] = MSG['httpRequestError'];
|
||||
BlocklyStorage['LINK_ALERT'] = MSG['linkAlert'];
|
||||
BlocklyStorage['HASH_ERROR'] = MSG['hashError'];
|
||||
BlocklyStorage['XML_ERROR'] = MSG['xmlError'];
|
||||
BlocklyApps.bindClick(linkButton, BlocklyStorage.link);
|
||||
} else if (linkButton) {
|
||||
linkButton.className = 'disabled';
|
||||
}
|
||||
|
||||
var rtl = Code.isRtl();
|
||||
var container = document.getElementById('content_area');
|
||||
var onresize = function(e) {
|
||||
var bBox = Code.getBBox_(container);
|
||||
for (var i = 0; i < Code.TABS_.length; i++) {
|
||||
var el = document.getElementById('content_' + Code.TABS_[i]);
|
||||
el.style.top = bBox.y + 'px';
|
||||
el.style.left = bBox.x + 'px';
|
||||
// Height and width need to be set, read back, then set again to
|
||||
// compensate for scrollbars.
|
||||
el.style.height = bBox.height + 'px';
|
||||
el.style.height = (2 * bBox.height - el.offsetHeight) + 'px';
|
||||
el.style.width = bBox.width + 'px';
|
||||
el.style.width = (2 * bBox.width - el.offsetWidth) + 'px';
|
||||
}
|
||||
// Make the 'Blocks' tab line up with the toolbox.
|
||||
if (Blockly.Toolbox.width) {
|
||||
document.getElementById('tab_blocks').style.minWidth =
|
||||
(Blockly.Toolbox.width - 38) + 'px';
|
||||
// Account for the 19 pixel margin and on each side.
|
||||
}
|
||||
};
|
||||
window.addEventListener('resize', onresize, false);
|
||||
|
||||
var toolbox = document.getElementById('toolbox');
|
||||
Blockly.inject(document.getElementById('content_blocks'),
|
||||
{media: '../../media/',
|
||||
rtl: rtl,
|
||||
toolbox: toolbox});
|
||||
|
||||
// Add to reserved word list: Local variables in execution evironment (runJS)
|
||||
// and the infinite loop detection function.
|
||||
Blockly.JavaScript.addReservedWords('code,timeouts,checkTimeout');
|
||||
|
||||
Code.loadBlocks('');
|
||||
|
||||
if ('BlocklyStorage' in window) {
|
||||
// Hook a save function onto unload.
|
||||
BlocklyStorage.backupOnUnload();
|
||||
}
|
||||
|
||||
Code.tabClick(Code.selected);
|
||||
Blockly.fireUiEvent(window, 'resize');
|
||||
|
||||
Code.bindClick('trashButton',
|
||||
function() {Code.discard(); Code.renderContent();});
|
||||
Code.bindClick('runButton', Code.runJS);
|
||||
|
||||
for (var i = 0; i < Code.TABS_.length; i++) {
|
||||
var name = Code.TABS_[i];
|
||||
Code.bindClick('tab_' + name,
|
||||
function(name_) {return function() {Code.tabClick(name_);};}(name));
|
||||
}
|
||||
|
||||
// Lazy-load the syntax-highlighting.
|
||||
window.setTimeout(Code.importPrettify, 1);
|
||||
};
|
||||
|
||||
/**
|
||||
* Initialize the page language.
|
||||
*/
|
||||
Code.initLanguage = function() {
|
||||
// Set the HTML's language and direction.
|
||||
// document.dir fails in Mozilla, use document.body.parentNode.dir instead.
|
||||
// https://bugzilla.mozilla.org/show_bug.cgi?id=151407
|
||||
var rtl = Code.isRtl();
|
||||
document.head.parentElement.setAttribute('dir', rtl ? 'rtl' : 'ltr');
|
||||
document.head.parentElement.setAttribute('lang', Code.LANG);
|
||||
|
||||
// Sort languages alphabetically.
|
||||
var languages = [];
|
||||
for (var lang in Code.LANGUAGE_NAME) {
|
||||
languages.push([Code.LANGUAGE_NAME[lang], lang]);
|
||||
}
|
||||
var comp = function(a, b) {
|
||||
// Sort based on first argument ('English', 'Русский', '简体字', etc).
|
||||
if (a[0] > b[0]) return 1;
|
||||
if (a[0] < b[0]) return -1;
|
||||
return 0;
|
||||
};
|
||||
languages.sort(comp);
|
||||
// Populate the language selection menu.
|
||||
var languageMenu = document.getElementById('languageMenu');
|
||||
languageMenu.options.length = 0;
|
||||
for (var i = 0; i < languages.length; i++) {
|
||||
var tuple = languages[i];
|
||||
var lang = tuple[tuple.length - 1];
|
||||
var option = new Option(tuple[0], lang);
|
||||
if (lang == Code.LANG) {
|
||||
option.selected = true;
|
||||
}
|
||||
languageMenu.options.add(option);
|
||||
}
|
||||
languageMenu.addEventListener('change', Code.changeLanguage, true);
|
||||
|
||||
// Inject language strings.
|
||||
document.title += ' ' + MSG['title'];
|
||||
document.getElementById('title').textContent = MSG['title'];
|
||||
document.getElementById('tab_blocks').textContent = MSG['blocks'];
|
||||
|
||||
document.getElementById('linkButton').title = MSG['linkTooltip'];
|
||||
document.getElementById('runButton').title = MSG['runTooltip'];
|
||||
document.getElementById('trashButton').title = MSG['trashTooltip'];
|
||||
|
||||
var categories = ['catLogic', 'catLoops', 'catMath', 'catText', 'catLists',
|
||||
'catColour', 'catVariables', 'catFunctions'];
|
||||
for (var i = 0, cat; cat = categories[i]; i++) {
|
||||
document.getElementById(cat).setAttribute('name', MSG[cat]);
|
||||
}
|
||||
var textVars = document.getElementsByClassName('textVar');
|
||||
for (var i = 0, textVar; textVar = textVars[i]; i++) {
|
||||
textVar.textContent = MSG['textVariable'];
|
||||
}
|
||||
var listVars = document.getElementsByClassName('listVar');
|
||||
for (var i = 0, listVar; listVar = listVars[i]; i++) {
|
||||
listVar.textContent = MSG['listVariable'];
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Execute the user's code.
|
||||
* Just a quick and dirty eval. Catch infinite loops.
|
||||
*/
|
||||
Code.runJS = function() {
|
||||
Blockly.JavaScript.INFINITE_LOOP_TRAP = ' checkTimeout();\n';
|
||||
var timeouts = 0;
|
||||
var checkTimeout = function() {
|
||||
if (timeouts++ > 1000000) {
|
||||
throw MSG['timeout'];
|
||||
}
|
||||
};
|
||||
var code = Blockly.JavaScript.workspaceToCode();
|
||||
Blockly.JavaScript.INFINITE_LOOP_TRAP = null;
|
||||
try {
|
||||
eval(code);
|
||||
} catch (e) {
|
||||
alert(MSG['badCode'].replace('%1', e));
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Discard all blocks from the workspace.
|
||||
*/
|
||||
Code.discard = function() {
|
||||
var count = Blockly.mainWorkspace.getAllBlocks().length;
|
||||
if (count < 2 ||
|
||||
window.confirm(MSG['discard'].replace('%1', count))) {
|
||||
Blockly.mainWorkspace.clear();
|
||||
window.location.hash = '';
|
||||
}
|
||||
};
|
||||
|
||||
// Load the Code demo's language strings.
|
||||
document.write('<script type="text/javascript" src="msg/' +
|
||||
Code.LANG + '.js"></script>\n');
|
||||
// Load Blockly's language strings.
|
||||
document.write('<script type="text/javascript" src="../../msg/js/' +
|
||||
Code.LANG + '.js"></script>\n');
|
||||
|
||||
window.addEventListener('load', Code.init);
|
||||
BIN
demos/code/icon.png
Normal file
BIN
demos/code/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.0 KiB |
BIN
demos/code/icons.png
Normal file
BIN
demos/code/icons.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 546 B |
274
demos/code/index.html
Normal file
274
demos/code/index.html
Normal file
@@ -0,0 +1,274 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="google" value="notranslate">
|
||||
<title>Blockly Demo:</title>
|
||||
<link rel="stylesheet" type="text/css" href="style.css">
|
||||
<script type="text/javascript" src="/storage.js"></script>
|
||||
<script type="text/javascript" src="../../blockly_compressed.js"></script>
|
||||
<script type="text/javascript" src="../../blocks_compressed.js"></script>
|
||||
<script type="text/javascript" src="../../javascript_compressed.js"></script>
|
||||
<script type="text/javascript" src="../../python_compressed.js"></script>
|
||||
<script type="text/javascript" src="../../dart_compressed.js"></script>
|
||||
<script type="text/javascript" src="code.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<table width="100%" height="100%">
|
||||
<tr>
|
||||
<td>
|
||||
<h1><a href="https://developers.google.com/blockly/">Blockly</a> >
|
||||
<a href="../index.html">Demos</a> >
|
||||
<span id="title">...</span>
|
||||
</h1>
|
||||
</td>
|
||||
<td class="farSide">
|
||||
<select id="languageMenu"></select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=2>
|
||||
<table width="100%">
|
||||
<tr id="tabRow" height="1em">
|
||||
<td id="tab_blocks" class="tabon">...</td>
|
||||
<td class="tabmin"> </td>
|
||||
<td id="tab_javascript" class="taboff">JavaScript</td>
|
||||
<td class="tabmin"> </td>
|
||||
<td id="tab_python" class="taboff">Python</td>
|
||||
<td class="tabmin"> </td>
|
||||
<td id="tab_dart" class="taboff">Dart</td>
|
||||
<td class="tabmin"> </td>
|
||||
<td id="tab_xml" class="taboff">XML</td>
|
||||
<td class="tabmax">
|
||||
<button id="trashButton" class="notext" title="...">
|
||||
<img src='../../media/1x1.gif' class="trash icon21">
|
||||
</button>
|
||||
<button id="linkButton" class="notext" title="...">
|
||||
<img src='../../media/1x1.gif' class="link icon21">
|
||||
</button>
|
||||
<button id="runButton" class="notext primary" title="...">
|
||||
<img src='../../media/1x1.gif' class="run icon21">
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="99%" colspan=2 id="content_area">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div id="content_blocks" class="content"></div>
|
||||
<pre id="content_javascript" class="content"></pre>
|
||||
<pre id="content_python" class="content"></pre>
|
||||
<pre id="content_dart" class="content"></pre>
|
||||
<textarea id="content_xml" class="content" wrap="off"></textarea>
|
||||
|
||||
<xml id="toolbox" style="display: none">
|
||||
<category id="catLogic">
|
||||
<block type="controls_if"></block>
|
||||
<block type="logic_compare"></block>
|
||||
<block type="logic_operation"></block>
|
||||
<block type="logic_negate"></block>
|
||||
<block type="logic_boolean"></block>
|
||||
<block type="logic_null"></block>
|
||||
<block type="logic_ternary"></block>
|
||||
</category>
|
||||
<category id="catLoops">
|
||||
<block type="controls_repeat_ext">
|
||||
<value name="TIMES">
|
||||
<block type="math_number">
|
||||
<field name="NUM">10</field>
|
||||
</block>
|
||||
</value>
|
||||
</block>
|
||||
<block type="controls_whileUntil"></block>
|
||||
<block type="controls_for">
|
||||
<value name="FROM">
|
||||
<block type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</block>
|
||||
</value>
|
||||
<value name="TO">
|
||||
<block type="math_number">
|
||||
<field name="NUM">10</field>
|
||||
</block>
|
||||
</value>
|
||||
<value name="BY">
|
||||
<block type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</block>
|
||||
</value>
|
||||
</block>
|
||||
<block type="controls_forEach"></block>
|
||||
<block type="controls_flow_statements"></block>
|
||||
</category>
|
||||
<category id="catMath">
|
||||
<block type="math_number"></block>
|
||||
<block type="math_arithmetic"></block>
|
||||
<block type="math_single"></block>
|
||||
<block type="math_trig"></block>
|
||||
<block type="math_constant"></block>
|
||||
<block type="math_number_property"></block>
|
||||
<block type="math_change">
|
||||
<value name="DELTA">
|
||||
<block type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</block>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_round"></block>
|
||||
<block type="math_on_list"></block>
|
||||
<block type="math_modulo"></block>
|
||||
<block type="math_constrain">
|
||||
<value name="LOW">
|
||||
<block type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</block>
|
||||
</value>
|
||||
<value name="HIGH">
|
||||
<block type="math_number">
|
||||
<field name="NUM">100</field>
|
||||
</block>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_random_int">
|
||||
<value name="FROM">
|
||||
<block type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</block>
|
||||
</value>
|
||||
<value name="TO">
|
||||
<block type="math_number">
|
||||
<field name="NUM">100</field>
|
||||
</block>
|
||||
</value>
|
||||
</block>
|
||||
<block type="math_random_float"></block>
|
||||
</category>
|
||||
<category id="catText">
|
||||
<block type="text"></block>
|
||||
<block type="text_join"></block>
|
||||
<block type="text_append">
|
||||
<value name="TEXT">
|
||||
<block type="text"></block>
|
||||
</value>
|
||||
</block>
|
||||
<block type="text_length"></block>
|
||||
<block type="text_isEmpty"></block>
|
||||
<block type="text_indexOf">
|
||||
<value name="VALUE">
|
||||
<block type="variables_get">
|
||||
<field name="VAR" class="textVar">...</field>
|
||||
</block>
|
||||
</value>
|
||||
</block>
|
||||
<block type="text_charAt">
|
||||
<value name="VALUE">
|
||||
<block type="variables_get">
|
||||
<field name="VAR" class="textVar">...</field>
|
||||
</block>
|
||||
</value>
|
||||
</block>
|
||||
<block type="text_getSubstring">
|
||||
<value name="STRING">
|
||||
<block type="variables_get">
|
||||
<field name="VAR" class="textVar">...</field>
|
||||
</block>
|
||||
</value>
|
||||
</block>
|
||||
<block type="text_changeCase"></block>
|
||||
<block type="text_trim"></block>
|
||||
<block type="text_print"></block>
|
||||
<block type="text_prompt_ext">
|
||||
<value name="TEXT">
|
||||
<block type="text"></block>
|
||||
</value>
|
||||
</block>
|
||||
</category>
|
||||
<category id="catLists">
|
||||
<block type="lists_create_empty"></block>
|
||||
<block type="lists_create_with"></block>
|
||||
<block type="lists_repeat">
|
||||
<value name="NUM">
|
||||
<block type="math_number">
|
||||
<field name="NUM">5</field>
|
||||
</block>
|
||||
</value>
|
||||
</block>
|
||||
<block type="lists_length"></block>
|
||||
<block type="lists_isEmpty"></block>
|
||||
<block type="lists_indexOf">
|
||||
<value name="VALUE">
|
||||
<block type="variables_get">
|
||||
<field name="VAR" class="listVar">...</field>
|
||||
</block>
|
||||
</value>
|
||||
</block>
|
||||
<block type="lists_getIndex">
|
||||
<value name="VALUE">
|
||||
<block type="variables_get">
|
||||
<field name="VAR" class="listVar">...</field>
|
||||
</block>
|
||||
</value>
|
||||
</block>
|
||||
<block type="lists_setIndex">
|
||||
<value name="LIST">
|
||||
<block type="variables_get">
|
||||
<field name="VAR" class="listVar">...</field>
|
||||
</block>
|
||||
</value>
|
||||
</block>
|
||||
<block type="lists_getSublist">
|
||||
<value name="LIST">
|
||||
<block type="variables_get">
|
||||
<field name="VAR" class="listVar">...</field>
|
||||
</block>
|
||||
</value>
|
||||
</block>
|
||||
</category>
|
||||
<category id="catColour">
|
||||
<block type="colour_picker"></block>
|
||||
<block type="colour_random"></block>
|
||||
<block type="colour_rgb">
|
||||
<value name="RED">
|
||||
<block type="math_number">
|
||||
<field name="NUM">100</field>
|
||||
</block>
|
||||
</value>
|
||||
<value name="GREEN">
|
||||
<block type="math_number">
|
||||
<field name="NUM">50</field>
|
||||
</block>
|
||||
</value>
|
||||
<value name="BLUE">
|
||||
<block type="math_number">
|
||||
<field name="NUM">0</field>
|
||||
</block>
|
||||
</value>
|
||||
</block>
|
||||
<block type="colour_blend">
|
||||
<value name="COLOUR1">
|
||||
<block type="colour_picker">
|
||||
<field name="COLOUR">#ff0000</field>
|
||||
</block>
|
||||
</value>
|
||||
<value name="COLOUR2">
|
||||
<block type="colour_picker">
|
||||
<field name="COLOUR">#3333ff</field>
|
||||
</block>
|
||||
</value>
|
||||
<value name="RATIO">
|
||||
<block type="math_number">
|
||||
<field name="NUM">0.5</field>
|
||||
</block>
|
||||
</value>
|
||||
</block>
|
||||
</category>
|
||||
<category id="catVariables" custom="VARIABLE"></category>
|
||||
<category id="catFunctions" custom="PROCEDURE"></category>
|
||||
</xml>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
25
demos/code/msg/ace.js
Normal file
25
demos/code/msg/ace.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Kode",
|
||||
blocks: "Seuneutheun",
|
||||
linkTooltip: "Keubah ngon neupawôt keu theun",
|
||||
runTooltip: "Neupeujak program nyang geupeuteutap le seuneutheun lam ruweuëng keurija",
|
||||
badCode: "Ralat program\n%1",
|
||||
timeout: "Eksekusi maksimum ka leupah",
|
||||
discard: "Sampôh mandum %1 seuneutheun",
|
||||
trashTooltip: "Boh mandum seuneutheun",
|
||||
catLogic: "Logis",
|
||||
catLoops: "Kuwien",
|
||||
catMath: "Matematik",
|
||||
catText: "Haraih",
|
||||
catLists: "Dapeuta",
|
||||
catColour: "Wareuna",
|
||||
catVariables: "Meumacam",
|
||||
catFunctions: "Prosedur",
|
||||
listVariable: "dapeuta",
|
||||
textVariable: "haraih",
|
||||
httpRequestError: "Na masalah lam neumeulakèe",
|
||||
linkAlert: "Neubagi seuneutheun droëneuh ngon peunawôt nyoë: %1",
|
||||
hashError: "Meu'ah, '%1' hana saban sakri ngon peuë mantong program nyang meukeubah",
|
||||
xmlError: "Beureukaih keuneubah droëneuh han jeuët geupasoë. Kadang na neupeugot ngon versi seuneutheun yang la'én",
|
||||
badXml: "Ralat 'oh geuploh XML\n%1\n\nNeupileh 'OK' keu peulucôt meuandam droëneuh atawa 'Peubateuë' keu neusambông meuandam XML-jih"
|
||||
};
|
||||
25
demos/code/msg/ar.js
Normal file
25
demos/code/msg/ar.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "كود",
|
||||
blocks: "البلوكات",
|
||||
linkTooltip: "احفظ ووصلة إلى البلوكات.",
|
||||
runTooltip: "شغل البرنامج المعرف بواسطة البلوكات في مساحة العمل.",
|
||||
badCode: "خطأ في البرنامج:\n %1",
|
||||
timeout: "تم تجاوز الحد الأقصى لتكرارات التنفيذ .",
|
||||
discard: "حذف كل بلوكات %1؟",
|
||||
trashTooltip: "تجاهل كل البلوكات.",
|
||||
catLogic: "منطق",
|
||||
catLoops: "الحلقات",
|
||||
catMath: "رياضيات",
|
||||
catText: "نص",
|
||||
catLists: "قوائم",
|
||||
catColour: "لون",
|
||||
catVariables: "متغيرات",
|
||||
catFunctions: "إجراءات",
|
||||
listVariable: "قائمة",
|
||||
textVariable: "نص",
|
||||
httpRequestError: "كانت هناك مشكلة مع هذا الطلب.",
|
||||
linkAlert: "مشاركة كود بلوكلي الخاص بك مع هذا الرابط:\n %1",
|
||||
hashError: "عذراً،ال '%1' لا تتوافق مع أي برنامج تم حفظه.",
|
||||
xmlError: "تعذر تحميل الملف المحفوظة الخاصة بك. ربما تم إنشاؤه باستخدام إصدار مختلف من بلوكلي؟",
|
||||
badXml: "خطأ في توزيع ال \"XML\":\n %1\n\nحدد 'موافق' للتخلي عن التغييرات أو 'إلغاء الأمر' لمواصلة تحرير ال\"XML\"."
|
||||
};
|
||||
25
demos/code/msg/be-tarask.js
Normal file
25
demos/code/msg/be-tarask.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Код",
|
||||
blocks: "Блёкі",
|
||||
linkTooltip: "Захаваць і зьвязаць з блёкамі.",
|
||||
runTooltip: "Запусьціце праграму, вызначаную блёкамі ў працоўнай вобласьці.",
|
||||
badCode: "Памылка праграмы:\n%1",
|
||||
timeout: "Перавышана максымальная колькасьць ітэрацыяў.",
|
||||
discard: "Выдаліць усе блёкі %1?",
|
||||
trashTooltip: "Выдаліць усе блёкі.",
|
||||
catLogic: "Лёгіка",
|
||||
catLoops: "Петлі",
|
||||
catMath: "Матэматычныя формулы",
|
||||
catText: "Тэкст",
|
||||
catLists: "Сьпісы",
|
||||
catColour: "Колер",
|
||||
catVariables: "Зьменныя",
|
||||
catFunctions: "Функцыі",
|
||||
listVariable: "сьпіс",
|
||||
textVariable: "тэкст",
|
||||
httpRequestError: "Узьнікла праблема з запытам.",
|
||||
linkAlert: "Падзяліцца Вашым блёкам праз гэтую спасылку:\n\n%1",
|
||||
hashError: "Прабачце, '%1' не адпавядае ніводнай захаванай праграме.",
|
||||
xmlError: "Не атрымалася загрузіць захаваны файл. Магчыма, ён быў створаны з іншай вэрсіяй Блёклі?",
|
||||
badXml: "Памылка сынтаксічнага аналізу XML:\n%1\n\nАбярыце \"ОК\", каб адмовіцца ад зьменаў ці \"Скасаваць\" для далейшага рэдагаваньня XML."
|
||||
};
|
||||
25
demos/code/msg/br.js
Normal file
25
demos/code/msg/br.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Kod",
|
||||
blocks: "Bloc'hoù",
|
||||
linkTooltip: "Enrollañ ha liammañ d'ar bloc'hadoù.",
|
||||
runTooltip: "Lañsañ ar programm termenet gant ar bloc'hadoù en takad labour.",
|
||||
badCode: "Fazi programm :\n%1",
|
||||
timeout: "Tizhet eo bet an niver brasañ a iteradurioù seveniñ aotreet.",
|
||||
discard: "Diverkañ an holl vloc'hoù %1 ?",
|
||||
trashTooltip: "Disteurel an holl vloc'hoù.",
|
||||
catLogic: "Poell",
|
||||
catLoops: "Boukloù",
|
||||
catMath: "Matematik",
|
||||
catText: "Testenn",
|
||||
catLists: "Rolloù",
|
||||
catColour: "Liv",
|
||||
catVariables: "Argemmennoù",
|
||||
catFunctions: "Arc'hwelioù",
|
||||
listVariable: "roll",
|
||||
textVariable: "testenn",
|
||||
httpRequestError: "Ur gudenn zo gant ar reked.",
|
||||
linkAlert: "Rannañ ho ploc'hoù gant al liamm-mañ :\n\n%1",
|
||||
hashError: "Digarezit. \"%1\" ne glot gant programm enrollet ebet.",
|
||||
xmlError: "Ne c'haller ket kargañ ho restr enrollet. Marteze e oa bet krouet gant ur stumm disheñvel eus Blockly ?",
|
||||
badXml: "Fazi dielfennañ XML :\n%1\n\nDibabit \"Mat eo\" evit dilezel ar c'hemmoù-se pe \"Nullañ\" evit kemmañ an XML c'hoazh."
|
||||
};
|
||||
25
demos/code/msg/ca.js
Normal file
25
demos/code/msg/ca.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Codi",
|
||||
blocks: "Blocs",
|
||||
linkTooltip: "Desa i enllaça als blocs.",
|
||||
runTooltip: "Executa el programa definit pels blocs de l'àrea de treball.",
|
||||
badCode: "Error de programa:\n %1",
|
||||
timeout: "S'ha superat el nombre màxim d'iteracions d'execució.",
|
||||
discard: "Esborrar els %1 blocs?",
|
||||
trashTooltip: "Descarta tots els blocs.",
|
||||
catLogic: "Lògica",
|
||||
catLoops: "Bucles",
|
||||
catMath: "Matemàtiques",
|
||||
catText: "Text",
|
||||
catLists: "Llistes",
|
||||
catColour: "Color",
|
||||
catVariables: "Variables",
|
||||
catFunctions: "Procediments",
|
||||
listVariable: "llista",
|
||||
textVariable: "text",
|
||||
httpRequestError: "Hi ha hagut un problema amb la sol·licitud.",
|
||||
linkAlert: "Comparteix els teus blocs amb aquest enllaç: %1",
|
||||
hashError: "Ho sentim, '%1' no es correspon amb cap fitxer desat de Blockly.",
|
||||
xmlError: "No s'ha pogut carregar el teu fitxer desat. Potser va ser creat amb una versió diferent de Blockly?",
|
||||
badXml: "Error d'anàlisi XML:\n%1\n\nSeleccioneu 'Acceptar' per abandonar els vostres canvis, o 'Cancel·lar' per continuar editant l'XML."
|
||||
};
|
||||
25
demos/code/msg/cs.js
Normal file
25
demos/code/msg/cs.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Kód",
|
||||
blocks: "Bloky",
|
||||
linkTooltip: "Ulož a spoj bloky..",
|
||||
runTooltip: "",
|
||||
badCode: "Chyba programu:\n%1",
|
||||
timeout: "Maximum execution iterations exceeded.",
|
||||
discard: "Odstranit všechny bloky %1?",
|
||||
trashTooltip: "Zahodit všechny bloky.",
|
||||
catLogic: "Logika",
|
||||
catLoops: "Smyčky",
|
||||
catMath: "Matematika",
|
||||
catText: "Text",
|
||||
catLists: "Seznamy",
|
||||
catColour: "Barva",
|
||||
catVariables: "Proměnné",
|
||||
catFunctions: "Procedury",
|
||||
listVariable: "seznam",
|
||||
textVariable: "text",
|
||||
httpRequestError: "Došlo k potížím s požadavkem.",
|
||||
linkAlert: "Sdílej bloky tímto odkazem: \n\n%1",
|
||||
hashError: "Omlouváme se, '%1' nesouhlasí s žádným z uložených souborů.",
|
||||
xmlError: "Nepodařilo se uložit vás soubor. Pravděpodobně byl vytvořen jinou verzí Blockly?",
|
||||
badXml: "Chyba parsování XML:\n%1\n\nVybrat \"OK\" pro zahození vašich změn nebo 'Cancel' k dalšímu upravování XML."
|
||||
};
|
||||
25
demos/code/msg/da.js
Normal file
25
demos/code/msg/da.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Kode",
|
||||
blocks: "Blokke",
|
||||
linkTooltip: "Gem og link til blokke.",
|
||||
runTooltip: "Kør programmet, der er defineret af blokkene i arbejdsområdet.",
|
||||
badCode: "Programfejl:\n%1",
|
||||
timeout: "Maksimale antal udførelsesgentagelser overskredet.",
|
||||
discard: "Slet alle %1 blokke?",
|
||||
trashTooltip: "Kassér alle blokke.",
|
||||
catLogic: "Logik",
|
||||
catLoops: "Løkker",
|
||||
catMath: "Matematik",
|
||||
catText: "Tekst",
|
||||
catLists: "Lister",
|
||||
catColour: "Farve",
|
||||
catVariables: "Variabler",
|
||||
catFunctions: "Funktioner",
|
||||
listVariable: "liste",
|
||||
textVariable: "tekst",
|
||||
httpRequestError: "Der var et problem med forespørgslen.",
|
||||
linkAlert: "Del dine blokke med dette link:\n\n%1",
|
||||
hashError: "Beklager, '%1' passer ikke med nogen gemt Blockly fil.",
|
||||
xmlError: "Kunne ikke hente din gemte fil. Måske er den lavet med en anden udgave af Blockly?",
|
||||
badXml: "Fejl under fortolkningen af XML:\n%1\n\nVælg 'OK' for at opgive dine ændringer eller 'Afbryd' for at redigere XML-filen yderligere."
|
||||
};
|
||||
25
demos/code/msg/de.js
Normal file
25
demos/code/msg/de.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Code",
|
||||
blocks: "Bausteine",
|
||||
linkTooltip: "Speichern und auf Bausteine verlinken.",
|
||||
runTooltip: "Das Programm ausführen, das von den Bausteinen im Arbeitsbereich definiert ist.",
|
||||
badCode: "Programmfehler:\n%1",
|
||||
timeout: "Die maximalen Ausführungswiederholungen wurden überschritten.",
|
||||
discard: "Alle %1 Bausteine löschen?",
|
||||
trashTooltip: "Alle Bausteine verwerfen.",
|
||||
catLogic: "Logik",
|
||||
catLoops: "Schleifen",
|
||||
catMath: "Mathematik",
|
||||
catText: "Text",
|
||||
catLists: "Listen",
|
||||
catColour: "Farbe",
|
||||
catVariables: "Variablen",
|
||||
catFunctions: "Funktionen",
|
||||
listVariable: "Liste",
|
||||
textVariable: "Text",
|
||||
httpRequestError: "Mit der Anfrage gab es ein Problem.",
|
||||
linkAlert: "Teile deine Bausteine mit diesem Link:\n\n%1",
|
||||
hashError: "„%1“ stimmt leider mit keinem gespeicherten Programm überein.",
|
||||
xmlError: "Deine gespeicherte Datei konnte nicht geladen werden. Vielleicht wurde sie mit einer anderen Version von Blockly erstellt.",
|
||||
badXml: "Fehler beim Parsen von XML:\n%1\n\nWähle 'OK' zum Verwerfen deiner Änderungen oder 'Abbrechen' zum weiteren Bearbeiten des XML."
|
||||
};
|
||||
25
demos/code/msg/el.js
Normal file
25
demos/code/msg/el.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Κώδικας",
|
||||
blocks: "Μπλοκ",
|
||||
linkTooltip: "Αποθηκεύει και συνδέει σε μπλοκ.",
|
||||
runTooltip: "Εκτελεί το πρόγραμμα που ορίζεται από τα μπλοκ στον χώρο εργασίας.",
|
||||
badCode: "Σφάλμα προγράμματος:\n%1",
|
||||
timeout: "Υπέρβαση μέγιστου αριθμού επαναλήψεων.",
|
||||
discard: "Να διαγραφούν και τα %1 μπλοκ?",
|
||||
trashTooltip: "Απόρριψη όλων των μπλοκ.",
|
||||
catLogic: "Λογική",
|
||||
catLoops: "Επαναλήψεις",
|
||||
catMath: "Μαθηματικά",
|
||||
catText: "Κείμενο",
|
||||
catLists: "Λίστες",
|
||||
catColour: "Χρώμα",
|
||||
catVariables: "Μεταβλητές",
|
||||
catFunctions: "Συναρτήσεις",
|
||||
listVariable: "λίστα",
|
||||
textVariable: "κείμενο",
|
||||
httpRequestError: "Υπήρξε πρόβλημα με το αίτημα.",
|
||||
linkAlert: "Κοινοποίησε τα μπλοκ σου με αυτόν τον σύνδεσμο:\n\n%1",
|
||||
hashError: "Λυπάμαι, το «%1» δεν αντιστοιχεί σε κανένα αποθηκευμένο πρόγραμμα.",
|
||||
xmlError: "Δεν μπορώ να φορτώσω το αποθηκευμένο αρχείο σου. Μήπως δημιουργήθηκε από μία παλιότερη έκδοση του Blockly;",
|
||||
badXml: "Σφάλμα ανάλυσης XML:\n%1\n\nΕπίλεξε «Εντάξει» για να εγκαταλείψεις τις αλλαγές σου ή «Ακύρωση» για να επεξεργαστείς το XML κι άλλο."
|
||||
};
|
||||
25
demos/code/msg/en.js
Normal file
25
demos/code/msg/en.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Code",
|
||||
blocks: "Blocks",
|
||||
linkTooltip: "Save and link to blocks.",
|
||||
runTooltip: "Run the program defined by the blocks in the workspace.",
|
||||
badCode: "Program error:\n%1",
|
||||
timeout: "Maximum execution iterations exceeded.",
|
||||
discard: "Delete all %1 blocks?",
|
||||
trashTooltip: "Discard all blocks.",
|
||||
catLogic: "Logic",
|
||||
catLoops: "Loops",
|
||||
catMath: "Math",
|
||||
catText: "Text",
|
||||
catLists: "Lists",
|
||||
catColour: "Colour",
|
||||
catVariables: "Variables",
|
||||
catFunctions: "Functions",
|
||||
listVariable: "list",
|
||||
textVariable: "text",
|
||||
httpRequestError: "There was a problem with the request.",
|
||||
linkAlert: "Share your blocks with this link:\n\n%1",
|
||||
hashError: "Sorry, '%1' doesn't correspond with any saved program.",
|
||||
xmlError: "Could not load your saved file. Perhaps it was created with a different version of Blockly?",
|
||||
badXml: "Error parsing XML:\n%1\n\nSelect 'OK' to abandon your changes or 'Cancel' to further edit the XML."
|
||||
};
|
||||
25
demos/code/msg/es.js
Normal file
25
demos/code/msg/es.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Código",
|
||||
blocks: "Bloques",
|
||||
linkTooltip: "Guarda conexión a los bloques.",
|
||||
runTooltip: "Ejecute el programa definido por los bloques en el área de trabajo.",
|
||||
badCode: "Error del programa:\n%1",
|
||||
timeout: "Se excedio el máximo de iteraciones ejecutadas permitidas.",
|
||||
discard: "¿Eliminar todos los bloques %1?",
|
||||
trashTooltip: "Descartar todos los bloques.",
|
||||
catLogic: "Lógica",
|
||||
catLoops: "Secuencias",
|
||||
catMath: "Matemáticas",
|
||||
catText: "Texto",
|
||||
catLists: "Listas",
|
||||
catColour: "Color",
|
||||
catVariables: "Variables",
|
||||
catFunctions: "Funciones",
|
||||
listVariable: "lista",
|
||||
textVariable: "texto",
|
||||
httpRequestError: "Hubo un problema con la petición.",
|
||||
linkAlert: "Comparte tus bloques con este enlace:\n\n%1",
|
||||
hashError: "«%1» no corresponde con ningún programa guardado.",
|
||||
xmlError: "No se pudo cargar el archivo guardado. ¿Quizá fue creado con otra versión de Blockly?",
|
||||
badXml: "Error de análisis XML:\n%1\n\nSelecciona OK para abandonar tus cambios o Cancelar para seguir editando el XML."
|
||||
};
|
||||
25
demos/code/msg/fa.js
Normal file
25
demos/code/msg/fa.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "کد",
|
||||
blocks: "بلوکها",
|
||||
linkTooltip: "ذخیره و پیوند به بلوکها.",
|
||||
runTooltip: "اجرای برنامهٔ تعریفشده توسط بلوکها در فضای کار.",
|
||||
badCode: "خطای برنامه:\n%1",
|
||||
timeout: "حداکثر تکرارهای اجرا رد شدهاست.",
|
||||
discard: "حذف همهٔ بلاکهای %1؟",
|
||||
trashTooltip: "دورریختن همهٔ بلوکها.",
|
||||
catLogic: "منطق",
|
||||
catLoops: "حلقهها",
|
||||
catMath: "ریاضی",
|
||||
catText: "متن",
|
||||
catLists: "فهرستها",
|
||||
catColour: "رنگ",
|
||||
catVariables: "متغییرها",
|
||||
catFunctions: "توابع",
|
||||
listVariable: "فهرست",
|
||||
textVariable: "متن",
|
||||
httpRequestError: "مشکلی با درخواست وجود داشت.",
|
||||
linkAlert: "اشتراکگذاری بلاکهایتان با این پیوند:\n\n%1",
|
||||
hashError: "شرمنده، «%1» با هیچ برنامهٔ ذخیرهشدهای تطبیق پیدا نکرد.",
|
||||
xmlError: "نتوانست پروندهٔ ذخیرهٔ شما بارگیری شود. احتمالاً با نسخهٔ متفاوتی از بلوکی درست شدهاست؟",
|
||||
badXml: "خطای تجزیهٔ اکسامال:\n%1\n\n«باشد» را برای ذخیره و «فسخ» را برای ویرایش بیشتر اکسامال انتخاب کنید."
|
||||
};
|
||||
25
demos/code/msg/fr.js
Normal file
25
demos/code/msg/fr.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Code",
|
||||
blocks: "Blocs",
|
||||
linkTooltip: "Sauvegarder et lier aux blocs.",
|
||||
runTooltip: "Lancer le programme défini par les blocs dans l’espace de travail.",
|
||||
badCode: "Erreur du programme :\n%1",
|
||||
timeout: "Nombre maximum d’itérations d’exécution dépassé.",
|
||||
discard: "Supprimer tous les %1 blocs ?",
|
||||
trashTooltip: "Jeter tous les blocs.",
|
||||
catLogic: "Logique",
|
||||
catLoops: "Boucles",
|
||||
catMath: "Math",
|
||||
catText: "Texte",
|
||||
catLists: "Listes",
|
||||
catColour: "Couleur",
|
||||
catVariables: "Variables",
|
||||
catFunctions: "Fonctions",
|
||||
listVariable: "liste",
|
||||
textVariable: "texte",
|
||||
httpRequestError: "Il y a eu un problème avec la demande.",
|
||||
linkAlert: "Partagez vos blocs grâce à ce lien:\n\n%1",
|
||||
hashError: "Désolé, '%1' ne correspond à aucun programme sauvegardé.",
|
||||
xmlError: "Impossible de charger le fichier de sauvegarde. Peut être a t-il été créé avec une autre version de Blockly?",
|
||||
badXml: "Erreur d’analyse du XML :\n%1\n\nSélectionner 'OK' pour abandonner vos modifications ou 'Annuler' pour continuer à modifier le XML."
|
||||
};
|
||||
25
demos/code/msg/gl.js
Normal file
25
demos/code/msg/gl.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Código",
|
||||
blocks: "Bloques",
|
||||
linkTooltip: "Gardar e crear unha ligazón aos bloques.",
|
||||
runTooltip: "Executar o programa definido polos bloques no espazo de traballo.",
|
||||
badCode: "Erro do programa:\n%1",
|
||||
timeout: "Superouse o número máximo de iteracións durante a execución.",
|
||||
discard: "Queres borrar os %1 bloques?",
|
||||
trashTooltip: "Descartar todos os bloques.",
|
||||
catLogic: "Lóxica",
|
||||
catLoops: "Bucles",
|
||||
catMath: "Matemáticas",
|
||||
catText: "Texto",
|
||||
catLists: "Listas",
|
||||
catColour: "Cor",
|
||||
catVariables: "Variables",
|
||||
catFunctions: "Funcións",
|
||||
listVariable: "lista",
|
||||
textVariable: "texto",
|
||||
httpRequestError: "Houbo un problema coa solicitude.",
|
||||
linkAlert: "Comparte os teus bloques con esta ligazón:\n\n%1",
|
||||
hashError: "Sentímolo, \"%1\" non se corresponde con ningún programa gardado.",
|
||||
xmlError: "Non se puido cargar o ficheiro gardado. Se cadra, foi creado cunha versión diferente de Blockly.",
|
||||
badXml: "Erro de análise do XML:\n%1\n\nSelecciona \"Aceptar\" se queres anular os cambios ou \"Cancelar\" para seguir editando o XML."
|
||||
};
|
||||
25
demos/code/msg/he.js
Normal file
25
demos/code/msg/he.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "קוד",
|
||||
blocks: "קטעי קוד",
|
||||
linkTooltip: "שמירה וקישור לקטעי קוד.",
|
||||
runTooltip: "הרצת התכנית שהוגדרה על ידי קטעי הקוד שבמרחב העבודה.",
|
||||
badCode: "שגיאה בתכנית: %1",
|
||||
timeout: "חריגה ממספר פעולות חוזרות אפשריות.",
|
||||
discard: "האם למחוק את כל %1 קטעי הקוד?",
|
||||
trashTooltip: "השלך את כל קטעי הקוד.",
|
||||
catLogic: "לוגיקה",
|
||||
catLoops: "לולאות",
|
||||
catMath: "מתמטיקה",
|
||||
catText: "טקסט",
|
||||
catLists: "רשימות",
|
||||
catColour: "צבע",
|
||||
catVariables: "משתנים",
|
||||
catFunctions: "פונקציות",
|
||||
listVariable: "רשימה",
|
||||
textVariable: "טקסט",
|
||||
httpRequestError: "הבקשה נכשלה.",
|
||||
linkAlert: "ניתן לשתף את קטעי הקוד שלך באמצעות קישור זה:\n\n%1",
|
||||
hashError: "לצערנו, '%1' איננו מתאים לאף אחת מהתוכניות השמורות",
|
||||
xmlError: "נסיון הטעינה של הקובץ השמור שלך נכשל. האם ייתכן שהוא נוצר בגרסא שונה של בלוקלי?",
|
||||
badXml: "תקלה בפענוח XML:\n\n%1\n\nנא לבחור 'אישור' כדי לנטוש את השינויים שלך או 'ביטול' כדי להמשיך ולערוך את ה־XML."
|
||||
};
|
||||
25
demos/code/msg/hrx.js
Normal file
25
demos/code/msg/hrx.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Code",
|
||||
blocks: "Bausten",
|
||||
linkTooltip: "Speichre und auf Bausten verlinke.",
|
||||
runTooltip: "Das Programm ausfüahre, das von den Bausten im Oorweitsbereich definiert ist.",
|
||||
badCode: "Programmfehler:\n%1",
|
||||
timeout: "Die maximale Ausführungswiederholunge woore üwerschritt.",
|
||||
discard: "All %1 Bausten lösche?",
|
||||
trashTooltip: "All Bausten verwerfe.",
|
||||
catLogic: "Logik",
|
||||
catLoops: "Schleife",
|
||||
catMath: "Mathematik",
|
||||
catText: "Text",
|
||||
catLists: "Liste",
|
||||
catColour: "Farreb",
|
||||
catVariables: "Variable",
|
||||
catFunctions: "Funktione",
|
||||
listVariable: "List",
|
||||
textVariable: "Text",
|
||||
httpRequestError: "Mit der Oonfroch hots en Problem geb.",
|
||||
linkAlert: "Tel von dein Bausten mit dem Link:\n\n%1",
|
||||
hashError: "„%1“ stimmt leider mit kenem üweren gespeicherte Programm.",
|
||||
xmlError: "Dein gespeicherte Datei könnt net gelood sin. Vielleicht woard se mit ener annre Version von Blockly erstellt.",
|
||||
badXml: "Fehler beim Parse von XML:\n%1\n\nWähle 'OK' zum Verwerfe von deiner Ändrunge orrer 'Abbreche' zum XML weiter beoorbeite."
|
||||
};
|
||||
25
demos/code/msg/hu.js
Normal file
25
demos/code/msg/hu.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Kódszerkesztő",
|
||||
blocks: "Blokkok",
|
||||
linkTooltip: "Hivatkozás létrehozása",
|
||||
runTooltip: "Program futtatása.",
|
||||
badCode: "Program hiba:\n%1",
|
||||
timeout: "A program elérte a maximális végrehajtási időt.",
|
||||
discard: "Az összes %1 blokk törlése?",
|
||||
trashTooltip: "Összes blokk törlése.",
|
||||
catLogic: "Logikai műveletek",
|
||||
catLoops: "Ciklusok",
|
||||
catMath: "Matematikai műveletek",
|
||||
catText: "Sztring műveletek",
|
||||
catLists: "Listakezelés",
|
||||
catColour: "Színek",
|
||||
catVariables: "Változók",
|
||||
catFunctions: "Eljárások",
|
||||
listVariable: "lista",
|
||||
textVariable: "szöveg",
|
||||
httpRequestError: "A kéréssel kapcsolatban probléma merült fel.",
|
||||
linkAlert: "Ezzel a hivatkozással tudod megosztani a programodat:\n\n%1",
|
||||
hashError: "Sajnos a '%1' hivatkozás nem tartozik egyetlen programhoz sem.",
|
||||
xmlError: "A programodat nem lehet betölteni. Elképzelhető, hogy a Blockly egy másik verziójában készült?",
|
||||
badXml: "Hiba az XML feldolgozásakor:\n%1\n\nVáltozások elvetése?"
|
||||
};
|
||||
25
demos/code/msg/ia.js
Normal file
25
demos/code/msg/ia.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Codice",
|
||||
blocks: "Blocos",
|
||||
linkTooltip: "Salveguardar e ligar a blocos.",
|
||||
runTooltip: "Executar le programma definite per le blocos in le spatio de travalio.",
|
||||
badCode: "Error del programma:\n%1",
|
||||
timeout: "Le numero de iterationes executate ha excedite le maximo.",
|
||||
discard: "Deler tote le %1 blocos?",
|
||||
trashTooltip: "Abandonar tote le blocos.",
|
||||
catLogic: "Logica",
|
||||
catLoops: "Buclas",
|
||||
catMath: "Mathematica",
|
||||
catText: "Texto",
|
||||
catLists: "Listas",
|
||||
catColour: "Color",
|
||||
catVariables: "Variabiles",
|
||||
catFunctions: "Functiones",
|
||||
listVariable: "lista",
|
||||
textVariable: "texto",
|
||||
httpRequestError: "Il habeva un problema con le requesta.",
|
||||
linkAlert: "Divide tu blocos con iste ligamine:\n\n%1",
|
||||
hashError: "Infelicemente, '%1' non corresponde a alcun programma salveguardate.",
|
||||
xmlError: "Impossibile cargar le file salveguardate. Pote esser que illo ha essite create con un altere version de Blockly?",
|
||||
badXml: "Error de analyse del XML:\n%1\n\nSelige 'OK' pro abandonar le modificationes o 'Cancellar' pro continuar a modificar le codice XML."
|
||||
};
|
||||
25
demos/code/msg/is.js
Normal file
25
demos/code/msg/is.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Kóði",
|
||||
blocks: "Kubbar",
|
||||
linkTooltip: "Vista og tengja við kubba.",
|
||||
runTooltip: "Keyra forritið sem kubbarnir á vinnusvæðinu mynda.",
|
||||
badCode: "Villa í forriti:\n%1",
|
||||
timeout: "Forritið hefur endurtekið sig of oft.",
|
||||
discard: "Eyða öllum %1 kubbunum?",
|
||||
trashTooltip: "Fleygja öllum kubbum.",
|
||||
catLogic: "Rökvísi",
|
||||
catLoops: "Lykkjur",
|
||||
catMath: "Reikningur",
|
||||
catText: "Texti",
|
||||
catLists: "Listar",
|
||||
catColour: "Litir",
|
||||
catVariables: "Breytur",
|
||||
catFunctions: "Stefjur",
|
||||
listVariable: "listi",
|
||||
textVariable: "texti",
|
||||
httpRequestError: "Það kom upp vandamál með beiðnina.",
|
||||
linkAlert: "Deildu kubbunum þínum með þessari krækju:",
|
||||
hashError: "Því miður, '%1' passar ekki við neitt vistað forrit.",
|
||||
xmlError: "Gat ekki hlaðið vistuðu skrána þína. Var hún kannske búin til í annarri útgáfu af Blockly?",
|
||||
badXml: "Villa við úrvinnslu XML:\n%1\n\nVeldu 'Í lagi' til að sleppa breytingum eða 'Hætta við' til að halda áfram með XML."
|
||||
};
|
||||
25
demos/code/msg/it.js
Normal file
25
demos/code/msg/it.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Codice",
|
||||
blocks: "Blocchi",
|
||||
linkTooltip: "Salva e collega ai blocchi.",
|
||||
runTooltip: "Esegui il programma definito dai blocchi nell'area di lavoro.",
|
||||
badCode: "Errore programma:\n%1",
|
||||
timeout: "È stato superato il numero massimo consentito di interazioni eseguite.",
|
||||
discard: "Cancellare tutti i %1 blocchi?",
|
||||
trashTooltip: "Elimina tutti i blocchi.",
|
||||
catLogic: "Logica",
|
||||
catLoops: "Cicli",
|
||||
catMath: "Matematica",
|
||||
catText: "Testo",
|
||||
catLists: "Elenchi",
|
||||
catColour: "Colore",
|
||||
catVariables: "Variabili",
|
||||
catFunctions: "Funzioni",
|
||||
listVariable: "elenco",
|
||||
textVariable: "testo",
|
||||
httpRequestError: "La richiesta non è stata soddisfatta.",
|
||||
linkAlert: "Condividi i tuoi blocchi con questo collegamento:\n\n%1",
|
||||
hashError: "Mi spiace, '%1' non corrisponde ad alcun programma salvato.",
|
||||
xmlError: "Non è stato possibile caricare il documento. Forse è stato creato con una versione diversa di Blockly?",
|
||||
badXml: "Errore durante l'analisi XML:\n%1\n\nSeleziona 'OK' per abbandonare le modifiche o 'Annulla' per continuare a modificare l'XML."
|
||||
};
|
||||
25
demos/code/msg/ja.js
Normal file
25
demos/code/msg/ja.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "コード",
|
||||
blocks: "ブロック",
|
||||
linkTooltip: "ブロックの状態を保存してリンクを取得します。",
|
||||
runTooltip: "ブロックで作成したプログラムを実行します。",
|
||||
badCode: "プログラムのエラー:\n%1",
|
||||
timeout: "命令の実行回数が制限値を超えました。",
|
||||
discard: "%1 個すべてのブロックを消しますか?",
|
||||
trashTooltip: "すべてのブロックを消します。",
|
||||
catLogic: "論理",
|
||||
catLoops: "繰り返し",
|
||||
catMath: "数学",
|
||||
catText: "テキスト",
|
||||
catLists: "リスト",
|
||||
catColour: "色",
|
||||
catVariables: "変数",
|
||||
catFunctions: "関数",
|
||||
listVariable: "リスト",
|
||||
textVariable: "テキスト",
|
||||
httpRequestError: "ネットワーク接続のエラーです。",
|
||||
linkAlert: "ブロックの状態をこのリンクで共有できます:\n\n%1",
|
||||
hashError: "すみません。「%1」という名前のプログラムは保存されていません。",
|
||||
xmlError: "保存されたファイルを読み込めませんでした。別のバージョンのブロックリーで作成された可能性があります。",
|
||||
badXml: "XML のエラーです:\n%1\n\nXML の変更をやめるには「OK」、編集を続けるには「キャンセル」を選んでください。"
|
||||
};
|
||||
25
demos/code/msg/ko.js
Normal file
25
demos/code/msg/ko.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "코드",
|
||||
blocks: "블록",
|
||||
linkTooltip: "블록을 저장하고 링크를 가져옵니다.",
|
||||
runTooltip: "작업 공간에서 블록으로 정의된 프로그램을 실행합니다.",
|
||||
badCode: "프로그램 오류:\n%1",
|
||||
timeout: "최대 실행 반복을 초과했습니다.",
|
||||
discard: "모든 블록 %1개를 삭제하겠습니까?",
|
||||
trashTooltip: "모든 블록을 버립니다.",
|
||||
catLogic: "논리",
|
||||
catLoops: "반복",
|
||||
catMath: "수학",
|
||||
catText: "텍스트",
|
||||
catLists: "목록",
|
||||
catColour: "색",
|
||||
catVariables: "변수",
|
||||
catFunctions: "기능",
|
||||
listVariable: "목록",
|
||||
textVariable: "텍스트",
|
||||
httpRequestError: "요청에 문제가 있습니다.",
|
||||
linkAlert: "다음 링크로 블록을 공유하세요:\n\n%1",
|
||||
hashError: "죄송하지만 '%1'은 어떤 저장된 프로그램으로 일치하지 않습니다.",
|
||||
xmlError: "저장된 파일을 불러올 수 없습니다. 혹시 블록리의 다른 버전으로 만들었습니까?",
|
||||
badXml: "XML 구문 분석 오류:\n%1\n\n바뀜을 포기하려면 '확인'을 선택하고 XML을 더 편집하려면 '취소'를 선택하세요."
|
||||
};
|
||||
25
demos/code/msg/lv.js
Normal file
25
demos/code/msg/lv.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Pirmkods",
|
||||
blocks: "Bloki",
|
||||
linkTooltip: "Saglabāt un piesaistīt blokiem.",
|
||||
runTooltip: "Palaidiet programmu, ko definē bloki darbvietā.",
|
||||
badCode: "Programmas kļūda:\n %1",
|
||||
timeout: "Pārsniegts maksimālais iterāciju skaits.",
|
||||
discard: "Vai izdzēst visus %1 blokus?",
|
||||
trashTooltip: "Izmest visus blokus.",
|
||||
catLogic: "Loģika",
|
||||
catLoops: "Cikli",
|
||||
catMath: "Matemātika",
|
||||
catText: "Teksts",
|
||||
catLists: "Saraksti",
|
||||
catColour: "Krāsa",
|
||||
catVariables: "Mainīgie",
|
||||
catFunctions: "Procedūras",
|
||||
listVariable: "saraksts",
|
||||
textVariable: "teksts",
|
||||
httpRequestError: "Pieprasījuma kļūda.",
|
||||
linkAlert: "Dalies ar saviem blokiem ar šo saiti:\n\n%1",
|
||||
hashError: "Atvainojiet, bet '%1' neatbilst nevienai no saglabātajām programmām.",
|
||||
xmlError: "Nevaru ielādēt tavu saglabāto failu. Iespējams, tas tika izveidots ar citu Blockly versiju?",
|
||||
badXml: "XML parsēšanas kļūda:\n %1\n\nIzvēlieties 'Labi', lai zaudētu savas izmaiņas vai 'Atcelt', lai rediģētu XML."
|
||||
};
|
||||
25
demos/code/msg/mg.js
Normal file
25
demos/code/msg/mg.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Kaody",
|
||||
blocks: "Bolongana",
|
||||
linkTooltip: "Hitahiry ary hampirohy amin'ny bolongana.",
|
||||
runTooltip: "Handefa ny fandaharana voafaritry ny bolongana ao amin'ny erana iasana.",
|
||||
badCode: "Hadisoam-pandaharana:\n%1",
|
||||
timeout: "Tafahoatra ny isa ambony indrindra ny isan'ny fiverimberenana.",
|
||||
discard: "Hamafa ny bolongana %1?",
|
||||
trashTooltip: "Hanary ny bolongana rehetra.",
|
||||
catLogic: "Lôjika",
|
||||
catLoops: "Tondro mifolaka",
|
||||
catMath: "Matematika",
|
||||
catText: "Soratra",
|
||||
catLists: "Lisitra",
|
||||
catColour: "Loko",
|
||||
catVariables: "Ova",
|
||||
catFunctions: "Paika",
|
||||
listVariable: "lisitra",
|
||||
textVariable: "soratra",
|
||||
httpRequestError: "Nisy olana tamin'ilay hataka.",
|
||||
linkAlert: "Zarao amin'ity rohy ity ny bolonganao: \n\n%1",
|
||||
hashError: "Miala tsiny, tsy miady amin'ny fandaharana notehirizina '%1'.",
|
||||
xmlError: "Tsy nahasokatra ny rakitra voatahirinao. Mety namboarina tamin'ny versionan'i Blockly hafa angamba ilay izy?",
|
||||
badXml: "Hadisoana tam-pamakiana ny XML:\n%1\n\nSafidio 'OK' raha hamoy ny fiovana, na 'Aoka ihany' raha mbola hitoy hanova ny XML."
|
||||
};
|
||||
25
demos/code/msg/mk.js
Normal file
25
demos/code/msg/mk.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Код",
|
||||
blocks: "Блокчиња",
|
||||
linkTooltip: "Зачувај и стави врска до блокчињата.",
|
||||
runTooltip: "Пушти го програмот определен од блокчињата во работниот простор.",
|
||||
badCode: "Грешка во програмот:\n%1",
|
||||
timeout: "Го надминавте допуштениот број на повторувања во извршувањето.",
|
||||
discard: "Да ги избришам сите %1 блокчиња?",
|
||||
trashTooltip: "Отстрани ги сите блокчиња.",
|
||||
catLogic: "Логика",
|
||||
catLoops: "Јамки",
|
||||
catMath: "Математика",
|
||||
catText: "Текст",
|
||||
catLists: "Списоци",
|
||||
catColour: "Боја",
|
||||
catVariables: "Променливи",
|
||||
catFunctions: "Функции",
|
||||
listVariable: "список",
|
||||
textVariable: "текст",
|
||||
httpRequestError: "Се појави проблем во барањето.",
|
||||
linkAlert: "Споделете ги вашите блокчиња со оваа врска:\n\n%1",
|
||||
hashError: "„%1“ не одговара на ниеден зачуван програм.",
|
||||
xmlError: "Не можев да ја вчитам зачуваната податотека. Да не сте ја создале со друга верзија на Blockly?",
|
||||
badXml: "Грешка при расчленувањето на XML:\n%1\n\nСтиснете на „ОК“ за да ги напуштите промените или на „Откажи“ ако сакате уште да ја уредувате XML-податотеката."
|
||||
};
|
||||
25
demos/code/msg/ms.js
Normal file
25
demos/code/msg/ms.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Kod",
|
||||
blocks: "Blok",
|
||||
linkTooltip: "Simpan dan pautkan kepada blok.",
|
||||
runTooltip: "Jalankan aturcara yang ditetapkan oleh blok-blok di dalam ruang kerja.",
|
||||
badCode: "Ralat atur cara:\n%1",
|
||||
timeout: "Takat maksimum lelaran pelaksanaan dicecah.",
|
||||
discard: "Hapuskan kesemua %1 blok?",
|
||||
trashTooltip: "Buang semua blok.",
|
||||
catLogic: "Logik",
|
||||
catLoops: "Gelung",
|
||||
catMath: "Matematik",
|
||||
catText: "Teks",
|
||||
catLists: "Senarai",
|
||||
catColour: "Warna",
|
||||
catVariables: "Pemboleh ubah",
|
||||
catFunctions: "Fungsi",
|
||||
listVariable: "senarai",
|
||||
textVariable: "teks",
|
||||
httpRequestError: "Permintaan itu terdapat masalah.",
|
||||
linkAlert: "Kongsikan blok-blok anda dengan pautan ini:\n\n%1",
|
||||
hashError: "Maaf, '%1' tidak berpadanan dengan sebarang aturcara yang disimpan.",
|
||||
xmlError: "Fail simpanan anda tidak dapat dimuatkan. Jangan-jangan ia dicipta dengan versi Blockly yang berlainan?",
|
||||
badXml: "Ralat ketika menghuraian XML:\n%1\n\nPilih 'OK' untuk melucutkan suntingan anda atau 'Batal' untuk bersambung menyunting XML-nya."
|
||||
};
|
||||
25
demos/code/msg/nb.js
Normal file
25
demos/code/msg/nb.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Kode",
|
||||
blocks: "Blokker",
|
||||
linkTooltip: "Lagre og lenke til blokker.",
|
||||
runTooltip: "Kjør programmet definert av blokken i arbeidsområdet.",
|
||||
badCode: "Programfeil:\n%1",
|
||||
timeout: "Det maksimale antallet utførte looper er oversteget.",
|
||||
discard: "Slett alle %1 blokker?",
|
||||
trashTooltip: "Fjern alle blokker",
|
||||
catLogic: "Logikk",
|
||||
catLoops: "Looper",
|
||||
catMath: "Matte",
|
||||
catText: "Tekst",
|
||||
catLists: "Lister",
|
||||
catColour: "Farge",
|
||||
catVariables: "Variabler",
|
||||
catFunctions: "Funksjoner",
|
||||
listVariable: "Liste",
|
||||
textVariable: "Tekst",
|
||||
httpRequestError: "Det oppsto et problem med forespørselen din",
|
||||
linkAlert: "Del dine blokker med denne lenken:\n\n%1",
|
||||
hashError: "Beklager, '%1' samsvarer ikke med noe lagret program.",
|
||||
xmlError: "Kunne ikke laste inn filen. Kanskje den ble laget med en annen versjon av Blockly?",
|
||||
badXml: "Feil ved parsering av XML:\n%1\n\nVelg 'OK' for å avbryte endringene eller 'Cancel' for å fortsette å redigere XML-koden."
|
||||
};
|
||||
25
demos/code/msg/nl.js
Normal file
25
demos/code/msg/nl.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Code",
|
||||
blocks: "Blokken",
|
||||
linkTooltip: "Opslaan en koppelen naar blokken.",
|
||||
runTooltip: "Voer het programma uit dat met de blokken in de werkruimte is gemaakt.",
|
||||
badCode: "Programmafout:\n%1",
|
||||
timeout: "Het maximale aantal iteraties is overschreden.",
|
||||
discard: "Alle %1 blokken verwijderen?",
|
||||
trashTooltip: "Alle blokken verwijderen",
|
||||
catLogic: "Logica",
|
||||
catLoops: "Lussen",
|
||||
catMath: "Formules",
|
||||
catText: "Tekst",
|
||||
catLists: "Lijsten",
|
||||
catColour: "Kleur",
|
||||
catVariables: "Variabelen",
|
||||
catFunctions: "Functies",
|
||||
listVariable: "lijst",
|
||||
textVariable: "tekst",
|
||||
httpRequestError: "Er is een probleem opgetreden tijdens het verwerken van het verzoek.",
|
||||
linkAlert: "Deel uw blokken via deze koppeling:\n\n%1",
|
||||
hashError: "\"%1\" komt helaas niet overeen met een opgeslagen bestand.",
|
||||
xmlError: "Uw opgeslagen bestand kan niet geladen worden. Is het misschien gemaakt met een andere versie van Blockly?",
|
||||
badXml: "Fout tijdens het verwerken van de XML:\n%1\n\nSelecteer \"OK\" om uw wijzigingen te negeren of \"Annuleren\" om de XML verder te bewerken."
|
||||
};
|
||||
25
demos/code/msg/oc.js
Normal file
25
demos/code/msg/oc.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Còde",
|
||||
blocks: "Blòts",
|
||||
linkTooltip: "Salva e liga als blòts.",
|
||||
runTooltip: "Aviar lo programa definit pels blòts dins l’espaci de trabalh.",
|
||||
badCode: "Error del programa :\n%1",
|
||||
timeout: "Nombre maximum d’iteracions d’execucion depassat.",
|
||||
discard: "Suprimir totes los %1 blòts ?",
|
||||
trashTooltip: "Getar totes los blòts.",
|
||||
catLogic: "Logic",
|
||||
catLoops: "Boclas",
|
||||
catMath: "Math",
|
||||
catText: "Tèxte",
|
||||
catLists: "Listas",
|
||||
catColour: "Color",
|
||||
catVariables: "Variablas",
|
||||
catFunctions: "Foncions",
|
||||
listVariable: "lista",
|
||||
textVariable: "tèxte",
|
||||
httpRequestError: "I a agut un problèma amb la demanda.",
|
||||
linkAlert: "Partejatz vòstres blòts gràcia a aqueste ligam :\n\n%1",
|
||||
hashError: "O planhèm, '%1' correspond pas a un fichièr Blockly salvament.",
|
||||
xmlError: "Impossible de cargar lo fichièr de salvament. Benlèu qu'es estat creat amb una autra version de Blockly ?",
|
||||
badXml: "Error d’analisi del XML :\n%1\n\nSeleccionar 'D'acòrdi' per abandonar vòstras modificacions o 'Anullar' per modificar encara lo XML."
|
||||
};
|
||||
25
demos/code/msg/pl.js
Normal file
25
demos/code/msg/pl.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Kod",
|
||||
blocks: "Bloki",
|
||||
linkTooltip: "Zapisz i podlinkuj do bloków",
|
||||
runTooltip: "Uruchom program zdefinowany przez bloki w obszarze roboczym",
|
||||
badCode: "Błąd programu:\n%1",
|
||||
timeout: "Maksymalna liczba iteracji wykonywań przekroczona",
|
||||
discard: "Usunąć wszystkie %1 bloki?",
|
||||
trashTooltip: "Odrzuć wszystkie bloki.",
|
||||
catLogic: "Logika",
|
||||
catLoops: "Pętle",
|
||||
catMath: "Matematyka",
|
||||
catText: "Tekst",
|
||||
catLists: "Listy",
|
||||
catColour: "Kolor",
|
||||
catVariables: "Zmienne",
|
||||
catFunctions: "Funkcje",
|
||||
listVariable: "lista",
|
||||
textVariable: "tekst",
|
||||
httpRequestError: "Wystąpił problem z żądaniem.",
|
||||
linkAlert: "Udpostępnij swoje bloki korzystając z poniższego linku : \n\n\n%1",
|
||||
hashError: "Przepraszamy, \"%1\" nie odpowiada żadnemu zapisanemu programowi.",
|
||||
xmlError: "Nie można załadować zapisanego pliku. Być może został utworzony za pomocą innej wersji Blockly?",
|
||||
badXml: "Błąd parsowania XML : \n%1\n\nZaznacz 'OK' aby odrzucić twoje zmiany lub 'Cancel', żeby w przyszłości edytować XML."
|
||||
};
|
||||
25
demos/code/msg/pms.js
Normal file
25
demos/code/msg/pms.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Còdes",
|
||||
blocks: "Blòch",
|
||||
linkTooltip: "Argistré e lijé ai blòch.",
|
||||
runTooltip: "Fé andé ël programa definì dai blòch ant lë spassi ëd travaj.",
|
||||
badCode: "Eror dël programa:\n%1",
|
||||
timeout: "Nùmer màssim d'arpetission d'esecussion sorpassà.",
|
||||
discard: "Scancelé tuti ij %1 blòch?",
|
||||
trashTooltip: "Scarté tuti ij blòch.",
|
||||
catLogic: "Lògica",
|
||||
catLoops: "Liasse",
|
||||
catMath: "Matemàtica",
|
||||
catText: "Test",
|
||||
catLists: "Liste",
|
||||
catColour: "Color",
|
||||
catVariables: "Variàbij",
|
||||
catFunctions: "Fonsion",
|
||||
listVariable: "lista",
|
||||
textVariable: "test",
|
||||
httpRequestError: "A-i é staje un problema con l'arcesta.",
|
||||
linkAlert: "Ch'a partagia ij sò blòch grassie a sta liura: %1",
|
||||
hashError: "An dëspias, '%1 a corëspond a gnun programa salvà.",
|
||||
xmlError: "A l'é nen podusse carié so archivi salvà. Miraco a l'é stàit creà con na version diferenta ëd Blockly?",
|
||||
badXml: "Eror d'anàlisi dl'XML:\n%1\n\nSelessioné 'Va bin' për lassé perde toe modìfiche o 'Anulé' për modifiché ancora l'XML."
|
||||
};
|
||||
25
demos/code/msg/pt-br.js
Normal file
25
demos/code/msg/pt-br.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Código",
|
||||
blocks: "Blocos",
|
||||
linkTooltip: "Salvar e ligar aos blocos.",
|
||||
runTooltip: "Execute o programa definido pelos blocos na área de trabalho.",
|
||||
badCode: "Erro no programa:\n%1",
|
||||
timeout: "Máximo de iterações de execução excedido.",
|
||||
discard: "Apagar todos os %1 blocos?",
|
||||
trashTooltip: "Descartar todos os blocos.",
|
||||
catLogic: "Lógica",
|
||||
catLoops: "Laços",
|
||||
catMath: "Matemática",
|
||||
catText: "Texto",
|
||||
catLists: "Listas",
|
||||
catColour: "Cor",
|
||||
catVariables: "Variáveis",
|
||||
catFunctions: "Funções",
|
||||
listVariable: "lista",
|
||||
textVariable: "texto",
|
||||
httpRequestError: "Houve um problema com a requisição.",
|
||||
linkAlert: "Compartilhe seus blocos com este link:\n\n%1",
|
||||
hashError: "Desculpe, '%1' não corresponde a um programa salvo.",
|
||||
xmlError: "Não foi possível carregar seu arquivo salvo. Talvez ele tenha sido criado com uma versão diferente do Blockly?",
|
||||
badXml: "Erro de análise XML:\n%1\n\nSelecione 'OK' para abandonar suas mudanças ou 'Cancelar' para editar o XML."
|
||||
};
|
||||
25
demos/code/msg/ro.js
Normal file
25
demos/code/msg/ro.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Cod",
|
||||
blocks: "Blocuri",
|
||||
linkTooltip: "Salvează și adaugă la blocuri.",
|
||||
runTooltip: "Execută programul definit de către blocuri în spațiul de lucru.",
|
||||
badCode: "Eroare de program:\n%1",
|
||||
timeout: "Numărul maxim de iterații a fost depășit.",
|
||||
discard: "Ștergi toate cele %1 (de) blocuri?",
|
||||
trashTooltip: "Șterge toate blocurile.",
|
||||
catLogic: "Logic",
|
||||
catLoops: "Bucle",
|
||||
catMath: "Matematică",
|
||||
catText: "Text",
|
||||
catLists: "Liste",
|
||||
catColour: "Culoare",
|
||||
catVariables: "Variabile",
|
||||
catFunctions: "Funcții",
|
||||
listVariable: "listă",
|
||||
textVariable: "text",
|
||||
httpRequestError: "A apărut o problemă la solicitare.",
|
||||
linkAlert: "Distribuie-ți blocurile folosind această legătură:\n\n%1",
|
||||
hashError: "Scuze, „%1” nu corespunde nici unui program salvat.",
|
||||
xmlError: "Sistemul nu a putut încărca fișierul salvat. Poate că a fost creat cu o altă versiune de Blockly?",
|
||||
badXml: "Eroare de parsare XML:\n%1\n\nAlege „OK” pentru a renunța la modificările efectuate sau „Revocare” pentru a modifica în continuare fișierul XML."
|
||||
};
|
||||
25
demos/code/msg/ru.js
Normal file
25
demos/code/msg/ru.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Код",
|
||||
blocks: "Блоки",
|
||||
linkTooltip: "Сохранить и показать ссылку на блоки.",
|
||||
runTooltip: "Запустить программу, заданную блоками в рабочей области.",
|
||||
badCode: "Ошибка программы:\n%1",
|
||||
timeout: "Превышено максимальное количество итераций.",
|
||||
discard: "Удалить все блоки (%1)?",
|
||||
trashTooltip: "Удалить все блоки.",
|
||||
catLogic: "Логические",
|
||||
catLoops: "Циклы",
|
||||
catMath: "Математика",
|
||||
catText: "Текст",
|
||||
catLists: "Списки",
|
||||
catColour: "Цвет",
|
||||
catVariables: "Переменные",
|
||||
catFunctions: "Функции",
|
||||
listVariable: "список",
|
||||
textVariable: "текст",
|
||||
httpRequestError: "Произошла проблема при запросе.",
|
||||
linkAlert: "Поделитесь своими блоками по этой ссылке:\n\n%1",
|
||||
hashError: "К сожалению, «%1» не соответствует ни одному сохраненному файлу Блокли.",
|
||||
xmlError: "Не удалось загрузить ваш сохраненный файл. Возможно, он был создан в другой версии Блокли?",
|
||||
badXml: "Ошибка синтаксического анализа XML:\n%1\n\nВыберите 'ОК', чтобы отказаться от изменений или 'Cancel' для дальнейшего редактирования XML."
|
||||
};
|
||||
25
demos/code/msg/sc.js
Normal file
25
demos/code/msg/sc.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Còdixi",
|
||||
blocks: "Brocus",
|
||||
linkTooltip: "Sarva e alliòngia a is brocus.",
|
||||
runTooltip: "Arròllia su programa cumpostu de is brocus in s'àrea de traballu.",
|
||||
badCode: "Errori in su Programa:\n%1",
|
||||
timeout: "Giai lòmpius a su màssimu numeru de repicus.",
|
||||
discard: "Scancellu su %1 de is brocus?",
|
||||
trashTooltip: "Boganci totu is brocus.",
|
||||
catLogic: "Lògica",
|
||||
catLoops: "Lòrigas",
|
||||
catMath: "Matemàtica",
|
||||
catText: "Testu",
|
||||
catLists: "Lista",
|
||||
catColour: "Colori",
|
||||
catVariables: "Variabilis",
|
||||
catFunctions: "Funtzionis",
|
||||
listVariable: "lista",
|
||||
textVariable: "testu",
|
||||
httpRequestError: "Ddui fut unu problema cun sa pregunta",
|
||||
linkAlert: "Poni is brocus tuus in custu acàpiu:\n\n%1",
|
||||
hashError: "Mi dispraxit, '%1' non torrat a pari cun nimancu unu de is programas sarvaus.",
|
||||
xmlError: "Non potzu carrigai su file sarvau. Fortzis est stètiu fatu cun d-una versioni diferenti de Blockly?",
|
||||
badXml: "Errori in s'anàlisi XML:\n%1\n\nCraca 'OK' po perdi is mudàntzias 'Anudda' po sighì a scriri su XML."
|
||||
};
|
||||
25
demos/code/msg/sco.js
Normal file
25
demos/code/msg/sco.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Code",
|
||||
blocks: "Blocks",
|
||||
linkTooltip: "Hain n airt til blocks.",
|
||||
runTooltip: "Rin the program defined bi the blocks in the wairkspace.",
|
||||
badCode: "Program mistak:\n%1",
|
||||
timeout: "Mucklest execution iterations exceedit.",
|
||||
discard: "Delyte aw %1 blocks?",
|
||||
trashTooltip: "Hiff aw blocks.",
|
||||
catLogic: "Logeec",
|
||||
catLoops: "Luips",
|
||||
catMath: "Maths",
|
||||
catText: "Tex",
|
||||
catLists: "Leets",
|
||||
catColour: "Colour",
|
||||
catVariables: "Variables",
|
||||
catFunctions: "Functions",
|
||||
listVariable: "leet",
|
||||
textVariable: "tex",
|
||||
httpRequestError: "Thaur wis ae problem wi the request.",
|
||||
linkAlert: "Shair yer blocks wi this airtin:\n\n%1",
|
||||
hashError: "Sairrie, '%1' disna correspond wi onie hained program.",
|
||||
xmlError: "Coudnae laid yer hained file. Perhaps it wis makit wi ae deefferent version o Blockly?",
|
||||
badXml: "Mistak parsin XML:\n%1\n\nSelect 'OK' tae hiff yer chynges or 'Cancel' tae further eedit the XML."
|
||||
};
|
||||
25
demos/code/msg/sk.js
Normal file
25
demos/code/msg/sk.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Kód",
|
||||
blocks: "Bloky",
|
||||
linkTooltip: "Uložiť a zdieľať odkaz na tento program.",
|
||||
runTooltip: "Spustiť program, zložený z dielcov na pracovnej ploche.",
|
||||
badCode: "Chyba v programe:\n%1",
|
||||
timeout: "Bol prekročený maximálny počet opakovaní.",
|
||||
discard: "Zmazať všetkých %1 dielcov?",
|
||||
trashTooltip: "Zahodiť všetky dielce.",
|
||||
catLogic: "Logika",
|
||||
catLoops: "Cykly",
|
||||
catMath: "Matematické",
|
||||
catText: "Text",
|
||||
catLists: "Zoznamy",
|
||||
catColour: "Farby",
|
||||
catVariables: "Premenné",
|
||||
catFunctions: "Funkcie",
|
||||
listVariable: "zoznam",
|
||||
textVariable: "text",
|
||||
httpRequestError: "Problém so spracovaním požiadavky.",
|
||||
linkAlert: "Zdieľať tento program skopírovaním odkazu\n\n%1",
|
||||
hashError: "Prepáč, '%1' nie je meno žiadnemu uloženému programu.",
|
||||
xmlError: "Nebolo možné načítať uložený súbor. Možno bol vytvorený v inej verzii Blocky.",
|
||||
badXml: "Chyba pri parsovaní XML:\n%1\n\nStlačte 'OK' ak chcete zrušiť zmeny alebo 'Zrušiť' pre pokračovanie v úpravách XML."
|
||||
};
|
||||
25
demos/code/msg/sr.js
Normal file
25
demos/code/msg/sr.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Кôд",
|
||||
blocks: "Блокови",
|
||||
linkTooltip: "Сачувајте и повежите са блоковима.",
|
||||
runTooltip: "Покрените програм заснован на блоковима у радном простору.",
|
||||
badCode: "Грешка у програму:\n%1",
|
||||
timeout: "Достигнут је максималан број понављања у извршавању.",
|
||||
discard: "Обрисати %1 блокова?",
|
||||
trashTooltip: "Одбаците све блокове.",
|
||||
catLogic: "Логика",
|
||||
catLoops: "Петље",
|
||||
catMath: "Математика",
|
||||
catText: "Текст",
|
||||
catLists: "Спискови",
|
||||
catColour: "Боја",
|
||||
catVariables: "Променљиве",
|
||||
catFunctions: "Процедуре",
|
||||
listVariable: "списак",
|
||||
textVariable: "текст",
|
||||
httpRequestError: "Дошло је до проблема у захтеву.",
|
||||
linkAlert: "Делите своје блокове овом везом:\n\n%1",
|
||||
hashError: "„%1“ не одговара ниједном сачуваном програму.",
|
||||
xmlError: "Не могу да учитам сачувану датотеку. Можда је направљена другом верзијом Blockly-ја.",
|
||||
badXml: "Грешка при рашчлањивању XML-а:\n%1\n\nПритисните „У реду“ да напустите измене или „Откажи“ да наставите са уређивањем XML датотеке."
|
||||
};
|
||||
25
demos/code/msg/sv.js
Normal file
25
demos/code/msg/sv.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Kod",
|
||||
blocks: "Block",
|
||||
linkTooltip: "Spara och länka till block.",
|
||||
runTooltip: "Kör programmet som definierats av blocken i arbetsytan.",
|
||||
badCode: "Programfel:\n%1",
|
||||
timeout: "Det maximala antalet utförda loopar har överskridits.",
|
||||
discard: "Radera alla %1 block?",
|
||||
trashTooltip: "Släng alla block.",
|
||||
catLogic: "Logik",
|
||||
catLoops: "Loopar",
|
||||
catMath: "Matematik",
|
||||
catText: "Text",
|
||||
catLists: "Listor",
|
||||
catColour: "Färg",
|
||||
catVariables: "Variabler",
|
||||
catFunctions: "Funktioner",
|
||||
listVariable: "lista",
|
||||
textVariable: "text",
|
||||
httpRequestError: "Det uppstod ett problem med begäran.",
|
||||
linkAlert: "Dela dina block med denna länk: \n\n%1",
|
||||
hashError: "Tyvärr, '%1' överensstämmer inte med något sparat program.",
|
||||
xmlError: "Kunde inte läsa din sparade fil. Den skapades kanske med en annan version av Blockly?",
|
||||
badXml: "Fel vid parsning av XML:\n%1\n\nKlicka på 'OK' för att strunta i dina ändringar eller 'Avbryt' för att fortsätta redigera XML-koden."
|
||||
};
|
||||
25
demos/code/msg/th.js
Normal file
25
demos/code/msg/th.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "เขียนโปรแกรม",
|
||||
blocks: "บล็อก",
|
||||
linkTooltip: "บันทึกและสร้างลิงก์มายังบล็อกเหล่านี้",
|
||||
runTooltip: "เรียกใช้โปรแกรมตามที่กำหนดไว้ด้วยบล็อกที่อยู่ในพื้นที่ทำงาน",
|
||||
badCode: "โปรแกรมเกิดข้อผิดพลาด:\n%1",
|
||||
timeout: "โปรแกรมทำงานซ้ำคำสั่งเดิมมากเกินไป",
|
||||
discard: "ต้องการลบบล็อกทั้ง %1 บล็อกใช่หรือไม่?",
|
||||
trashTooltip: "ยกเลิกบล็อกทั้งหมด",
|
||||
catLogic: "ตรรกะ",
|
||||
catLoops: "การวนซ้ำ",
|
||||
catMath: "คณิตศาสตร์",
|
||||
catText: "ข้อความ",
|
||||
catLists: "รายการ",
|
||||
catColour: "สี",
|
||||
catVariables: "ตัวแปร",
|
||||
catFunctions: "ฟังก์ชัน",
|
||||
listVariable: "รายการ",
|
||||
textVariable: "ข้อความ",
|
||||
httpRequestError: "มีปัญหาเกี่ยวกับการร้องขอ",
|
||||
linkAlert: "แบ่งปันบล็อกของคุณด้วยลิงก์นี้:\n\n%1",
|
||||
hashError: "เสียใจด้วย '%1' ไม่ตรงกับโปรแกรมใดๆ ที่เคยบันทึกเอาไว้เลย",
|
||||
xmlError: "ไม่สามารถโหลดไฟล์ที่บันทึกไว้ของคุณได้ บางทีมันอาจจะถูกสร้างขึ้นด้วย Blockly รุ่นอื่นที่แตกต่างกัน?",
|
||||
badXml: "เกิดข้อผิดพลาดในการแยกวิเคราะห์ XML:\n%1\n\nเลือก 'ตกลง' เพื่อละทิ้งการเปลี่ยนแปลงต่างๆ ที่ทำไว้ หรือเลือก 'ยกเลิก' เพื่อแก้ไข XML ต่อไป"
|
||||
};
|
||||
25
demos/code/msg/tlh.js
Normal file
25
demos/code/msg/tlh.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "ngoq",
|
||||
blocks: "ngoghmey",
|
||||
linkTooltip: "",
|
||||
runTooltip: "",
|
||||
badCode: "Qagh:\n%1",
|
||||
timeout: "tlhoy nI'qu' poH.",
|
||||
discard: "Hoch %1 ngoghmey Qaw'?",
|
||||
trashTooltip: "",
|
||||
catLogic: "meq",
|
||||
catLoops: "vIHtaHbogh ghomey",
|
||||
catMath: "mI'QeD",
|
||||
catText: "ghItlhHommey",
|
||||
catLists: "tetlhmey",
|
||||
catColour: "rItlh",
|
||||
catVariables: "lIwmey",
|
||||
catFunctions: "mIwmey",
|
||||
listVariable: "tetlh",
|
||||
textVariable: "ghItlhHom",
|
||||
httpRequestError: "Qapbe' tlhobmeH QIn.",
|
||||
linkAlert: "latlhvaD ngoghmeylIj DangeHmeH Quvvam yIlo':\n\n%1",
|
||||
hashError: "Do'Ha', ngogh nab pollu'pu'bogh 'oHbe'law' \"%1\"'e'.",
|
||||
xmlError: "ngogh nablIj pollu'pu'bogh chu'qa'laHbe' vay'. chaq pollu'pu'DI' ghunmeH ngogh pIm lo'lu'pu'.",
|
||||
badXml: "XML yajchu'laHbe' vay':\n%1\n\nchoHmeylIj DalonmeH \"ruch\" yIwIv pagh XML DachoHqa'meH \"qIl\" yIwIv."
|
||||
};
|
||||
25
demos/code/msg/tr.js
Normal file
25
demos/code/msg/tr.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Kod",
|
||||
blocks: "Bloklar",
|
||||
linkTooltip: "Blokları ve bağlantı adresini kaydet.",
|
||||
runTooltip: "Çalışma alanında bloklar tarafından tanımlanan programını çalıştırın.",
|
||||
badCode: "Program hatası:\n %1",
|
||||
timeout: "Maksimum yürütme yinelemeleri aşıldı.",
|
||||
discard: "Tüm %1 blok silinsin mi?",
|
||||
trashTooltip: "Bütün blokları at.",
|
||||
catLogic: "Mantık",
|
||||
catLoops: "Döngüler",
|
||||
catMath: "Matematik",
|
||||
catText: "Metin",
|
||||
catLists: "Listeler",
|
||||
catColour: "Renk",
|
||||
catVariables: "Değişkenler",
|
||||
catFunctions: "İşlevler",
|
||||
listVariable: "liste",
|
||||
textVariable: "metin",
|
||||
httpRequestError: "İstek ile ilgili bir problem var.",
|
||||
linkAlert: "Bloklarını bu bağlantı ile paylaş:\n\n%1",
|
||||
hashError: "Üzgünüz, '%1' hiç bir kaydedilmiş program ile uyuşmuyor.",
|
||||
xmlError: "Kaydedilen dosyanız yüklenemiyor\nBlockly'nin önceki sürümü ile kaydedilmiş olabilir mi?",
|
||||
badXml: "XML ayrıştırma hatası:\n%1\n\nDeğişikliklerden vazgeçmek için 'Tamam'ı, düzenlemeye devam etmek için 'İptal' seçeneğini seçiniz."
|
||||
};
|
||||
25
demos/code/msg/uk.js
Normal file
25
demos/code/msg/uk.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Код",
|
||||
blocks: "Блоки",
|
||||
linkTooltip: "Зберегти і пов'язати з блоками.",
|
||||
runTooltip: "Запустіть програму, визначену блоками у робочій області.",
|
||||
badCode: "Помилка програми:\n%1",
|
||||
timeout: "Максимальне виконання ітерацій перевищено.",
|
||||
discard: "Вилучити всі блоки %1?",
|
||||
trashTooltip: "Відкинути всі блоки.",
|
||||
catLogic: "Логіка",
|
||||
catLoops: "Петлі",
|
||||
catMath: "Математика",
|
||||
catText: "Текст",
|
||||
catLists: "Списки",
|
||||
catColour: "Колір",
|
||||
catVariables: "Змінні",
|
||||
catFunctions: "Функції",
|
||||
listVariable: "список",
|
||||
textVariable: "текст",
|
||||
httpRequestError: "Виникла проблема із запитом.",
|
||||
linkAlert: "Поділитися вашим блоками через посилання:\n\n%1",
|
||||
hashError: "На жаль, \"%1\" не відповідає жодній збереженій програмі.",
|
||||
xmlError: "Не вдалося завантажити ваш збережений файл. Можливо, він був створений з іншої версії Blockly?",
|
||||
badXml: "Помилка синтаксичного аналізу XML:\n%1\n\nВиберіть \"Гаразд\", щоб відмовитися від змін або 'Скасувати' для подальшого редагування XML."
|
||||
};
|
||||
25
demos/code/msg/vi.js
Normal file
25
demos/code/msg/vi.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "Chương trình",
|
||||
blocks: "Các mảnh",
|
||||
linkTooltip: "Lưu và lấy địa chỉ liên kết.",
|
||||
runTooltip: "Chạy chương trình.",
|
||||
badCode: "'Lỗi chương trình:\n%1",
|
||||
timeout: "Đã vượt quá số lần lặp cho phép.",
|
||||
discard: "Xóa hết %1 mảnh?",
|
||||
trashTooltip: "Xóa tất cả mọi mảnh.",
|
||||
catLogic: "Logic",
|
||||
catLoops: "Vòng lặp",
|
||||
catMath: "Công thức toán",
|
||||
catText: "Văn bản",
|
||||
catLists: "Danh sách",
|
||||
catColour: "Màu",
|
||||
catVariables: "Biến",
|
||||
catFunctions: "Hàm",
|
||||
listVariable: "danh sách",
|
||||
textVariable: "văn bản",
|
||||
httpRequestError: "Hoạt động bị trục trặc, không thực hiện được yêu cầu của bạn.",
|
||||
linkAlert: "Chia sẻ chương trình của bạn với liên kết sau:\n\n %1",
|
||||
hashError: "Không tìm thấy chương trình được lưu ở '%1'.",
|
||||
xmlError: "Không mở được chương trình của bạn. Có thể nó nằm trong một phiên bản khác của Blockly?",
|
||||
badXml: "Lỗi sử lý XML:\n %1\n\nChọn 'OK' để từ bỏ các thay đổi hoặc 'Hủy' để tiếp tục chỉnh sửa các XML."
|
||||
};
|
||||
25
demos/code/msg/zh-hans.js
Normal file
25
demos/code/msg/zh-hans.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "代码",
|
||||
blocks: "块",
|
||||
linkTooltip: "保存模块并生成链接。",
|
||||
runTooltip: "于工作区中运行块所定义的程式。",
|
||||
badCode: "程序错误:\n%1",
|
||||
timeout: "超过最大执行行数。",
|
||||
discard: "删除所有%1块吗?",
|
||||
trashTooltip: "放弃所有块。",
|
||||
catLogic: "逻辑",
|
||||
catLoops: "循环",
|
||||
catMath: "数学",
|
||||
catText: "文本",
|
||||
catLists: "列表",
|
||||
catColour: "颜色",
|
||||
catVariables: "变量",
|
||||
catFunctions: "函数",
|
||||
listVariable: "列表",
|
||||
textVariable: "文本",
|
||||
httpRequestError: "请求存在问题。",
|
||||
linkAlert: "通过这个链接分享您的模块:\n\n%1",
|
||||
hashError: "对不起,没有任何已保存的程序对应'%1' 。",
|
||||
xmlError: "无法载入您保存的文件。您是否使用其他版本的Blockly创建该文件的?",
|
||||
badXml: "XML解析错误:\n%1\n\n选择“确定”以取消您对XML的修改,或选择“取消”以继续编辑XML。"
|
||||
};
|
||||
25
demos/code/msg/zh-hant.js
Normal file
25
demos/code/msg/zh-hant.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var MSG = {
|
||||
title: "程式碼",
|
||||
blocks: "積木",
|
||||
linkTooltip: "儲存積木組並提供連結。",
|
||||
runTooltip: "於工作區中執行積木組所定義的程式。",
|
||||
badCode: "程式錯誤:\n%1",
|
||||
timeout: "超過最大執行數。",
|
||||
discard: "刪除共%1個積木?",
|
||||
trashTooltip: "捨棄所有積木。",
|
||||
catLogic: "邏輯",
|
||||
catLoops: "迴圈",
|
||||
catMath: "數學式",
|
||||
catText: "文字",
|
||||
catLists: "列表",
|
||||
catColour: "顏色",
|
||||
catVariables: "變量",
|
||||
catFunctions: "流程",
|
||||
listVariable: "列表",
|
||||
textVariable: "文字",
|
||||
httpRequestError: "命令出現錯誤。",
|
||||
linkAlert: "透過此連結分享您的積木組:\n\n%1",
|
||||
hashError: "對不起,「%1」並未對應任何已保存的程式。",
|
||||
xmlError: "未能載入您保存的檔案。或許它是由其他版本的Blockly創建?",
|
||||
badXml: "解析 XML 時出現錯誤:\n%1\n\n選擇'確定'以放棄您的更改,或選擇'取消'以進一步編輯 XML。"
|
||||
};
|
||||
161
demos/code/style.css
Normal file
161
demos/code/style.css
Normal file
@@ -0,0 +1,161 @@
|
||||
html, body {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #fff;
|
||||
font-family: sans-serif;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.farSide {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
html[dir="RTL"] .farSide {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/* Buttons */
|
||||
button {
|
||||
margin: 5px;
|
||||
padding: 10px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #ddd;
|
||||
font-size: large;
|
||||
background-color: #eee;
|
||||
color: #000;
|
||||
}
|
||||
button.primary {
|
||||
border: 1px solid #dd4b39;
|
||||
background-color: #dd4b39;
|
||||
color: #fff;
|
||||
}
|
||||
button.primary>img {
|
||||
opacity: 1;
|
||||
}
|
||||
button>img {
|
||||
opacity: 0.6;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
button:hover>img {
|
||||
opacity: 1;
|
||||
}
|
||||
button:active {
|
||||
border: 1px solid #888 !important;
|
||||
}
|
||||
button:hover {
|
||||
box-shadow: 2px 2px 5px #888;
|
||||
}
|
||||
button.disabled:hover>img {
|
||||
opacity: 0.6;
|
||||
}
|
||||
button.disabled {
|
||||
display: none;
|
||||
}
|
||||
button.notext {
|
||||
font-size: 10%;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-weight: normal;
|
||||
font-size: 140%;
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
/* Tabs */
|
||||
#tabRow>td {
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
td.tabon {
|
||||
border-bottom-color: #ddd !important;
|
||||
background-color: #ddd;
|
||||
padding: 5px 19px;
|
||||
}
|
||||
td.taboff {
|
||||
cursor: pointer;
|
||||
padding: 5px 19px;
|
||||
}
|
||||
td.taboff:hover {
|
||||
background-color: #eee;
|
||||
}
|
||||
td.tabmin {
|
||||
border-top-style: none !important;
|
||||
border-left-style: none !important;
|
||||
border-right-style: none !important;
|
||||
}
|
||||
td.tabmax {
|
||||
border-top-style: none !important;
|
||||
border-left-style: none !important;
|
||||
border-right-style: none !important;
|
||||
width: 99%;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
text-align: right;
|
||||
}
|
||||
html[dir=rtl] td.tabmax {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none;
|
||||
}
|
||||
td {
|
||||
padding: 0;
|
||||
vertical-align: top;
|
||||
}
|
||||
.content {
|
||||
visibility: hidden;
|
||||
margin: 0;
|
||||
padding: 1ex;
|
||||
position: absolute;
|
||||
direction: ltr;
|
||||
}
|
||||
pre.content {
|
||||
overflow: scroll;
|
||||
}
|
||||
#content_blocks {
|
||||
padding: 0;
|
||||
}
|
||||
.blocklySvg {
|
||||
border-top: none !important;
|
||||
}
|
||||
#content_xml {
|
||||
resize: none;
|
||||
outline: none;
|
||||
border: none;
|
||||
font-family: monospace;
|
||||
overflow: scroll;
|
||||
}
|
||||
#languageMenu {
|
||||
vertical-align: top;
|
||||
margin-top: 15px;
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
/* Buttons */
|
||||
button {
|
||||
padding: 1px 10px;
|
||||
margin: 1px 5px;
|
||||
}
|
||||
|
||||
/* Sprited icons. */
|
||||
.icon21 {
|
||||
height: 21px;
|
||||
width: 21px;
|
||||
background-image: url(icons.png);
|
||||
}
|
||||
.trash {
|
||||
background-position: 0px 0px;
|
||||
}
|
||||
.link {
|
||||
background-position: -21px 0px;
|
||||
}
|
||||
.run {
|
||||
background-position: -42px 0px;
|
||||
}
|
||||
@@ -132,7 +132,7 @@
|
||||
</td>
|
||||
<td>
|
||||
<div><a href="plane/index.html">Plane</a></div>
|
||||
<div>Closure Templates to support 35 languages.</div>
|
||||
<div>Using Closure Templates to support 35 languages.</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -148,6 +148,18 @@
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<a href="code/index.html">
|
||||
<img src="code/icon.png" height=80 width=100>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<div><a href="code/index.html">Code Editor</a></div>
|
||||
<div>Export a Blockly program into JavaScript, Python, Dart or XML.</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<a href="blockfactory/index.html">
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* @fileoverview JavaScript for Blockly's Plane Seat Calculator application.
|
||||
* @fileoverview JavaScript for Blockly's Plane Seat Calculator demo.
|
||||
* @author fraser@google.com (Neil Fraser)
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
Reference in New Issue
Block a user