rapid-router 5.18.0__py2.py3-none-any.whl → 7.6.8__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- example_project/rapid_router_test_settings.py +19 -7
- example_project/settings.py +21 -8
- example_project/urls.py +5 -6
- game/__init__.py +1 -1
- game/admin.py +7 -2
- game/character.py +8 -0
- game/decor.py +40 -0
- game/end_to_end_tests/base_game_test.py +34 -27
- game/end_to_end_tests/editor_page.py +15 -0
- game/end_to_end_tests/game_page.py +88 -20
- game/end_to_end_tests/selenium_test_case.py +1 -20
- game/end_to_end_tests/test_cow_crashes.py +3 -5
- game/end_to_end_tests/test_level_editor.py +273 -10
- game/end_to_end_tests/test_level_selection.py +25 -3
- game/end_to_end_tests/test_play_through.py +222 -127
- game/end_to_end_tests/test_python_levels.py +41 -7
- game/end_to_end_tests/test_saving_workspace.py +2 -1
- game/forms.py +7 -1
- game/level_management.py +26 -11
- game/messages.py +899 -337
- game/migrations/0001_squashed_0025_levels_ordering_pt1.py +19 -1
- game/migrations/0026_levels_pt2.py +13 -2
- game/migrations/0032_cannot_turn_left_level.py +13 -2
- game/migrations/0033_recursion_level.py +13 -2
- game/migrations/0034_joes_level.py +13 -2
- game/migrations/0035_disable_route_score_level_70.py +0 -2
- game/migrations/0036_level_score_73.py +0 -2
- game/migrations/0037_level_score_79.py +0 -2
- game/migrations/0038_level_score_40.py +0 -1
- game/migrations/0042_level_score_73.py +0 -2
- game/migrations/0048_add_cow_field_and_blocks.py +0 -2
- game/migrations/0049_level_score_34.py +0 -2
- game/migrations/0050_level_score_40.py +0 -2
- game/migrations/0051_level_score_49.py +0 -1
- game/migrations/0086_loop_levels.py +13 -2
- game/migrations/0092_disable_algo_score_in_custom_levels.py +28 -0
- game/migrations/0093_alter_level_character_name.py +18 -0
- game/migrations/0094_add_hint_lesson_subtitle_to_levels.py +28 -0
- game/migrations/0095_level_commands.py +18 -0
- game/migrations/0096_alter_level_commands.py +18 -0
- game/migrations/0097_add_python_den_levels.py +1515 -0
- game/migrations/0098_add_episode_link_fields.py +44 -0
- game/migrations/0099_python_episodes_links.py +103 -0
- game/migrations/0100_reorder_python_levels.py +179 -0
- game/migrations/0101_rename_episodes.py +45 -0
- game/migrations/0102_reoder_episodes_13_14.py +136 -0
- game/migrations/0103_level_1015_solution.py +26 -0
- game/migrations/0104_remove_level_direct_drive.py +17 -0
- game/migrations/0105_delete_invalid_attempts.py +18 -0
- game/migrations/0106_fields_to_snake_case.py +48 -0
- game/migrations/0107_rename_worksheet_link_episode_student_worksheet_link.py +18 -0
- game/migrations/0108_episode_indy_worksheet_link.py +18 -0
- game/migrations/0109_create_episodes_23_and_24.py +99 -0
- game/migrations/0110_remove_episode_indy_worksheet_link_and_more.py +100 -0
- game/migrations/0111_create_worksheets.py +149 -0
- game/migrations/0112_worksheet_locked_classes.py +21 -0
- game/migrations/0113_level_needs_approval.py +18 -0
- game/migrations/0114_default_and_non_student_levels_no_approval.py +31 -0
- game/migrations/0115_level_level__default_does_not_need_approval.py +22 -0
- game/migrations/0116_update_worksheet_video_links.py +68 -0
- game/migrations/0117_update_solutions_to_if_else.py +61 -0
- game/models.py +127 -17
- game/permissions.py +51 -19
- game/python_den_urls.py +26 -0
- game/random_road.py +9 -9
- game/serializers.py +12 -17
- game/static/django_reverse_js/js/reverse.js +171 -0
- game/static/game/css/LilitaOne-Regular.ttf +0 -0
- game/static/game/css/backgrounds.css +8 -12
- game/static/game/css/dataTables.custom.css +3 -2
- game/static/game/css/editor.css +47 -0
- game/static/game/css/game.css +37 -43
- game/static/game/css/game_screen.css +16 -0
- game/static/game/css/level_editor.css +5 -0
- game/static/game/css/level_selection.css +17 -2
- game/static/game/image/Python_Den_hero_student.png +0 -0
- game/static/game/image/Python_levels_page.svg +1954 -0
- game/static/game/image/characters/front_view/Electric_van.svg +448 -0
- game/static/game/image/characters/top_view/Electric_van.svg +448 -0
- game/static/game/image/decor/city/solar_panel.svg +1200 -0
- game/static/game/image/decor/farm/solar_panel.svg +86 -0
- game/static/game/image/decor/grass/solar_panel.svg +86 -0
- game/static/game/image/decor/snow/solar_panel.svg +173 -0
- game/static/game/image/electric_van.svg +448 -0
- game/static/game/image/icons/description.svg +1 -0
- game/static/game/image/icons/hint.svg +1 -0
- game/static/game/image/icons/python.svg +1 -1
- game/static/game/image/pigeon.svg +684 -0
- game/static/game/image/python_den_header.svg +19 -0
- game/static/game/js/animation.js +65 -24
- game/static/game/js/blockly/msg/js/bg.js +52 -1
- game/static/game/js/blockly/msg/js/ca.js +52 -1
- game/static/game/js/blockly/msg/js/en-gb.js +2 -0
- game/static/game/js/blockly/msg/js/en.js +2 -0
- game/static/game/js/blockly/msg/js/es.js +52 -1
- game/static/game/js/blockly/msg/js/fr.js +2 -0
- game/static/game/js/blockly/msg/js/hi.js +2 -0
- game/static/game/js/blockly/msg/js/it.js +52 -1
- game/static/game/js/blockly/msg/js/pl.js +52 -1
- game/static/game/js/blockly/msg/js/pt-br.js +52 -1
- game/static/game/js/blockly/msg/js/ru.js +52 -1
- game/static/game/js/blockly/msg/js/ur.js +52 -1
- game/static/game/js/blocklyCustomBlocks.js +93 -52
- game/static/game/js/button.js +12 -0
- game/static/game/js/cow.js +11 -7
- game/static/game/js/drawing.js +68 -29
- game/static/game/js/editor.js +23 -0
- game/static/game/js/game.js +74 -110
- game/static/game/js/level_editor.js +646 -274
- game/static/game/js/level_moderation.js +33 -2
- game/static/game/js/level_selection.js +1 -1
- game/static/game/js/loadLanguages.js +2 -2
- game/static/game/js/model.js +32 -2
- game/static/game/js/pythonControl.js +14 -1
- game/static/game/js/scoreboard.js +0 -37
- game/static/game/js/scoreboardSharedLevels.js +48 -0
- game/static/game/js/skulpt/skulpt-stdlib.js +1 -1
- game/static/game/js/sound.js +52 -5
- game/static/game/raphael_image/characters/top_view/Electric_van.svg +448 -0
- game/static/game/raphael_image/decor/city/solar_panel.svg +1200 -0
- game/static/game/raphael_image/decor/farm/solar_panel.svg +86 -0
- game/static/game/raphael_image/decor/grass/solar_panel.svg +86 -0
- game/static/game/raphael_image/decor/snow/solar_panel.svg +173 -0
- game/static/game/raphael_image/pigeon.svg +685 -0
- game/static/game/sass/game.scss +2 -2
- game/static/game/sound/clown_horn.mp3 +0 -0
- game/static/game/sound/clown_horn.ogg +0 -0
- game/static/game/sound/electric_van_starting.mp3 +0 -0
- game/static/game/sound/electric_van_starting.ogg +0 -0
- game/static/game/sound/pigeon.mp3 +0 -0
- game/static/game/sound/pigeon.ogg +0 -0
- game/static/game/sound/sleigh_bells.mp3 +0 -0
- game/static/game/sound/sleigh_bells.ogg +0 -0
- game/static/game/sound/sleigh_crash.mp3 +0 -0
- game/static/game/sound/sleigh_crash.ogg +0 -0
- game/templates/game/base.html +34 -14
- game/templates/game/basenonav.html +11 -5
- game/templates/game/game.html +142 -38
- game/templates/game/level_editor.html +340 -236
- game/templates/game/level_moderation.html +19 -6
- game/templates/game/level_selection.html +18 -110
- game/templates/game/python_den_level_selection.html +291 -0
- game/templates/game/python_den_worksheet.html +101 -0
- game/templates/game/scoreboard.html +83 -64
- game/tests/test_level_editor.py +94 -26
- game/tests/test_level_selection.py +149 -46
- game/tests/test_python_den_worksheet.py +85 -0
- game/tests/test_scoreboard.py +34 -7
- game/tests/utils/level.py +32 -26
- game/theme.py +5 -5
- game/urls.py +199 -61
- game/views/language_code_conversions.py +86 -86
- game/views/level.py +155 -63
- game/views/level_editor.py +88 -55
- game/views/level_moderation.py +23 -0
- game/views/level_selection.py +116 -47
- game/views/level_solutions.py +491 -106
- game/views/scoreboard.py +76 -51
- game/views/worksheet.py +25 -0
- rapid_router-7.6.8.dist-info/METADATA +174 -0
- {rapid_router-5.18.0.dist-info → rapid_router-7.6.8.dist-info}/RECORD +164 -104
- {rapid_router-5.18.0.dist-info → rapid_router-7.6.8.dist-info}/WHEEL +1 -1
- example_project/manage.py +0 -10
- game/static/game/image/actions/go.svg +0 -18
- game/static/game/js/js-reverse.js +0 -14
- game/static/game/js/pqselect.min.js +0 -9
- game/static/game/js/widget-scroller.js +0 -906
- rapid_router-5.18.0.dist-info/METADATA +0 -17
- {rapid_router-5.18.0.dist-info → rapid_router-7.6.8.dist-info/licenses}/LICENSE.md +0 -0
- {rapid_router-5.18.0.dist-info → rapid_router-7.6.8.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<svg width="1440" height="41" viewBox="0 0 1440 41" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_1836_1252)">
|
|
3
|
+
<rect width="1440" height="41" fill="#1E30A6"/>
|
|
4
|
+
<path d="M1146.39 -2.60795L1149 -9.65065C1149.17 -10.1164 1149.83 -10.1164 1150 -9.65065L1152.61 -2.60779L1159.65 -0.00171947C1160.12 0.170583 1160.12 0.829576 1159.65 1.00188L1152.61 3.60795L1150 10.6508C1149.83 11.1166 1149.17 11.1166 1149 10.6508L1146.39 3.60795L1139.35 1.00188C1138.88 0.829576 1138.88 0.170583 1139.35 -0.00171947L1146.39 -2.60779L1146.39 -2.60795Z" fill="white"/>
|
|
5
|
+
<path d="M965.392 18.392L967.998 11.3493C968.17 10.8836 968.829 10.8836 969.002 11.3493L971.608 18.3922L978.651 20.9983C979.116 21.1706 979.116 21.8296 978.651 22.0019L971.608 24.608L969.002 31.6508C968.829 32.1166 968.17 32.1166 967.998 31.6508L965.392 24.608L958.349 22.0019C957.884 21.8296 957.884 21.1706 958.349 20.9983L965.392 18.3922L965.392 18.392Z" fill="white"/>
|
|
6
|
+
<path d="M322.392 36.392L324.998 29.3493C325.17 28.8836 325.829 28.8836 326.002 29.3493L328.608 36.3922L335.651 38.9983C336.116 39.1706 336.116 39.8296 335.651 40.0019L328.608 42.608L326.002 49.6508C325.829 50.1166 325.17 50.1166 324.998 49.6508L322.392 42.608L315.349 40.0019C314.884 39.8296 314.884 39.1706 315.349 38.9983L322.392 36.3922L322.392 36.392Z" fill="white"/>
|
|
7
|
+
<path d="M1349 34.9998L1349 6.00001L1320 6.00001C1320 22.0174 1332.98 34.9998 1349 34.9998Z" fill="#213CE7"/>
|
|
8
|
+
<path d="M1244.86 19.8721C1252.37 19.8721 1252.37 30.8962 1259.88 30.8962C1267.39 30.8962 1267.4 19.8721 1274.91 19.8721C1282.42 19.8721 1282.42 30.8962 1289.93 30.8962C1297.44 30.8962 1297.44 19.8721 1304.95 19.8721C1312.47 19.8721 1312.47 30.8962 1319.98 30.8962C1327.49 30.8962 1327.49 19.8721 1335 19.8721" stroke="#D841C3" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
|
9
|
+
<path d="M1244.86 31.7442L1221 22.1552V17.6461L1244.86 8V11.9954L1224.94 19.8721L1244.86 27.7488V31.7442Z" fill="#F5CD50"/>
|
|
10
|
+
<path d="M183 10L204 18.4808V22.4687L183 31L183 27.4663L200.535 20.5L183 13.5337L183 10Z" fill="#D841C3"/>
|
|
11
|
+
<path d="M99 19C105.667 19 105.667 29 112.333 29C118.999 29 119 19 125.666 19C132.332 19 132.333 29 139 29C145.666 29 145.666 19 152.333 19C159 19 159 29 165.666 29C172.332 29 172.333 19 179 19" stroke="#F5CD50" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
12
|
+
<path d="M464 20V44H488C488 30.7441 477.256 20 464 20Z" fill="#F6BE00"/>
|
|
13
|
+
</g>
|
|
14
|
+
<defs>
|
|
15
|
+
<clipPath id="clip0_1836_1252">
|
|
16
|
+
<rect width="1440" height="41" fill="white"/>
|
|
17
|
+
</clipPath>
|
|
18
|
+
</defs>
|
|
19
|
+
</svg>
|
game/static/game/js/animation.js
CHANGED
|
@@ -16,20 +16,19 @@ ocargo.Animation = function(model, decor, drawing) {
|
|
|
16
16
|
|
|
17
17
|
this.setAnimationDuration(this.REGULAR_ANIMATION_DURATION);
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
// timer identifier for pausing
|
|
20
|
+
this.playTimer = -1;
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
this.drawing.clearPaper();
|
|
23
|
+
this.drawing.renderMap(this.model.map);
|
|
24
|
+
this.drawing.renderCharacter();
|
|
25
|
+
this.drawing.renderDecor(this.decor);
|
|
26
|
+
this.drawing.renderOrigin(this.model.map.startingPosition());
|
|
27
|
+
this.drawing.renderDestinations(this.model.map.getDestinations());
|
|
28
|
+
this.drawing.renderTrafficLights(this.model.trafficLights);
|
|
28
29
|
|
|
29
30
|
this.addCows();
|
|
30
31
|
|
|
31
|
-
this.drawing.renderCharacter();
|
|
32
|
-
|
|
33
32
|
this._updateFuelGauge(100);
|
|
34
33
|
};
|
|
35
34
|
|
|
@@ -39,11 +38,11 @@ ocargo.Animation.prototype.isFinished = function() {
|
|
|
39
38
|
|
|
40
39
|
ocargo.Animation.prototype.addCows = function() {
|
|
41
40
|
let cows = this.model.cows;
|
|
42
|
-
|
|
41
|
+
|
|
43
42
|
for (let i = 0 ; i < cows.length ; i++){
|
|
44
43
|
let cow = cows[i];
|
|
45
|
-
for (let j = 0; j < cow.
|
|
46
|
-
const cowImage = this.drawing.renderCow(cow.id, cow.
|
|
44
|
+
for (let j = 0; j < cow.coordinates.length; j++) {
|
|
45
|
+
const cowImage = this.drawing.renderCow(cow.id, cow.coordinates[j], cow.potentialNodes[j], 0, cow.type);
|
|
47
46
|
this.numberOfCowsOnMap++;
|
|
48
47
|
this.activeCows.push(cowImage);
|
|
49
48
|
}
|
|
@@ -168,6 +167,18 @@ ocargo.Animation.prototype.playAnimation = function() {
|
|
|
168
167
|
if (!this.currentlyAnimating && !this.isPlaying && this.animationQueue.length > 0) {
|
|
169
168
|
this.isPlaying = true;
|
|
170
169
|
this.stepAnimation(undefined);
|
|
170
|
+
|
|
171
|
+
let gauge_text = document.getElementById("Text_percentage");
|
|
172
|
+
let gauge_text_value = document.getElementById("Text_percentage_value");
|
|
173
|
+
let gauge_charge_circle = document.getElementById("f");
|
|
174
|
+
let gauge_emptying_circle = document.getElementById("emptying_circle");
|
|
175
|
+
|
|
176
|
+
gauge_text.setAttribute("transform", "translate(42.3 48.2)");
|
|
177
|
+
gauge_text.setAttribute("fill", "#4ba0dd");
|
|
178
|
+
gauge_text_value.textContent = "100%";
|
|
179
|
+
gauge_charge_circle.setAttribute("fill", "#4ba0dd");
|
|
180
|
+
gauge_emptying_circle.setAttribute("stroke-dashoffset", 273.18);
|
|
181
|
+
gauge_emptying_circle.setAttribute("transform", "rotate(90, 59.79, 59.79)");
|
|
171
182
|
}
|
|
172
183
|
};
|
|
173
184
|
|
|
@@ -228,6 +239,9 @@ ocargo.Animation.prototype.performAnimation = function(animation) {
|
|
|
228
239
|
case 'WAIT':
|
|
229
240
|
this.drawing.wait();
|
|
230
241
|
break;
|
|
242
|
+
case 'SOUND_HORN':
|
|
243
|
+
this.drawing.wait();
|
|
244
|
+
break;
|
|
231
245
|
case 'PUFFUP':
|
|
232
246
|
this.scalingModifier.push(2);
|
|
233
247
|
break;
|
|
@@ -304,7 +318,11 @@ ocargo.Animation.prototype.performAnimation = function(animation) {
|
|
|
304
318
|
} else {
|
|
305
319
|
// If there exists next level, add animation button which redirects the user to that
|
|
306
320
|
if (NEXT_LEVEL_URL) {
|
|
307
|
-
|
|
321
|
+
if (NEXT_LEVEL_URL == "/pythonden/") {
|
|
322
|
+
buttons += ocargo.button.episodeRedirectButtonHtml('next_level_button', NEXT_LEVEL_URL, gettext('Next episode'), NEXT_EPISODE)
|
|
323
|
+
} else {
|
|
324
|
+
buttons += ocargo.button.redirectButtonHtml('next_level_button', NEXT_LEVEL_URL, gettext('Next level'))
|
|
325
|
+
}
|
|
308
326
|
}
|
|
309
327
|
else if (PREV_LEVEL_URL) {
|
|
310
328
|
buttons += ocargo.button.redirectButtonHtml('prev_level_button', PREV_LEVEL_URL, gettext('Previous level'));
|
|
@@ -351,7 +369,7 @@ ocargo.Animation.prototype.performAnimation = function(animation) {
|
|
|
351
369
|
}
|
|
352
370
|
var otherMsg = "";
|
|
353
371
|
if (animation.popupHint) {
|
|
354
|
-
buttons += '<button class="navigation_button long_button" id="hintPopupBtn"><span>' + gettext('
|
|
372
|
+
buttons += '<button class="navigation_button long_button" id="hintPopupBtn"><span>' + gettext('Show hint') + '</span></button>';
|
|
355
373
|
otherMsg = '<div id="hintBtnPara">' + '</div><div id="hintText">' + HINT + '</div>';
|
|
356
374
|
}
|
|
357
375
|
ocargo.Drawing.startPopup(title, leadMsg, otherMsg, true, buttons);
|
|
@@ -367,9 +385,9 @@ ocargo.Animation.prototype.performAnimation = function(animation) {
|
|
|
367
385
|
this.drawing.transitionTrafficLight(animation.id, animation.colour, duration/2);
|
|
368
386
|
break;
|
|
369
387
|
case 'cow_leave':
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
388
|
+
this.numberOfCowsOnMap--;
|
|
389
|
+
var cow = this._extractCowAt(animation.coordinate);
|
|
390
|
+
this.drawing.removeCow(cow, duration); // remove it from drawing
|
|
373
391
|
break;
|
|
374
392
|
case 'console':
|
|
375
393
|
ocargo.pythonControl.appendToConsole(animation.text);
|
|
@@ -381,7 +399,7 @@ ocargo.Animation.prototype.performAnimation = function(animation) {
|
|
|
381
399
|
ocargo.Animation.prototype._extractCowAt = function(coordinate) {
|
|
382
400
|
for (var i = 0; i < this.activeCows.length; i++) {
|
|
383
401
|
var cow = this.activeCows[i];
|
|
384
|
-
if (cow.coordinate
|
|
402
|
+
if (coordinate.equals(cow.coordinate)) {
|
|
385
403
|
this.activeCows.splice(i, 1); // remove cow from array
|
|
386
404
|
return cow;
|
|
387
405
|
}
|
|
@@ -389,16 +407,39 @@ ocargo.Animation.prototype._extractCowAt = function(coordinate) {
|
|
|
389
407
|
};
|
|
390
408
|
|
|
391
409
|
ocargo.Animation.prototype._updateFuelIfPresent = function(animation) {
|
|
392
|
-
if (typeof animation.fuel != 'undefined') {
|
|
410
|
+
if (typeof animation.fuel != 'undefined' && animation.fuel >= 0) {
|
|
393
411
|
this._updateFuelGauge(animation.fuel);
|
|
394
412
|
}
|
|
395
413
|
};
|
|
396
414
|
|
|
397
415
|
ocargo.Animation.prototype._updateFuelGauge = function(fuelPercentage) {
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
416
|
+
if (CHARACTER_NAME == "Electric van") {
|
|
417
|
+
let gaugeCircumference = 273.18;
|
|
418
|
+
let baseRotation = 270;
|
|
419
|
+
|
|
420
|
+
let offset = gaugeCircumference * (fuelPercentage / 100);
|
|
421
|
+
let rotation = 36 * (fuelPercentage / 10) - baseRotation;
|
|
422
|
+
|
|
423
|
+
let color = (fuelPercentage > 30) ? "#4ba0dd" : ((fuelPercentage > 10) ? "#ff7300" : "#ff3131");
|
|
424
|
+
let text_x = (fuelPercentage == 100) ? 42.3 : ((fuelPercentage >= 10) ? 45 : 50);
|
|
425
|
+
|
|
426
|
+
let gauge_text = document.getElementById("Text_percentage");
|
|
427
|
+
let gauge_text_value = document.getElementById("Text_percentage_value");
|
|
428
|
+
let gauge_charge_circle = document.getElementById("f");
|
|
429
|
+
let gauge_emptying_circle = document.getElementById("emptying_circle");
|
|
430
|
+
|
|
431
|
+
gauge_text.setAttribute("transform", "translate(" + text_x + " 48.2)");
|
|
432
|
+
gauge_text.setAttribute("fill", color);
|
|
433
|
+
gauge_text_value.textContent = fuelPercentage + "%";
|
|
434
|
+
gauge_charge_circle.setAttribute("fill", color);
|
|
435
|
+
gauge_emptying_circle.setAttribute("stroke-dashoffset", offset);
|
|
436
|
+
gauge_emptying_circle.setAttribute("transform", "rotate(" + rotation + ", 59.79, 59.79)");
|
|
437
|
+
} else {
|
|
438
|
+
var degrees = ((fuelPercentage / 100) * 240) - 120;
|
|
439
|
+
var rotation = 'rotate(' + degrees + 'deg)';
|
|
440
|
+
document.getElementById('fuelGaugePointer').style.transform = rotation;
|
|
441
|
+
document.getElementById('fuelGaugePointer').style.webkitTransform = rotation;
|
|
442
|
+
}
|
|
402
443
|
};
|
|
403
444
|
|
|
404
445
|
ocargo.Animation.prototype.serializeAnimationQueue = function(blocks){
|
|
@@ -433,4 +433,55 @@ Blockly.Msg["VARIABLES_HUE"] = "330";
|
|
|
433
433
|
Blockly.Msg["TEXTS_HUE"] = "160";
|
|
434
434
|
Blockly.Msg["PROCEDURES_HUE"] = "290";
|
|
435
435
|
Blockly.Msg["COLOUR_HUE"] = "20";
|
|
436
|
-
Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
|
|
436
|
+
Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
|
|
437
|
+
|
|
438
|
+
Blockly.Msg["START_TITLE"] = "Начало";
|
|
439
|
+
Blockly.Msg["START_TOOLTIP"] = "Началото на програмата"
|
|
440
|
+
Blockly.Msg["MOVE_FORWARDS_TITLE"] = "Премести напред";
|
|
441
|
+
Blockly.Msg["MOVE_FORWARDS_TOOLTIP"] = "премества камиона напред";
|
|
442
|
+
Blockly.Msg["TURN_LEFT_TITLE"] = "Завий наляво";
|
|
443
|
+
Blockly.Msg["TURN_LEFT_TOOLTIP"] = "камионът прави ляв завой";
|
|
444
|
+
Blockly.Msg["TURN_RIGHT_TITLE"] = "Завий надясно";
|
|
445
|
+
Blockly.Msg["TURN_RIGHT_TOOLTIP"] = "камионът прави десен завой";
|
|
446
|
+
Blockly.Msg["TURN_AROUND_TITLE"] = "Завърти се наобратно";
|
|
447
|
+
Blockly.Msg["TURN_AROUND_TOOLTIP"] = "камионът ще се движи в противоположна посока";
|
|
448
|
+
|
|
449
|
+
Blockly.Msg["WAIT_TITLE"] = "Изчакай";
|
|
450
|
+
Blockly.Msg["WAIT_TOOLTIP"] = "камионът стои неподвижно";
|
|
451
|
+
Blockly.Msg["DELIVER_TITLE"] = "Достави";
|
|
452
|
+
Blockly.Msg["DELIVER_TOOLTIP"] = "доставя стоките от камиона";
|
|
453
|
+
Blockly.Msg["SOUND_HORN_TITLE"] = "Свирни";
|
|
454
|
+
Blockly.Msg["SOUND_HORN_TOOLTIP"] = "включва клаксон за да плаши кравите";
|
|
455
|
+
|
|
456
|
+
Blockly.Msg["ROAD_EXISTS_FORWARD_TITLE"] = "Има път направо";
|
|
457
|
+
Blockly.Msg["ROAD_EXISTS_LEFT_TITLE"] = "Има път наляво";
|
|
458
|
+
Blockly.Msg["ROAD_EXISTS_RIGHT_TITLE"] = "Има път надясно";
|
|
459
|
+
Blockly.Msg["TRAFFIC_LIGHT_RED_TITLE"] = "Червен светофар";
|
|
460
|
+
Blockly.Msg["TRAFFIC_LIGHT_GREEN_TITLE"] = "зелен светофар";
|
|
461
|
+
Blockly.Msg["DEAD_END_TITLE"] = "Път без изход";
|
|
462
|
+
Blockly.Msg["AT_DESTINATION_TITLE"] = "На адреса";
|
|
463
|
+
Blockly.Msg["COW_CROSSING_TITLE"] = "Крави";
|
|
464
|
+
Blockly.Msg["PIGEON_CROSSING_TITLE"] = "гълъби";
|
|
465
|
+
|
|
466
|
+
Blockly.Msg["CALL_PROC_TITLE"] = "Изпълни";
|
|
467
|
+
Blockly.Msg["CALL_PROC_TOOLTIP"] = "изпълнява процедура";
|
|
468
|
+
Blockly.Msg["DECLARE_PROC_TITLE"] = "Дефинирай";
|
|
469
|
+
Blockly.Msg["DECLARE_PROC_SUBTITLE"] = "прави";
|
|
470
|
+
Blockly.Msg["DECLARE_PROC_TOOLTIP"] = "декларира процедура";
|
|
471
|
+
Blockly.Msg["CONTROLS_REPEAT_WHILE_TITLE"] = "Повтори докато";
|
|
472
|
+
Blockly.Msg["CONTROLS_REPEAT_WHILE_SUBTITLE"] = "прави";
|
|
473
|
+
Blockly.Msg["CONTROLS_REPEAT_WHILE_TOOLTIP"] = "докато стойността е вярна, изпълнявай действията";
|
|
474
|
+
Blockly.Msg["CONTROLS_REPEAT_UNTIL_TITLE"] = "Повтори докато не";
|
|
475
|
+
Blockly.Msg["CONTROLS_REPEAT_UNTIL_SUBTITLE"] = "прави";
|
|
476
|
+
Blockly.Msg["CONTROLS_REPEAT_UNTIL_TOOLTIP"] = "изпълнявай действията, докато стойността не е вярна";
|
|
477
|
+
|
|
478
|
+
Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "променлива";
|
|
479
|
+
Blockly.Msg["VARIABLES_SET_TITLE"] = "Задай на";
|
|
480
|
+
Blockly.Msg["VARIABLES_SET_SUBTITLE"] = "стойност";
|
|
481
|
+
Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "задаване на стойност на променлива";
|
|
482
|
+
Blockly.Msg["VARIABLES_NUMERIC_SET_TOOLTIP"] = "задаване на числена стойност на променлива";
|
|
483
|
+
Blockly.Msg["VARIABLES_INCREMENT_TITLE"] = "Увеличи";
|
|
484
|
+
Blockly.Msg["VARIABLES_INCREMENT_SUBTITLE"] = "с";
|
|
485
|
+
Blockly.Msg["VARIABLES_INCREMENT_TOOLTIP"] = "увеличаване на променлива";
|
|
486
|
+
Blockly.Msg["NUMBER_TITLE"] = "Число";
|
|
487
|
+
Blockly.Msg["NUMBER_TOOLTIP"] = "число";
|
|
@@ -433,4 +433,55 @@ Blockly.Msg["VARIABLES_HUE"] = "330";
|
|
|
433
433
|
Blockly.Msg["TEXTS_HUE"] = "160";
|
|
434
434
|
Blockly.Msg["PROCEDURES_HUE"] = "290";
|
|
435
435
|
Blockly.Msg["COLOUR_HUE"] = "20";
|
|
436
|
-
Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
|
|
436
|
+
Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
|
|
437
|
+
|
|
438
|
+
Blockly.Msg["START_TITLE"] = "Inici";
|
|
439
|
+
Blockly.Msg["START_TOOLTIP"] = "L’inici del programa"
|
|
440
|
+
Blockly.Msg["MOVE_FORWARDS_TITLE"] = "mou endavant";
|
|
441
|
+
Blockly.Msg["MOVE_FORWARDS_TOOLTIP"] = "Mou la furgoneta endavant";
|
|
442
|
+
Blockly.Msg["TURN_LEFT_TITLE"] = "gira a l’esquerra";
|
|
443
|
+
Blockly.Msg["TURN_LEFT_TOOLTIP"] = "Gira la furgoneta cap a l’esquerra";
|
|
444
|
+
Blockly.Msg["TURN_RIGHT_TITLE"] = "gira a la dreta";
|
|
445
|
+
Blockly.Msg["TURN_RIGHT_TOOLTIP"] = "Gira la furgoneta cap a la dreta";
|
|
446
|
+
Blockly.Msg["TURN_AROUND_TITLE"] = "canvia de sentit";
|
|
447
|
+
Blockly.Msg["TURN_AROUND_TOOLTIP"] = "Canvia de sentit la furgoneta";
|
|
448
|
+
|
|
449
|
+
Blockly.Msg["WAIT_TITLE"] = "espera";
|
|
450
|
+
Blockly.Msg["WAIT_TOOLTIP"] = "Deixa la furgoneta parada";
|
|
451
|
+
Blockly.Msg["DELIVER_TITLE"] = "entrega";
|
|
452
|
+
Blockly.Msg["DELIVER_TOOLTIP"] = "Entrega les mercaderies de la furgoneta";
|
|
453
|
+
Blockly.Msg["SOUND_HORN_TITLE"] = "fes sonar el clàxon";
|
|
454
|
+
Blockly.Msg["SOUND_HORN_TOOLTIP"] = "Fes sonar el clàxon per espantar les vaques";
|
|
455
|
+
|
|
456
|
+
Blockly.Msg["ROAD_EXISTS_FORWARD_TITLE"] = "hi ha una carretera endavant";
|
|
457
|
+
Blockly.Msg["ROAD_EXISTS_LEFT_TITLE"] = "hi ha una carretera a l’esquerra";
|
|
458
|
+
Blockly.Msg["ROAD_EXISTS_RIGHT_TITLE"] = "hi ha una carretera a la dreta";
|
|
459
|
+
Blockly.Msg["TRAFFIC_LIGHT_RED_TITLE"] = "semàfor vermell";
|
|
460
|
+
Blockly.Msg["TRAFFIC_LIGHT_GREEN_TITLE"] = "semàfor verd";
|
|
461
|
+
Blockly.Msg["DEAD_END_TITLE"] = "és carrer sense sortida";
|
|
462
|
+
Blockly.Msg["AT_DESTINATION_TITLE"] = "a destí";
|
|
463
|
+
Blockly.Msg["COW_CROSSING_TITLE"] = "vaques";
|
|
464
|
+
Blockly.Msg["PIGEON_CROSSING_TITLE"] = "coloms";
|
|
465
|
+
|
|
466
|
+
Blockly.Msg["CALL_PROC_TITLE"] = "Crida";
|
|
467
|
+
Blockly.Msg["CALL_PROC_TOOLTIP"] = "Crida un procediment";
|
|
468
|
+
Blockly.Msg["DECLARE_PROC_TITLE"] = "Defineix";
|
|
469
|
+
Blockly.Msg["DECLARE_PROC_SUBTITLE"] = "Fes";
|
|
470
|
+
Blockly.Msg["DECLARE_PROC_TOOLTIP"] = "Declara el procediment";
|
|
471
|
+
Blockly.Msg["CONTROLS_REPEAT_WHILE_TITLE"] = "repeteix mentre";
|
|
472
|
+
Blockly.Msg["CONTROLS_REPEAT_WHILE_SUBTITLE"] = "fes";
|
|
473
|
+
Blockly.Msg["CONTROLS_REPEAT_WHILE_TOOLTIP"] = "Mentre un valor és cert, executa unes instruccions";
|
|
474
|
+
Blockly.Msg["CONTROLS_REPEAT_UNTIL_TITLE"] = "repeteix fins que";
|
|
475
|
+
Blockly.Msg["CONTROLS_REPEAT_UNTIL_SUBTITLE"] = "fes";
|
|
476
|
+
Blockly.Msg["CONTROLS_REPEAT_UNTIL_TOOLTIP"] = "Fins que un valor sigui cert, executa unes instruccions";
|
|
477
|
+
|
|
478
|
+
Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Una variable";
|
|
479
|
+
Blockly.Msg["VARIABLES_SET_TITLE"] = "estableix";
|
|
480
|
+
Blockly.Msg["VARIABLES_SET_SUBTITLE"] = "a";
|
|
481
|
+
Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Estableix el valor d’una variable";
|
|
482
|
+
Blockly.Msg["VARIABLES_NUMERIC_SET_TOOLTIP"] = "Estableix un valor numèric per a una variable";
|
|
483
|
+
Blockly.Msg["VARIABLES_INCREMENT_TITLE"] = "incrementa";
|
|
484
|
+
Blockly.Msg["VARIABLES_INCREMENT_SUBTITLE"] = "en";
|
|
485
|
+
Blockly.Msg["VARIABLES_INCREMENT_TOOLTIP"] = "Incrementa el valor d’una variable";
|
|
486
|
+
Blockly.Msg["NUMBER_TITLE"] = "Nombre";
|
|
487
|
+
Blockly.Msg["NUMBER_TOOLTIP"] = "Un nombre";
|
|
@@ -461,10 +461,12 @@ Blockly.Msg["TRAFFIC_LIGHT_GREEN_TITLE"] = "traffic light green";
|
|
|
461
461
|
Blockly.Msg["DEAD_END_TITLE"] = "is dead end";
|
|
462
462
|
Blockly.Msg["AT_DESTINATION_TITLE"] = "at destination";
|
|
463
463
|
Blockly.Msg["COW_CROSSING_TITLE"] = "cows";
|
|
464
|
+
Blockly.Msg["PIGEON_CROSSING_TITLE"] = "pigeons";
|
|
464
465
|
|
|
465
466
|
Blockly.Msg["CALL_PROC_TITLE"] = "Call";
|
|
466
467
|
Blockly.Msg["CALL_PROC_TOOLTIP"] = "Calls a procedure";
|
|
467
468
|
Blockly.Msg["DECLARE_PROC_TITLE"] = "Define";
|
|
469
|
+
Blockly.Msg["DECLARE_PROC_SUBTITLE"] = "Do";
|
|
468
470
|
Blockly.Msg["DECLARE_PROC_TOOLTIP"] = "Declares a procedure";
|
|
469
471
|
Blockly.Msg["CONTROLS_REPEAT_WHILE_TITLE"] = "repeat while";
|
|
470
472
|
Blockly.Msg["CONTROLS_REPEAT_WHILE_SUBTITLE"] = "do";
|
|
@@ -461,10 +461,12 @@ Blockly.Msg["TRAFFIC_LIGHT_GREEN_TITLE"] = "traffic light green";
|
|
|
461
461
|
Blockly.Msg["DEAD_END_TITLE"] = "is dead end";
|
|
462
462
|
Blockly.Msg["AT_DESTINATION_TITLE"] = "at destination";
|
|
463
463
|
Blockly.Msg["COW_CROSSING_TITLE"] = "cows";
|
|
464
|
+
Blockly.Msg["PIGEON_CROSSING_TITLE"] = "pigeons";
|
|
464
465
|
|
|
465
466
|
Blockly.Msg["CALL_PROC_TITLE"] = "Call";
|
|
466
467
|
Blockly.Msg["CALL_PROC_TOOLTIP"] = "Calls a procedure";
|
|
467
468
|
Blockly.Msg["DECLARE_PROC_TITLE"] = "Define";
|
|
469
|
+
Blockly.Msg["DECLARE_PROC_SUBTITLE"] = "Do";
|
|
468
470
|
Blockly.Msg["DECLARE_PROC_TOOLTIP"] = "Declares a procedure";
|
|
469
471
|
Blockly.Msg["CONTROLS_REPEAT_WHILE_TITLE"] = "repeat while";
|
|
470
472
|
Blockly.Msg["CONTROLS_REPEAT_WHILE_SUBTITLE"] = "do";
|
|
@@ -433,4 +433,55 @@ Blockly.Msg["VARIABLES_HUE"] = "330";
|
|
|
433
433
|
Blockly.Msg["TEXTS_HUE"] = "160";
|
|
434
434
|
Blockly.Msg["PROCEDURES_HUE"] = "290";
|
|
435
435
|
Blockly.Msg["COLOUR_HUE"] = "20";
|
|
436
|
-
Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
|
|
436
|
+
Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
|
|
437
|
+
|
|
438
|
+
Blockly.Msg["START_TITLE"] = "Comenzar";
|
|
439
|
+
Blockly.Msg["START_TOOLTIP"] = "El comienzo del programa"
|
|
440
|
+
Blockly.Msg["MOVE_FORWARDS_TITLE"] = "avanzar";
|
|
441
|
+
Blockly.Msg["MOVE_FORWARDS_TOOLTIP"] = "Mover la furgoneta hacia adelante";
|
|
442
|
+
Blockly.Msg["TURN_LEFT_TITLE"] = "girar a la izquierda";
|
|
443
|
+
Blockly.Msg["TURN_LEFT_TOOLTIP"] = "Girar la furgoneta a la izquierda";
|
|
444
|
+
Blockly.Msg["TURN_RIGHT_TITLE"] = "girar a la derecha";
|
|
445
|
+
Blockly.Msg["TURN_RIGHT_TOOLTIP"] = "Girar la furgoneta a la derecha";
|
|
446
|
+
Blockly.Msg["TURN_AROUND_TITLE"] = "dar la vuelta";
|
|
447
|
+
Blockly.Msg["TURN_AROUND_TOOLTIP"] = "Dar media vuelta con la furgoneta";
|
|
448
|
+
|
|
449
|
+
Blockly.Msg["WAIT_TITLE"] = "esperar";
|
|
450
|
+
Blockly.Msg["WAIT_TOOLTIP"] = "Mantener la furgoneta estacionaria";
|
|
451
|
+
Blockly.Msg["DELIVER_TITLE"] = "entregar";
|
|
452
|
+
Blockly.Msg["DELIVER_TOOLTIP"] = "Entregar la mercancía de la furgoneta";
|
|
453
|
+
Blockly.Msg["SOUND_HORN_TITLE"] = "tocar el claxon";
|
|
454
|
+
Blockly.Msg["SOUND_HORN_TOOLTIP"] = "Tocar el claxon para asustar a las vacas";
|
|
455
|
+
|
|
456
|
+
Blockly.Msg["ROAD_EXISTS_FORWARD_TITLE"] = "hay una carretera hacia delante";
|
|
457
|
+
Blockly.Msg["ROAD_EXISTS_LEFT_TITLE"] = "hay una carretera hacia la izquierda";
|
|
458
|
+
Blockly.Msg["ROAD_EXISTS_RIGHT_TITLE"] = "hay una carretera hacia la derecha";
|
|
459
|
+
Blockly.Msg["TRAFFIC_LIGHT_RED_TITLE"] = "semáforo en rojo";
|
|
460
|
+
Blockly.Msg["TRAFFIC_LIGHT_GREEN_TITLE"] = "semáforo en verde";
|
|
461
|
+
Blockly.Msg["DEAD_END_TITLE"] = "es un callejón sin salida";
|
|
462
|
+
Blockly.Msg["AT_DESTINATION_TITLE"] = "en destino";
|
|
463
|
+
Blockly.Msg["COW_CROSSING_TITLE"] = "vacas";
|
|
464
|
+
Blockly.Msg["PIGEON_CROSSING_TITLE"] = "palomas";
|
|
465
|
+
|
|
466
|
+
Blockly.Msg["CALL_PROC_TITLE"] = "Llamar";
|
|
467
|
+
Blockly.Msg["CALL_PROC_TOOLTIP"] = "Llamar a una función";
|
|
468
|
+
Blockly.Msg["DECLARE_PROC_TITLE"] = "Definir";
|
|
469
|
+
Blockly.Msg["DECLARE_PROC_SUBTITLE"] = "Hacer";
|
|
470
|
+
Blockly.Msg["DECLARE_PROC_TOOLTIP"] = "Declara una función";
|
|
471
|
+
Blockly.Msg["CONTROLS_REPEAT_WHILE_TITLE"] = "repetir mientras";
|
|
472
|
+
Blockly.Msg["CONTROLS_REPEAT_WHILE_SUBTITLE"] = "hacer";
|
|
473
|
+
Blockly.Msg["CONTROLS_REPEAT_WHILE_TOOLTIP"] = "Mientras un valor sea verdadero, realizar algunas instrucciones";
|
|
474
|
+
Blockly.Msg["CONTROLS_REPEAT_UNTIL_TITLE"] = "repetir hasta";
|
|
475
|
+
Blockly.Msg["CONTROLS_REPEAT_UNTIL_SUBTITLE"] = "hacer";
|
|
476
|
+
Blockly.Msg["CONTROLS_REPEAT_UNTIL_TOOLTIP"] = "Hasta que un valor sea verdadero, realizar algunas instrucciones";
|
|
477
|
+
|
|
478
|
+
Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Una variable";
|
|
479
|
+
Blockly.Msg["VARIABLES_SET_TITLE"] = "asignar";
|
|
480
|
+
Blockly.Msg["VARIABLES_SET_SUBTITLE"] = "a";
|
|
481
|
+
Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Asignar una variable";
|
|
482
|
+
Blockly.Msg["VARIABLES_NUMERIC_SET_TOOLTIP"] = "Asignar una variable a un número";
|
|
483
|
+
Blockly.Msg["VARIABLES_INCREMENT_TITLE"] = "incrementar";
|
|
484
|
+
Blockly.Msg["VARIABLES_INCREMENT_SUBTITLE"] = "en";
|
|
485
|
+
Blockly.Msg["VARIABLES_INCREMENT_TOOLTIP"] = "Incrementar una variable";
|
|
486
|
+
Blockly.Msg["NUMBER_TITLE"] = "Número";
|
|
487
|
+
Blockly.Msg["NUMBER_TOOLTIP"] = "Un número";
|
|
@@ -461,10 +461,12 @@ Blockly.Msg["TRAFFIC_LIGHT_GREEN_TITLE"] = "feu vert";
|
|
|
461
461
|
Blockly.Msg["DEAD_END_TITLE"] = "cul-de-sac";
|
|
462
462
|
Blockly.Msg["AT_DESTINATION_TITLE"] = "arrivé à destination";
|
|
463
463
|
Blockly.Msg["COW_CROSSING_TITLE"] = "vaches";
|
|
464
|
+
Blockly.Msg["PIGEON_CROSSING_TITLE"] = "pigeons";
|
|
464
465
|
|
|
465
466
|
Blockly.Msg["CALL_PROC_TITLE"] = "Appeler";
|
|
466
467
|
Blockly.Msg["CALL_PROC_TOOLTIP"] = "Appeler une fonction";
|
|
467
468
|
Blockly.Msg["DECLARE_PROC_TITLE"] = "Définir";
|
|
469
|
+
Blockly.Msg["DECLARE_PROC_SUBTITLE"] = "Faire";
|
|
468
470
|
Blockly.Msg["DECLARE_PROC_TOOLTIP"] = "Déclarer une fonction";
|
|
469
471
|
Blockly.Msg["CONTROLS_REPEAT_WHILE_TITLE"] = "répéter tant que";
|
|
470
472
|
Blockly.Msg["CONTROLS_REPEAT_WHILE_SUBTITLE"] = "faire";
|
|
@@ -461,10 +461,12 @@ Blockly.Msg["TRAFFIC_LIGHT_GREEN_TITLE"] = "ट्रैफिक लाइट
|
|
|
461
461
|
Blockly.Msg["DEAD_END_TITLE"] = "आगे का रास्ता बंद है";
|
|
462
462
|
Blockly.Msg["AT_DESTINATION_TITLE"] = "मंजिल /गंतव्य पर";
|
|
463
463
|
Blockly.Msg["COW_CROSSING_TITLE"] = "गायों";
|
|
464
|
+
Blockly.Msg["PIGEON_CROSSING_TITLE"] = "कबूतरों";
|
|
464
465
|
|
|
465
466
|
Blockly.Msg["CALL_PROC_TITLE"] = "पुकारना";
|
|
466
467
|
Blockly.Msg["CALL_PROC_TOOLTIP"] = "एक प्रक्रिया बुलाना";
|
|
467
468
|
Blockly.Msg["DECLARE_PROC_TITLE"] = "परिभाषित करना";
|
|
469
|
+
Blockly.Msg["DECLARE_PROC_SUBTITLE"] = "करो";
|
|
468
470
|
Blockly.Msg["DECLARE_PROC_TOOLTIP"] = "प्रक्रिया की घोषणा करता है";
|
|
469
471
|
Blockly.Msg["CONTROLS_REPEAT_WHILE_TITLE"] = "दोहराएँ जबकि";
|
|
470
472
|
Blockly.Msg["CONTROLS_REPEAT_WHILE_SUBTITLE"] = "करो";
|
|
@@ -433,4 +433,55 @@ Blockly.Msg["VARIABLES_HUE"] = "330";
|
|
|
433
433
|
Blockly.Msg["TEXTS_HUE"] = "160";
|
|
434
434
|
Blockly.Msg["PROCEDURES_HUE"] = "290";
|
|
435
435
|
Blockly.Msg["COLOUR_HUE"] = "20";
|
|
436
|
-
Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
|
|
436
|
+
Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
|
|
437
|
+
|
|
438
|
+
Blockly.Msg["START_TITLE"] = "Via";
|
|
439
|
+
Blockly.Msg["START_TOOLTIP"] = "Inizio del programma"
|
|
440
|
+
Blockly.Msg["MOVE_FORWARDS_TITLE"] = "Avanti";
|
|
441
|
+
Blockly.Msg["MOVE_FORWARDS_TOOLTIP"] = "il van va diritto";
|
|
442
|
+
Blockly.Msg["TURN_LEFT_TITLE"] = "Sinistra";
|
|
443
|
+
Blockly.Msg["TURN_LEFT_TOOLTIP"] = "il van gira a sinistra";
|
|
444
|
+
Blockly.Msg["TURN_RIGHT_TITLE"] = "Destra";
|
|
445
|
+
Blockly.Msg["TURN_RIGHT_TOOLTIP"] = "il van gira a destra";
|
|
446
|
+
Blockly.Msg["TURN_AROUND_TITLE"] = "Torna indietro";
|
|
447
|
+
Blockly.Msg["TURN_AROUND_TOOLTIP"] = "il van si gira";
|
|
448
|
+
|
|
449
|
+
Blockly.Msg["WAIT_TITLE"] = "Aspetta";
|
|
450
|
+
Blockly.Msg["WAIT_TOOLTIP"] = "il van rimane fermo";
|
|
451
|
+
Blockly.Msg["DELIVER_TITLE"] = "Consegna";
|
|
452
|
+
Blockly.Msg["DELIVER_TOOLTIP"] = "consegna la merce";
|
|
453
|
+
Blockly.Msg["SOUND_HORN_TITLE"] = "Suona il clacson";
|
|
454
|
+
Blockly.Msg["SOUND_HORN_TOOLTIP"] = "suona il clacson per spaventare le mucche";
|
|
455
|
+
|
|
456
|
+
Blockly.Msg["ROAD_EXISTS_FORWARD_TITLE"] = "La strada continua dritta";
|
|
457
|
+
Blockly.Msg["ROAD_EXISTS_LEFT_TITLE"] = "La strada continua a sinistra";
|
|
458
|
+
Blockly.Msg["ROAD_EXISTS_RIGHT_TITLE"] = "La strada continua a destra";
|
|
459
|
+
Blockly.Msg["TRAFFIC_LIGHT_RED_TITLE"] = "Semaforo rosso";
|
|
460
|
+
Blockly.Msg["TRAFFIC_LIGHT_GREEN_TITLE"] = "Semaforo verde";
|
|
461
|
+
Blockly.Msg["DEAD_END_TITLE"] = "La via è senza uscita";
|
|
462
|
+
Blockly.Msg["AT_DESTINATION_TITLE"] = "Arrivati a destinazione";
|
|
463
|
+
Blockly.Msg["COW_CROSSING_TITLE"] = "Mucche";
|
|
464
|
+
Blockly.Msg["PIGEON_CROSSING_TITLE"] = "pigeons"; // untranslated
|
|
465
|
+
|
|
466
|
+
Blockly.Msg["CALL_PROC_TITLE"] = "Esegui";
|
|
467
|
+
Blockly.Msg["CALL_PROC_TOOLTIP"] = "chiama una procedura";
|
|
468
|
+
Blockly.Msg["DECLARE_PROC_TITLE"] = "Dichiara";
|
|
469
|
+
Blockly.Msg["DECLARE_PROC_SUBTITLE"] = ""; // ?
|
|
470
|
+
Blockly.Msg["DECLARE_PROC_TOOLTIP"] = "dichiara la procedura";
|
|
471
|
+
Blockly.Msg["CONTROLS_REPEAT_WHILE_TITLE"] = "Ripeti su condizione";
|
|
472
|
+
Blockly.Msg["CONTROLS_REPEAT_WHILE_SUBTITLE"] = ""; // ?
|
|
473
|
+
Blockly.Msg["CONTROLS_REPEAT_WHILE_TOOLTIP"] = "quando il valore è true, ripeti le istruzioni";
|
|
474
|
+
Blockly.Msg["CONTROLS_REPEAT_UNTIL_TITLE"] = "Ripeti finché";
|
|
475
|
+
Blockly.Msg["CONTROLS_REPEAT_UNTIL_SUBTITLE"] = ""; // ?
|
|
476
|
+
Blockly.Msg["CONTROLS_REPEAT_UNTIL_TOOLTIP"] = "ripeti le istruzioni finchè la condizione è true";
|
|
477
|
+
|
|
478
|
+
Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "una variabile";
|
|
479
|
+
Blockly.Msg["VARIABLES_SET_TITLE"] = "Setta";
|
|
480
|
+
Blockly.Msg["VARIABLES_SET_SUBTITLE"] = "al valore";
|
|
481
|
+
Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "assegna una variabile";
|
|
482
|
+
Blockly.Msg["VARIABLES_NUMERIC_SET_TOOLTIP"] = "assegna un numero alla variabile";
|
|
483
|
+
Blockly.Msg["VARIABLES_INCREMENT_TITLE"] = "Incrementa";
|
|
484
|
+
Blockly.Msg["VARIABLES_INCREMENT_SUBTITLE"] = "di";
|
|
485
|
+
Blockly.Msg["VARIABLES_INCREMENT_TOOLTIP"] = "incrementa una variabile";
|
|
486
|
+
Blockly.Msg["NUMBER_TITLE"] = "Numero";
|
|
487
|
+
Blockly.Msg["NUMBER_TOOLTIP"] = "un valore numerico";
|
|
@@ -433,4 +433,55 @@ Blockly.Msg["VARIABLES_HUE"] = "330";
|
|
|
433
433
|
Blockly.Msg["TEXTS_HUE"] = "160";
|
|
434
434
|
Blockly.Msg["PROCEDURES_HUE"] = "290";
|
|
435
435
|
Blockly.Msg["COLOUR_HUE"] = "20";
|
|
436
|
-
Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
|
|
436
|
+
Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
|
|
437
|
+
|
|
438
|
+
Blockly.Msg["START_TITLE"] = "Rozpocznij";
|
|
439
|
+
Blockly.Msg["START_TOOLTIP"] = "początek programu";
|
|
440
|
+
Blockly.Msg["MOVE_FORWARDS_TITLE"] = "Naprzód";
|
|
441
|
+
Blockly.Msg["MOVE_FORWARDS_TOOLTIP"] = "przesuń pojazd do przodu";
|
|
442
|
+
Blockly.Msg["TURN_LEFT_TITLE"] = "Skręć w lewo";
|
|
443
|
+
Blockly.Msg["TURN_LEFT_TOOLTIP"] = "obróć pojazd w lewo";
|
|
444
|
+
Blockly.Msg["TURN_RIGHT_TITLE"] = "Skręć w prawo";
|
|
445
|
+
Blockly.Msg["TURN_RIGHT_TOOLTIP"] = "obróć pojazd w prawo";
|
|
446
|
+
Blockly.Msg["TURN_AROUND_TITLE"] = "Zawróć";
|
|
447
|
+
Blockly.Msg["TURN_AROUND_TOOLTIP"] = "zawróć pojazd w przeciwnym kierunku";
|
|
448
|
+
|
|
449
|
+
Blockly.Msg["WAIT_TITLE"] = "Czekaj";
|
|
450
|
+
Blockly.Msg["WAIT_TOOLTIP"] = "nie wykonuj ruchów pojazdem";
|
|
451
|
+
Blockly.Msg["DELIVER_TITLE"] = "Dostarcz";
|
|
452
|
+
Blockly.Msg["DELIVER_TOOLTIP"] = "dostarcz towary z pojazdu";
|
|
453
|
+
Blockly.Msg["SOUND_HORN_TITLE"] = "Zatrąb";
|
|
454
|
+
Blockly.Msg["SOUND_HORN_TOOLTIP"] = "użyj klaksonu aby przegonić krowy";
|
|
455
|
+
|
|
456
|
+
Blockly.Msg["ROAD_EXISTS_FORWARD_TITLE"] = "Droga istnieje z przodu";
|
|
457
|
+
Blockly.Msg["ROAD_EXISTS_LEFT_TITLE"] = "Droga istnieje z po lewej";
|
|
458
|
+
Blockly.Msg["ROAD_EXISTS_RIGHT_TITLE"] = "Droga istnieje z po prawej";
|
|
459
|
+
Blockly.Msg["TRAFFIC_LIGHT_RED_TITLE"] = "sygnalizacja świetlna Czerwone";
|
|
460
|
+
Blockly.Msg["TRAFFIC_LIGHT_GREEN_TITLE"] = "sygnalizacja świetlna zielone";
|
|
461
|
+
Blockly.Msg["DEAD_END_TITLE"] = "Ślepa ulica";
|
|
462
|
+
Blockly.Msg["AT_DESTINATION_TITLE"] = "U celu";
|
|
463
|
+
Blockly.Msg["COW_CROSSING_TITLE"] = "Krowy";
|
|
464
|
+
Blockly.Msg["PIGEON_CROSSING_TITLE"] = "Gołębie";
|
|
465
|
+
|
|
466
|
+
Blockly.Msg["CALL_PROC_TITLE"] = "Wywołanie";
|
|
467
|
+
Blockly.Msg["CALL_PROC_TOOLTIP"] = "wywołuje procedurę";
|
|
468
|
+
Blockly.Msg["DECLARE_PROC_TITLE"] = "Zdefiniuj";
|
|
469
|
+
Blockly.Msg["DECLARE_PROC_SUBTITLE"] = "Do";
|
|
470
|
+
Blockly.Msg["DECLARE_PROC_TOOLTIP"] = "deklaruje procedurę";
|
|
471
|
+
Blockly.Msg["CONTROLS_REPEAT_WHILE_TITLE"] = "Powtarzaj dopóki";
|
|
472
|
+
Blockly.Msg["CONTROLS_REPEAT_WHILE_SUBTITLE"] = "wykonuj";
|
|
473
|
+
Blockly.Msg["CONTROLS_REPEAT_WHILE_TOOLTIP"] = "dopóki warunek jest spełniany wykonuj instrukcje";
|
|
474
|
+
Blockly.Msg["CONTROLS_REPEAT_UNTIL_TITLE"] = "Powtarzaj aż";
|
|
475
|
+
Blockly.Msg["CONTROLS_REPEAT_UNTIL_SUBTITLE"] = "wykonuj";
|
|
476
|
+
Blockly.Msg["CONTROLS_REPEAT_UNTIL_TOOLTIP"] = "powtarzaj instrukcje aż warunek będzie spełniony";
|
|
477
|
+
|
|
478
|
+
Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "zmienna";
|
|
479
|
+
Blockly.Msg["VARIABLES_SET_TITLE"] = "Ustaw";
|
|
480
|
+
Blockly.Msg["VARIABLES_SET_SUBTITLE"] = "na";
|
|
481
|
+
Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "ustaw zmienną";
|
|
482
|
+
Blockly.Msg["VARIABLES_NUMERIC_SET_TOOLTIP"] = "ustaw zmienną liczbową";
|
|
483
|
+
Blockly.Msg["VARIABLES_INCREMENT_TITLE"] = "Zwiększ";
|
|
484
|
+
Blockly.Msg["VARIABLES_INCREMENT_SUBTITLE"] = "o";
|
|
485
|
+
Blockly.Msg["VARIABLES_INCREMENT_TOOLTIP"] = "zwiększ zmienną";
|
|
486
|
+
Blockly.Msg["NUMBER_TITLE"] = "Liczba";
|
|
487
|
+
Blockly.Msg["NUMBER_TOOLTIP"] = "liczba";
|
|
@@ -433,4 +433,55 @@ Blockly.Msg["VARIABLES_HUE"] = "330";
|
|
|
433
433
|
Blockly.Msg["TEXTS_HUE"] = "160";
|
|
434
434
|
Blockly.Msg["PROCEDURES_HUE"] = "290";
|
|
435
435
|
Blockly.Msg["COLOUR_HUE"] = "20";
|
|
436
|
-
Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
|
|
436
|
+
Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
|
|
437
|
+
|
|
438
|
+
Blockly.Msg["START_TITLE"] = "Início";
|
|
439
|
+
Blockly.Msg["START_TOOLTIP"] = "O início do programa"
|
|
440
|
+
Blockly.Msg["MOVE_FORWARDS_TITLE"] = "Mover em frente";
|
|
441
|
+
Blockly.Msg["MOVE_FORWARDS_TOOLTIP"] = "move a van para frente";
|
|
442
|
+
Blockly.Msg["TURN_LEFT_TITLE"] = "Virar à esquerda";
|
|
443
|
+
Blockly.Msg["TURN_LEFT_TOOLTIP"] = "vira a van para esquerda";
|
|
444
|
+
Blockly.Msg["TURN_RIGHT_TITLE"] = "Virar à direita";
|
|
445
|
+
Blockly.Msg["TURN_RIGHT_TOOLTIP"] = "vira a van para direita";
|
|
446
|
+
Blockly.Msg["TURN_AROUND_TITLE"] = "Dar a volta";
|
|
447
|
+
Blockly.Msg["TURN_AROUND_TOOLTIP"] = "vira a van ao contrário";
|
|
448
|
+
|
|
449
|
+
Blockly.Msg["WAIT_TITLE"] = "Esperar";
|
|
450
|
+
Blockly.Msg["WAIT_TOOLTIP"] = "mantém a van parada";
|
|
451
|
+
Blockly.Msg["DELIVER_TITLE"] = "Entregar";
|
|
452
|
+
Blockly.Msg["DELIVER_TOOLTIP"] = "entrega os itens da van";
|
|
453
|
+
Blockly.Msg["SOUND_HORN_TITLE"] = "Buzinar";
|
|
454
|
+
Blockly.Msg["SOUND_HORN_TOOLTIP"] = "toca a buzina para assustar as vacas";
|
|
455
|
+
|
|
456
|
+
Blockly.Msg["ROAD_EXISTS_FORWARD_TITLE"] = "Existe estrada à frente";
|
|
457
|
+
Blockly.Msg["ROAD_EXISTS_LEFT_TITLE"] = "Existe estrada à esquerda";
|
|
458
|
+
Blockly.Msg["ROAD_EXISTS_RIGHT_TITLE"] = "Existe estrada à direita";
|
|
459
|
+
Blockly.Msg["TRAFFIC_LIGHT_RED_TITLE"] = "Semáforo vermelho";
|
|
460
|
+
Blockly.Msg["TRAFFIC_LIGHT_GREEN_TITLE"] = "Semáforo verde";
|
|
461
|
+
Blockly.Msg["DEAD_END_TITLE"] = "Rua sem saída";
|
|
462
|
+
Blockly.Msg["AT_DESTINATION_TITLE"] = "No destino";
|
|
463
|
+
Blockly.Msg["COW_CROSSING_TITLE"] = "Vacas";
|
|
464
|
+
Blockly.Msg["PIGEON_CROSSING_TITLE"] = "Pombas";
|
|
465
|
+
|
|
466
|
+
Blockly.Msg["CALL_PROC_TITLE"] = "Chamar";
|
|
467
|
+
Blockly.Msg["CALL_PROC_TOOLTIP"] = "chama a função";
|
|
468
|
+
Blockly.Msg["DECLARE_PROC_TITLE"] = "Definir";
|
|
469
|
+
Blockly.Msg["DECLARE_PROC_SUBTITLE"] = "faça";
|
|
470
|
+
Blockly.Msg["DECLARE_PROC_TOOLTIP"] = "declara a função";
|
|
471
|
+
Blockly.Msg["CONTROLS_REPEAT_WHILE_TITLE"] = "Repita enquanto";
|
|
472
|
+
Blockly.Msg["CONTROLS_REPEAT_WHILE_SUBTITLE"] = "faça";
|
|
473
|
+
Blockly.Msg["CONTROLS_REPEAT_WHILE_TOOLTIP"] = "enquanto um valor for verdadeiro, faz algo";
|
|
474
|
+
Blockly.Msg["CONTROLS_REPEAT_UNTIL_TITLE"] = "Repita até";
|
|
475
|
+
Blockly.Msg["CONTROLS_REPEAT_UNTIL_SUBTITLE"] = "faça";
|
|
476
|
+
Blockly.Msg["CONTROLS_REPEAT_UNTIL_TOOLTIP"] = "até que um valor seja verdadeiro, faz algo";
|
|
477
|
+
|
|
478
|
+
Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "uma variável";
|
|
479
|
+
Blockly.Msg["VARIABLES_SET_TITLE"] = "Define";
|
|
480
|
+
Blockly.Msg["VARIABLES_SET_SUBTITLE"] = "igual a";
|
|
481
|
+
Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "atribui valor à variável";
|
|
482
|
+
Blockly.Msg["VARIABLES_NUMERIC_SET_TOOLTIP"] = "atribui um valor numérico à variável";
|
|
483
|
+
Blockly.Msg["VARIABLES_INCREMENT_TITLE"] = "Incrementa";
|
|
484
|
+
Blockly.Msg["VARIABLES_INCREMENT_SUBTITLE"] = "por";
|
|
485
|
+
Blockly.Msg["VARIABLES_INCREMENT_TOOLTIP"] = "incrementa a variável";
|
|
486
|
+
Blockly.Msg["NUMBER_TITLE"] = "Número";
|
|
487
|
+
Blockly.Msg["NUMBER_TOOLTIP"] = "um número";
|