Move Code app to demos directory.

This commit is contained in:
Neil Fraser
2014-11-20 15:37:12 -08:00
parent db1360e423
commit ab133cb539
196 changed files with 1773 additions and 9933 deletions

510
demos/code/code.js Normal file
View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
demos/code/icons.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 B

274
demos/code/index.html Normal file
View 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> &gt;
<a href="../index.html">Demos</a> &gt;
<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">&nbsp;</td>
<td id="tab_javascript" class="taboff">JavaScript</td>
<td class="tabmin">&nbsp;</td>
<td id="tab_python" class="taboff">Python</td>
<td class="tabmin">&nbsp;</td>
<td id="tab_dart" class="taboff">Dart</td>
<td class="tabmin">&nbsp;</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
View 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
View 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\"."
};

View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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 lespace de travail.",
badCode: "Erreur du programme :\n%1",
timeout: "Nombre maximum ditérations dexé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 danalyse 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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 lespaci de trabalh.",
badCode: "Error del programa :\n%1",
timeout: "Nombre maximum diteracions dexecucion 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 danalisi 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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;
}

View File

@@ -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">

View File

@@ -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';