Porównaj commity

...

835 Commity

Autor SHA1 Wiadomość Data
Michael 6135ce8a81 remove double instances of makeablock 2022-07-26 11:38:20 +02:00
Michael 7a0328e82d update createCategories 2022-07-10 18:44:07 +02:00
Michael aeb1b5d473 fix saving project to cloud 2022-07-10 10:47:22 +02:00
Michael a2488194d6 Merge tag 'v7.1.3' of https://github.com/jmoenig/Snap into snap7 2022-07-09 20:00:24 +02:00
Jens Mönig d37d1bceda prepared v7.1.3 2022-02-08 17:24:20 +01:00
Jens Mönig 8d8c685527 moved bitwise operators into standard extensions 2022-02-08 14:50:08 +01:00
Jens Mönig 25e11171a7 Update LIBRARIES 2022-02-08 14:31:25 +01:00
Jens Mönig fbdf720fa9 Update LIBRARIES 2022-02-08 14:27:02 +01:00
Jens Mönig 0064848aac Update HISTORY.md 2022-02-08 14:09:30 +01:00
Jens Mönig b067defd6b
Merge pull request #2982 from bromagosa/bitwise-lib
Bitwise operators library
2022-02-08 14:04:40 +01:00
Jens Mönig 8056e4c5f1 fixed missing blocks in parallelization library 2022-02-08 13:18:40 +01:00
Jens Mönig bae7af9979 fixed a comment in "remove duplicates" in the list utilities library 2022-02-08 13:10:30 +01:00
Jens Mönig 78657c5a47 fixed missing blocks in iteration composition library 2022-02-08 13:02:57 +01:00
Jens Mönig 1712f578fb fixed missing blocks in frequency distribution analysis library 2022-02-08 12:53:39 +01:00
Jens Mönig 0dedbeda8a fixed missing blocks in bar chars library 2022-02-08 12:33:13 +01:00
Bernat Romagosa 3343f07e43 Bitwise operators library 2022-02-08 10:25:52 +01:00
Jens Mönig 903171e9fc Update HISTORY.md 2022-02-08 08:11:31 +01:00
Jens Mönig 07b4c789f0
Merge pull request #2981 from jmoenig/variadic-fix
Update variadic-reporters.xml
2022-02-08 08:08:48 +01:00
Jens Mönig 497d7d0171
Merge pull request #2974 from bromagosa/signada-fix2
Fix cached values being stuck forever in edge case
2022-02-08 08:08:07 +01:00
Brian Harvey 10e90b0653 Update variadic-reporters.xml
Fix missing ALL BUT FIRST OFs
2022-02-07 17:11:22 -08:00
Jens Mönig 366cf06e89 fixed #2980, thanks, @DarDoro ! 2022-02-07 17:19:16 +01:00
Jens Mönig 1b8271bb80 fixed static "sound" type for stage backgrounds and sprite duplicates 2022-02-07 09:11:32 +01:00
Jens Mönig 027e0bf1e1 fixed static "costume" type for stage backgrounds 2022-02-07 09:08:01 +01:00
Jens Mönig b7a0af2f47 fixed JSON encoding for nested lists 2022-02-07 08:49:36 +01:00
Jens Mönig 4c6e1c5de4 new dev version 2022-02-04 12:09:48 +01:00
Bernat Romagosa e37329399a Fix cached values being stuck forever in edge case 2022-02-02 12:59:07 +01:00
Jens Mönig 999ee71fb8 prepared v7.1.2 2022-01-31 16:58:54 +01:00
Jens Mönig 4419194dca friendlier error messages 2022-01-31 16:27:35 +01:00
Jens Mönig 9a87cd5441 prepared v7.1.1 2022-01-30 23:22:42 +01:00
Jens Mönig d493b8cc59 fixed #2972
thanks, @brianharvey !
2022-01-30 23:14:08 +01:00
Jens Mönig c4f723f02e disabled reporter drops into "When I am ..." hat block (again) 2022-01-30 23:03:34 +01:00
Jens Mönig 6308eb953a reverted a pulled Morphic PR because it doesn't work 2022-01-28 16:01:37 +01:00
Jens Mönig 82eca7a93b prepared minor release (7.1) 2022-01-28 15:55:19 +01:00
Jens Mönig 589564a36f support exporting atomic tables from table views everywhere when in edit mode 2022-01-28 15:25:24 +01:00
Jens Mönig 5e8bcc6438 support exporting atomic lists from list watchers everywhere when in edit mode 2022-01-28 15:10:25 +01:00
Jens Mönig 52ee2eb6d5 support exporting numbers and text from speech balloons when in edit mode 2022-01-28 14:35:51 +01:00
Jens Mönig b500fbb557 support exporting text and numbers from result bubbles 2022-01-28 14:01:38 +01:00
Jens Mönig 77160ebee9 support exporting sounds and costumes from variable watchers in edit mode 2022-01-28 12:25:38 +01:00
Jens Mönig e2a0e2d09f support exporting sounds and costumes from speech balloons in edit mode 2022-01-28 11:53:10 +01:00
Jens Mönig a69c1b8692 support exporting sounds from result bubbles 2022-01-28 11:22:13 +01:00
Jens Mönig a45f8ce9e0 support exporting costumes from result bubbles 2022-01-28 09:29:54 +01:00
Jens Mönig a36f1e02c0 support url anchors
thanks, @dragazo
2022-01-28 09:07:18 +01:00
Jens Mönig bd625a5619 support dragging costumes and sounds out from table views 2022-01-28 00:16:02 +01:00
Jens Mönig c7916ff49c Update gui.js 2022-01-27 23:51:28 +01:00
Jens Mönig d7f7efe4b2 support dragging costumes and sounds out from variable watchers 2022-01-27 23:38:10 +01:00
Jens Mönig bc9142c251 support dragging costumes and sounds out from speech balloons 2022-01-27 23:20:49 +01:00
Jens Mönig 890a5e8471 support dragging costumes and sounds out from result bubbles 2022-01-27 18:54:22 +01:00
Jens Mönig 01e1c34e36 updated version history 2022-01-26 17:59:01 +01:00
Jens Mönig 59df227194
Merge pull request #2971 from afarago/hungarian_translation
Hungarian translation updated
2022-01-26 17:50:22 +01:00
Jens Mönig b5e812539a Update HISTORY.md 2022-01-26 17:49:02 +01:00
Jens Mönig 7367f43a86
Merge pull request #2970 from jmoenig/number-costumes
Update textCostumes_module.xml
2022-01-26 17:43:48 +01:00
Jens Mönig 89bf75a446 support for deleting and inserting individual rings inside variadic inputs 2022-01-26 16:45:54 +01:00
Jens Mönig 52aa087f9c German translation update 2022-01-26 16:26:27 +01:00
Jens Mönig 2076288f52 support for deleting and inserting individual script vars & ring params 2022-01-26 16:15:12 +01:00
Jens Mönig 1d3d7bc1cc refactored slot context menus 2022-01-26 11:37:39 +01:00
Jens Mönig bc01598ef8 support deleting and inserting individual variadic slots
under construction
2022-01-25 19:00:17 +01:00
Attila Farago 0b9f6db9cb updated to current snap version, additional clarification on missing 'de' strings 2022-01-25 12:09:04 +01:00
Attila Farago 79fca675a7 Hungarian transation updated 2022-01-25 10:45:48 +01:00
Brian Harvey 9460b1a0fa Update textCostumes_module.xml
Fix bug from forum about numbers as names (yeah I know...), save and restore costume (not number) and pen size, make the name of a button saying foo to "foo button".
2022-01-23 18:28:59 -08:00
Jens Mönig f5c330f404 support dragging blocks out from table views 2022-01-23 11:25:04 +01:00
Jens Mönig 58c1d98a58 updated version log 2022-01-23 11:00:49 +01:00
Jens Mönig b19927868b added Node >> childThatIsA 2022-01-23 10:57:47 +01:00
Jens Mönig 849757db52 Update HISTORY.md 2022-01-22 01:06:00 +01:00
Jens Mönig fd4f396645 only allow dragging block out from balloons and watchers in edit mode
(not in presentation mode)
2022-01-22 01:03:22 +01:00
Jens Mönig 27710d2f79 support dragging blocks out from variable watchers 2022-01-22 00:46:23 +01:00
Jens Mönig 9ef62d98bb Update objects.js 2022-01-22 00:33:47 +01:00
Jens Mönig a52ada6b24 support dragging blocks out from speech balloons 2022-01-22 00:32:54 +01:00
Jens Mönig 94007283fd support dragging blocks out from result bubbles 2022-01-22 00:21:09 +01:00
Jens Mönig 3f972a04bf fixed layout for scrolling custom categories
thanks, Eckart, for the bug report!
2022-01-21 18:14:05 +01:00
Jens Mönig b020e1be89 new dev version 2022-01-21 17:52:05 +01:00
Jens Mönig 39034b4012 prepared weekly patch 2022-01-21 17:29:48 +01:00
Jens Mönig 43318dd5c2 refactored Context >> image 2022-01-21 10:01:23 +01:00
Jens Mönig dfa57d4de7 more localizable error strings for sprites 2022-01-20 16:29:36 +01:00
Jens Mönig 6896b819a5 more error message translations 2022-01-20 16:05:30 +01:00
Jens Mönig 01e9a3581b localized data onversion error messages 2022-01-20 13:21:12 +01:00
Jens Mönig f5279d74ed German translation update (more error strings) 2022-01-20 12:57:26 +01:00
Jens Mönig 712a950990 added more translation strings for errors
and updated the German translation
2022-01-20 12:47:06 +01:00
Jens Mönig 3efed8a962 added more localizable error strings 2022-01-20 11:31:35 +01:00
Jens Mönig 6dcee01002 German translation update (for error messages) 2022-01-20 11:23:33 +01:00
Jens Mönig 88a522eb57 fixed binding an unbound context to a sprite
e.g. when using JOIN blocks with variable references
2022-01-17 19:05:49 +01:00
Jens Mönig ff7b5d1c9c fixed loading the Chinese translation
thanks, @moodykeke!
2022-01-17 17:04:47 +01:00
Jens Mönig 697fa5612b new dev version 2022-01-17 16:53:23 +01:00
jmoenig 5b0eeba4d3 prepared patch release 7.0.5 2022-01-14 15:33:42 +01:00
jmoenig c01a0dbe4e added support for EDC's Early Math Microworld extension 2022-01-13 15:21:27 +01:00
jmoenig 69c6498ac0 updated version log 2022-01-13 08:53:31 +01:00
Jens Mönig 470991dbd0
Merge pull request #2963 from jmoenig/michael/length-of-emoji
use `Array.from` to report string length.
2022-01-13 08:50:21 +01:00
Michael Ball 1aba82fa6a use `Array.from` to report string length.
This is another fix to better support multi-byte emoji
2022-01-12 15:42:06 -05:00
jmoenig 2bea88c7b0 Update HISTORY.md 2022-01-10 10:52:21 +01:00
Jens Mönig 2d0762c68d
Merge pull request #2962 from jmoenig/strings2
Strings2
2022-01-10 10:50:42 +01:00
jmoenig a7ea0bf52c updated version log 2022-01-10 10:46:37 +01:00
Jens Mönig 9c949c1e9b
Merge pull request #2961 from Simon-Mong/patch-38
Update lang-zh_CN.js
2022-01-10 10:41:23 +01:00
jmoenig b61c643499 new "costume with background" reporter in the "text costumes" library 2022-01-10 10:40:11 +01:00
jmoenig 34060593b6 new dev version 2022-01-10 08:16:33 +01:00
Brian Harvey 150cf6df73 Update strings.xml
Bitten by NUMBERS FROM allowing from>to.  :(
2022-01-09 18:26:04 -08:00
Brian Harvey 25ebe874ff Update strings.xml
Bitten by NUMBERS FROM allowing from>to.  :(
2022-01-09 18:17:43 -08:00
Simon-Mong 812bd3687c
Update lang-zh_CN.js
I updated those words and terms that I can understand. I need some time to learn and understand the "primitives' :)
2022-01-09 15:12:58 +08:00
jmoenig 6c7089d2b0 prepared v7.0.4 2022-01-07 18:15:01 +01:00
jmoenig ec13809990 blank-out variable getters in syntax-tree result list 2022-01-07 17:41:09 +01:00
jmoenig 683d64e0ec Update blocks.js 2022-01-07 17:18:39 +01:00
jmoenig 24a22d2dd6 variable getter name support for JOIN 2022-01-07 17:01:19 +01:00
jmoenig 82ef33cf00 added syntax tree representation for variable getters 2022-01-07 14:03:41 +01:00
jmoenig 74affa6824 updated translation version 2022-01-07 10:14:43 +01:00
jmoenig 2fc1a990ea Update HISTORY.md 2022-01-06 12:47:15 +01:00
Jens Mönig 13b299c38f
Merge pull request #2960 from jguille2/cat7libs
Catalan libraries translations
2022-01-06 12:45:47 +01:00
Jens Mönig 70e311f802
Merge branch 'master' into cat7libs 2022-01-06 12:45:26 +01:00
Joan Guillén i Pelegay 8c50942ab0 Updating to current strings library 2022-01-05 20:00:52 +01:00
Joan Guillén i Pelegay 38a5bd9997 Catalan libraries translations 2022-01-05 18:09:51 +01:00
jmoenig 3ba8e6d2c1 Update HISTORY.md 2022-01-05 18:02:21 +01:00
Jens Mönig e03d2f6a1e
Merge pull request #2959 from jmoenig/strings
Update strings.xml
2022-01-05 17:51:10 +01:00
jmoenig abab556227 syntax tree format for translatable input options and constants: "[choice]" 2022-01-05 17:42:38 +01:00
jmoenig 53eb637f47 added syntax tree representation for translated input options and constants 2022-01-05 14:04:44 +01:00
jmoenig 1a5d415da3 new dev version 2022-01-05 14:01:54 +01:00
Brian Harvey 5d339d028c Update strings.xml
substring of: from: to:
didn't handle negative indices as advertised.
2022-01-04 17:55:23 -08:00
jmoenig 14f468ccac improved arity control for JOIN 2022-01-04 17:39:41 +01:00
jmoenig d9ce299bf1 prepared v7.0.3 2022-01-04 14:29:50 +01:00
jmoenig 2705c8ffb1 added arity control for assembling polyadic inputs 2022-01-04 12:23:40 +01:00
jmoenig 7cc6048def fixed #2954 2022-01-04 00:09:39 +01:00
jmoenig 5ca6bb9109 fixed #2950, thanks, Mary! 2022-01-03 18:36:43 +01:00
jmoenig 03be119a8e fixed #2957, thanks, Ken! 2022-01-03 18:29:41 +01:00
jmoenig 52377db7cc Update threads.js 2022-01-03 14:38:09 +01:00
jmoenig f4d8639b8f improved handling of user-defined errors and errors inside custom blocks 2022-01-03 13:13:42 +01:00
jmoenig 9e9041ac5f made "When I receive any messagge" non-thread-safe by default (again)
to enable tail recursive broadcasts
2022-01-03 12:05:24 +01:00
jmoenig e383d8d0cf updated change log 2022-01-03 11:04:20 +01:00
Jens Mönig 859f1efa33
Merge pull request #2955 from edc-it/block-visibility-fix
Fix changeBlockVisibility
2022-01-03 11:01:22 +01:00
jmoenig 83624c2f4e fixed minor issues in api, updated version log 2022-01-03 11:00:10 +01:00
Jens Mönig e078f80a7e
Merge pull request #2951 from edc-it/api-fix
Api fix
2022-01-03 10:32:23 +01:00
jmoenig 99dd84e637 updated version log 2022-01-03 10:31:16 +01:00
Jens Mönig b0c4232714
Merge pull request #2949 from scratchdesignstudio/master
Updated Italian translation
2022-01-03 10:28:25 +01:00
jmoenig df38bc6907 Update HISTORY.md 2022-01-02 18:58:44 +01:00
jmoenig 9160e9d694 fixed storing the stage name(s) 2022-01-02 18:39:18 +01:00
jmoenig aa91a58303 removed distinction between number and string keys in "analyze" 2022-01-01 18:13:57 +01:00
Zak Kolar 5515b1edc3 fix changeBlockVisibility 2021-12-31 21:40:54 -06:00
Zak Kolar c3172f43bd fix accidental space removal 2021-12-28 20:34:15 -06:00
Zak Kolar 3a7a6e8ad9 pass message to upvar 2021-12-28 18:17:05 -06:00
sfederici 5e8a5a2088
Update lang-it.js 2021-12-27 19:22:53 +01:00
sfederici 53851b8ad9
Update lang-it.js 2021-12-27 19:16:14 +01:00
jmoenig 7394c69a27 same blocks with empty variadic inputs compare as equal regardless of their arity 2021-12-22 16:34:09 +01:00
jmoenig eeeb34e88f new dev version 2021-12-22 09:07:16 +01:00
jmoenig d2d85e2e66 v7.0.2 2021-12-21 14:47:52 +01:00
jmoenig 6e88f9e333 improved loading custom block categories 2021-12-20 18:44:30 +01:00
jmoenig c2b4960253 preserve embedded inputs when JOINing a nested expression with an empty list 2021-12-20 12:00:52 +01:00
jmoenig acb21e38a6 shadow (a clone's) costumes when setting its rotation coordinates 2021-12-18 23:40:36 +01:00
jmoenig a8f0358e53 new dev version 2021-12-18 23:36:17 +01:00
jmoenig bce5550dde v7.0.1 2021-12-17 11:27:17 +01:00
jmoenig 009ed204c9 fixed #2945 2021-12-16 16:42:46 +01:00
jmoenig b99d4aaf6f fixed #2941 2021-12-16 11:56:11 +01:00
jmoenig 232c3e1eb4 removed some commented out code 2021-12-16 11:51:14 +01:00
jmoenig 17c3ef22c4 removed an unused case in split() 2021-12-15 08:59:38 +01:00
jmoenig 34aad91482 added support for Uni Oxford (@ToonTalk's) ecraft2learn extension 2021-12-15 08:41:43 +01:00
jmoenig b86ef5350f updated version log 2021-12-15 08:30:23 +01:00
Jens Mönig 4210201e07
Merge pull request #2931 from jmoenig/michael/utf-8
Better Support Multi-Byte Emoji with `split` and `unicode`
2021-12-15 08:24:49 +01:00
jmoenig 1dfee04381 allow parens in project names 2021-12-14 18:09:15 +01:00
jmoenig 853b01c8e9 keep the order of sprites in the corral for newly created projects 2021-12-14 17:22:05 +01:00
jmoenig a119d5199c new dev version 2021-12-14 17:07:04 +01:00
jmoenig bec59208b4 preparing v7 release 2021-12-13 12:56:59 +01:00
jmoenig c834d17bc7 rc7 2021-12-13 10:11:02 +01:00
jmoenig c44539a7a9 tweaked asynchronous costume loading/rendering issue 2021-12-13 09:54:35 +01:00
jmoenig 2707410616 fixed #2932 2021-12-12 22:44:27 +01:00
Michael Ball b9c7198a77 Unicode: Properly handle multi-byte emoji with hyperblocks 2021-12-11 14:37:33 -08:00
Michael Ball 5af67eae8b Split: Handle UTF8+ safe way for empty delimeters 2021-12-11 14:27:56 -08:00
Michael Ball 9b555f578b Split: Properly turn JS array into list 2021-12-11 14:19:52 -08:00
Michael Ball 665c2d6e3b CSV: `Array.from` which a more Unicode friendly form of `split()`. 2021-12-11 14:11:22 -08:00
Michael Ball c67df0ad87 Use `Array.from` which a more Unicode friendly form of `split()`. 2021-12-11 13:34:37 -08:00
jmoenig aea4daf03c remove all clones when the green flag is sent to a scene 2021-12-11 07:48:55 +01:00
jmoenig 206a3b161b rc5 2021-12-10 21:36:05 +01:00
jmoenig 5b6a8bc7bb rc4 2021-12-10 16:47:19 +01:00
jmoenig 652f88c249 fixed categories cache invalidation for duplicated sprites 2021-12-10 15:00:51 +01:00
jmoenig 0b51bfac1a updated version history 2021-12-10 14:30:29 +01:00
Jens Mönig 93b1b7354f
Merge pull request #2929 from jguille2/librariesNameTranslation
Fixing translation issue of library names
2021-12-10 14:06:23 +01:00
jmoenig 6089c68844 updated version history 2021-12-10 13:49:44 +01:00
Jens Mönig e5a5494322
Merge pull request #2927 from jguille2/catalan7
Updating Catalan translation for v7
2021-12-10 13:45:28 +01:00
Joan Guillén i Pelegay 130d1a7582 Fixing translation issue of library names 2021-12-10 11:58:28 +01:00
Joan Guillén i Pelegay 1de047c8c1 fixing 'global?' translations 2021-12-10 10:10:57 +01:00
Joan Guillén i Pelegay 130a74fd24 Updating Catalan translation for v7 2021-12-10 02:31:32 +01:00
jmoenig 57fec07ee3 rc3 2021-12-09 16:51:45 +01:00
jmoenig f0ee59815f worked around an asynchronous rendering issue 2021-12-09 16:50:32 +01:00
jmoenig ecbefe7e42 removed some "experimental" markers 2021-12-09 13:27:01 +01:00
jmoenig 931b937558 select motion category when switching to a scene that doesn't have the current custom category 2021-12-09 13:15:05 +01:00
jmoenig 9932f6ba2f never push untested last minute changes that might break everything 2021-12-09 12:43:19 +01:00
jmoenig 26b2f16e21 v7 rc1 2021-12-08 17:59:04 +01:00
jmoenig d577d677d5 Update blocks.js 2021-12-08 17:18:24 +01:00
jmoenig 10a0e62f23 more syntax tree tweaks 2021-12-08 14:27:33 +01:00
jmoenig 4c417198b7 syntax tree tweaks 2021-12-08 13:52:06 +01:00
jmoenig cd943988e7 Update blocks.js 2021-12-08 12:07:06 +01:00
jmoenig 07c8f5d874 fixed upvar restoration for syntax trees 2021-12-08 11:51:22 +01:00
jmoenig 7da004f63e refactored syntax trees 2021-12-08 09:41:42 +01:00
jmoenig 19e985bc24 new dev version 2021-12-07 14:44:46 +01:00
jmoenig d9d351687d load category-less custom blocks into "other" 2021-12-07 14:02:24 +01:00
jmoenig d9c78e691e backwards-compatibility fix for key-event hat blocks 2021-12-07 09:47:17 +01:00
jmoenig 9f0f28fff7 Update threads.js 2021-12-06 14:09:25 +01:00
jmoenig d7b5f0160e Update threads.js 2021-12-06 12:11:03 +01:00
jmoenig 54d87b5225 German translation update 2021-12-06 11:53:46 +01:00
jmoenig 91b031ec05 refactored block assembly access, experimental 2021-12-06 11:25:42 +01:00
jmoenig cb1246a4c4 refactored block assembly, experimental 2021-12-06 09:29:57 +01:00
jmoenig a5b8d10bfe Update blocks.js 2021-12-05 23:35:44 +01:00
jmoenig 7ec0f15ea8 Update blocks.js 2021-12-05 15:55:17 +01:00
jmoenig 7f313ed540 introspection & syntax analysis, experimental 2021-12-05 13:30:46 +01:00
jmoenig 1cf82c094b Update threads.js 2021-12-03 23:27:07 +01:00
jmoenig 75f43857f6 tweaked context assembly, experimental 2021-12-03 19:24:39 +01:00
jmoenig 8a6855ce6f Update blocks.js 2021-12-03 18:37:17 +01:00
jmoenig 485636b465 more experimental block assembly tweaks 2021-12-03 18:07:32 +01:00
jmoenig 769aa02299 Update blocks.js 2021-12-03 14:22:51 +01:00
jmoenig 794ff6abeb changed the visualization for an empty context to reporter-ring 2021-12-03 13:08:16 +01:00
jmoenig 604eb74352 block-assembly support for multi-args, experimental 2021-12-03 12:00:16 +01:00
jmoenig 78b6df548d tweaked block assembly support, experimental 2021-12-02 23:05:21 +01:00
jmoenig 0e04a9ca9a syntactical tweaks to block-assembly support 2021-12-02 12:48:25 +01:00
jmoenig b5933d8050 tweaked snapEquals() 2021-12-02 10:46:56 +01:00
jmoenig 4f91a38bdc block-assembly support refactorings, experimental 2021-12-02 10:28:59 +01:00
jmoenig 608027c957 equality testing for scripts, experimental 2021-12-01 19:51:01 +01:00
jmoenig d095d9d961 block-assembly support refactorings, experimental 2021-12-01 17:42:43 +01:00
jmoenig e6e54c8964 Update sw.js 2021-11-30 17:48:47 +01:00
jmoenig ebf4368add removed some markers 2021-11-30 17:47:08 +01:00
jmoenig de5222aeb2 fixed #2920 2021-11-30 17:45:36 +01:00
jmoenig 2b11c7430e block-assembly support, experimental 2021-11-30 14:15:31 +01:00
jmoenig f49c3253b6 renamed "r-g-b-a" option to "RGBA" and "r-g-b(-a)" to "RGB(A)" 2021-11-29 08:28:59 +01:00
jmoenig 4a68401920 fixed a glitch in "remove duplicates" in the "list utilities" library 2021-11-28 08:26:03 +01:00
jmoenig 9b644ef635 made "remove duplicates" reporter in the "list utilities" library (a lot) faster 2021-11-27 19:22:21 +01:00
jmoenig 299405d3bd tweaked SET / CHANGE PEN dropdown option to "r-g-b(-a)" 2021-11-27 12:56:33 +01:00
jmoenig 36a97d0daa new dev version number 2021-11-26 16:29:13 +01:00
jmoenig 361cbe6b5e added "r-g-b-a" option to dropdown menu of SET / CHANGE PEN command and PEN reporter 2021-11-26 16:25:36 +01:00
jmoenig eb7143045c added signada extension files to the pwa cache 2021-11-26 08:37:37 +01:00
jmoenig 0cbb7c0544 Update OFFLINE.md 2021-11-25 18:42:49 +01:00
jmoenig 9aadbbc066 new dev version number 2021-11-25 18:05:39 +01:00
jmoenig ab92733089 fixed a FILL issue when the pen color has been set to an invalid color via a bad library 2021-11-25 17:07:55 +01:00
jmoenig eb2fa595b1 German translation update for project menu entries 2021-11-25 16:46:47 +01:00
jmoenig 21ada09597 rearranged and amended the project menu 2021-11-25 16:33:10 +01:00
jmoenig aa8652babb updated dev version 2021-11-24 12:08:57 +01:00
jmoenig 11573cb86b added indented sub-preferences to the settings menu 2021-11-24 12:06:47 +01:00
jmoenig a74c7a3bd6 German translation update for "Show buttons" setting 2021-11-24 11:52:22 +01:00
jmoenig 3175e13584 made "show buttons" setting for unified palette persistent in the XML 2021-11-24 11:39:13 +01:00
jmoenig 54d22dd118 added scene-setting to hide/show buttons in the unified palette 2021-11-24 11:17:16 +01:00
jmoenig 8014a3acf4 fixed #2918 2021-11-24 08:36:02 +01:00
jmoenig 9c17c182d1 updated dev version date 2021-11-23 12:47:22 +01:00
jmoenig 9025d2bc77 refresh category buttons when turning built-in extensions on and off 2021-11-23 12:41:57 +01:00
jmoenig ef070b37e6 refresh category buttons when switching to dev mode and back 2021-11-23 12:31:07 +01:00
jmoenig 6eeed769a5 refresh category buttons when hiding / showing blocks 2021-11-23 12:24:37 +01:00
jmoenig 74759fa873 updated version 2021-11-22 14:18:54 +01:00
jmoenig f3c0b0f657 updated extensions documentation 2021-11-22 14:17:21 +01:00
Jens Mönig 289b4f320a
Merge pull request #2917 from jmoenig/crayons
Add crayons library
2021-11-22 14:01:19 +01:00
Jens Mönig a5107b2531
Merge pull request #2916 from jmoenig/list-utils
Update list-utilities.xml
2021-11-22 14:00:10 +01:00
Jens Mönig 858819f79f
Merge pull request #2913 from joecooldoo/master
Help page for APPEND, thanks!
2021-11-22 13:54:55 +01:00
brianharvey 5fd63ea8b4 Update LIBRARIES
Move serial ports down to hardware section.
2021-11-20 14:00:17 -08:00
brianharvey a5f06b79f3 Add crayons library
Just crayons, not the rest of the Colors library.
2021-11-20 01:55:04 -08:00
brianharvey ce0b34a2cd Update list-utilities.xml
fix SENTENCE not to compile its MAP call.  Also optimize blocks that have been overtaken by primitive versions.
2021-11-19 22:19:58 -08:00
jmoenig 3b56f75efa visually indicate empty categories by half-toning their buttons 2021-11-19 18:59:35 +01:00
joecooldoo a339233d97
Final reportConcatenatedLists.png
(Hopefully)
2021-11-18 15:20:45 -07:00
joecooldoo b50a31441e
Delete reportConcatenatedLists.png 2021-11-18 15:20:25 -07:00
jmoenig 53fc775950 only pause generic hat blocks when loading a new project
not when switching to a new scene
2021-11-18 20:54:30 +01:00
jmoenig 8618fd644e refresh stop button when switching scenes 2021-11-17 16:52:19 +01:00
jmoenig aa31e2ceb4 updated api documentation 2021-11-17 16:06:02 +01:00
jmoenig 84fbdec280 changed api "processes" method to "isRunning" 2021-11-17 15:58:45 +01:00
jmoenig 435966266a Update sw.js 2021-11-17 15:49:50 +01:00
jmoenig 655e18628d set the green-flag button's background color to "active" while a thread is running 2021-11-17 15:49:31 +01:00
joecooldoo 89a269ccc4
Add files via upload 2021-11-16 08:52:54 -07:00
joecooldoo f81eb4cfca
Delete reportConcatenatedLists.png 2021-11-16 08:51:09 -07:00
jmoenig 74c5acaa52 updated api documentation 2021-11-16 16:43:46 +01:00
jmoenig fc50898f78 added process control to API 2021-11-16 15:12:30 +01:00
jmoenig 72c3e87ad1 added API: "switchTo" 2021-11-16 14:40:25 +01:00
jmoenig 50e0242181 added API: "getCurrentScene" 2021-11-16 14:19:26 +01:00
jmoenig bcee0234bc Update api.js 2021-11-16 14:16:29 +01:00
jmoenig a612a21606 added to API: "getScenes" 2021-11-16 14:15:53 +01:00
Jens Mönig aa53bb2899
Merge pull request #2914 from bromagosa/signada-fix
fixed signada extension: reporters inside a forever were always caching
2021-11-16 13:58:45 +01:00
Bernat Romagosa 3316c62191 fixed signada extension: reporters inside a forever were always caching 2021-11-16 13:06:53 +01:00
jmoenig b8f79adde4 Update api.js 2021-11-16 12:42:18 +01:00
jmoenig 0705d9b146 Update api.js 2021-11-16 12:40:36 +01:00
jmoenig 88f648a6c3 removed incomplete api documentation from the source code 2021-11-16 08:41:32 +01:00
jmoenig b60127ccf6 updated serializer app tag to v7 2021-11-16 08:19:41 +01:00
joecooldoo 9922d9c774
Add files via upload 2021-11-15 11:10:02 -07:00
joecooldoo cea2950fcb
Delete reportConcatenatedLists.png 2021-11-15 11:09:47 -07:00
jmoenig 0073666bd4 revert empty category indication for single palette mode
need to find a better mechanism...
2021-11-15 18:59:24 +01:00
jmoenig af68f7a78e indicate empty categories in single-palette mode 2021-11-15 18:37:54 +01:00
joecooldoo 3fc9af312c
Added help page for APPEND 2021-11-15 10:34:14 -07:00
jmoenig 408070b360 fixed a typo 2021-11-15 14:27:41 +01:00
jmoenig c653d12745 updated version numbers 2021-11-15 13:59:07 +01:00
jmoenig f4af7563a3 removed hidden "cache inputs" setting (only used for debugging the evaluator) 2021-11-15 13:47:05 +01:00
jmoenig 931262ee3c fixed a serialization glitch 2021-11-15 13:15:24 +01:00
jmoenig 306ebb25a0 removed old hidden "project urls" setting 2021-11-15 13:04:01 +01:00
jmoenig 49c955ce84 removed old hidden "virtual keyboard" setting 2021-11-15 12:50:31 +01:00
jmoenig 75361cf7ce removed experimental hidden "add scenes" option from the settings menus 2021-11-15 12:43:37 +01:00
jmoenig 295e196c35 removed old hidden "prefer smooth animations" setting
(no longer used, old projects will continue to work just fine)
2021-11-15 11:53:19 +01:00
jmoenig b6f7f85ce1 made "Hyper blocks support" setting hidden in the gears menu 2021-11-15 11:28:52 +01:00
jmoenig 91310c53ab German translation update 2021-11-15 11:21:41 +01:00
jmoenig ad33a1dac0 Update HISTORY.md 2021-11-14 17:01:34 +01:00
Jens Mönig 11a05969a6
Merge pull request #2906 from jmoenig/make-speech-bubbles-persistent
Default to making speech bubbles persisnt until clicked
2021-11-14 16:59:05 +01:00
jmoenig 81b09d8990 Update gui.js 2021-11-14 16:57:13 +01:00
jmoenig a7d01ef135 Update sw.js 2021-11-14 16:49:44 +01:00
jmoenig 6eaf5d883f updated German translation for "lightness" 2021-11-14 16:48:16 +01:00
jmoenig 2284252d4c refresh IDE when changing the pen color model 2021-11-14 16:39:17 +01:00
jmoenig 825de3a30b contextualize translations 2021-11-14 16:18:33 +01:00
Brian Harvey fcef6db323
Merge pull request #2911 from joecooldoo/master
Adding help image for INDEX OF E]
2021-11-12 17:11:58 -08:00
joecooldoo 17cfc37bd5
Add files via upload 2021-11-12 17:10:44 -07:00
joecooldoo fdf8895d1a
Delete reportListIndex.png 2021-11-12 17:10:30 -07:00
joecooldoo 4a9c6c8c80
Added help image for INDEX OF E] 2021-11-12 16:51:11 -07:00
jmoenig b746dea75d made HSL preference setting hidden behind shift-click 2021-11-12 15:10:05 +01:00
jmoenig 0ea2a5cd9b fixed a serialization conflict for global variables referencing the stage 2021-11-12 14:47:37 +01:00
jmoenig 482f592dc1 reverted to HSV as default pen color model 2021-11-12 12:31:19 +01:00
jmoenig b03157881c fixed importing custom categories from libraries, thanks, Eckart, for reporting this! 2021-11-12 08:12:34 +01:00
jmoenig 62e0bc4545 made "pen color model" and "disable click-to-run" settings persistent per scene 2021-11-11 19:10:21 +01:00
jmoenig 6513c9c6e8 experimental "disalbe click-to-run" preference 2021-11-11 15:49:35 +01:00
jmoenig 5ebc02f3ec Brazilian Portuguese translation update, thank you, Cassiano D'Andrea 2021-11-11 13:51:53 +01:00
jmoenig d588283f15 Update lang-zh_CN.js 2021-11-11 08:46:41 +01:00
jmoenig 512e14213c Update lang-pl.js 2021-11-11 08:44:02 +01:00
jmoenig 7400ead6ce Update lang-hi.js 2021-11-11 08:43:08 +01:00
jmoenig 9ed25adfb5 Update lang-ca.js 2021-11-11 08:42:29 +01:00
jmoenig 043659348b Update lang-tr.js 2021-11-11 08:41:57 +01:00
jmoenig 3f56f88e18 Update lang-nl.js 2021-11-11 08:41:05 +01:00
jmoenig e9cd4f5030 Update lang-ru.js 2021-11-11 08:40:28 +01:00
jmoenig 1f5c454eef Update lang-es.js 2021-11-11 08:39:48 +01:00
jmoenig a32cac3f69 Update lang-el.js 2021-11-11 08:38:03 +01:00
jmoenig 6bef85fe0d Update lang-it.js 2021-11-11 08:37:57 +01:00
jmoenig 6a1f7a96c3 Update lang-fr.js 2021-11-11 08:36:47 +01:00
jmoenig b14f6c8efb Update lang-no.js 2021-11-11 08:36:03 +01:00
jmoenig 742138d997 Update lang-pt.js 2021-11-11 08:34:46 +01:00
jmoenig a65630774d Update lang-ua.js 2021-11-11 08:33:28 +01:00
jmoenig a6e9d7ac3b Update lang-sk.js 2021-11-11 08:31:44 +01:00
jmoenig 079bac810a Update lang-he.js 2021-11-11 08:30:24 +01:00
jmoenig b3dbfb066a Update lang-gl.js 2021-11-11 08:29:32 +01:00
jmoenig 91474585f7 German translation update, changed %hsva -> %clrdim 2021-11-11 08:22:15 +01:00
jmoenig f4fea22f27 updated pwa version 2021-11-10 17:10:19 +01:00
jmoenig 471f9fec00 use the selected pen color model (hsl or hsv) for graphic effects 2021-11-10 17:05:16 +01:00
jmoenig baee1e1561 refactored graphics color effect to reuse Morphic's conversion methods 2021-11-10 16:53:29 +01:00
jmoenig 23fd4a8d11 changed the scale of the graphics color effect from 0-200 to 0-100 2021-11-10 15:22:01 +01:00
jmoenig e9ef288de9 fixed color sensing for different pen color models 2021-11-10 14:40:09 +01:00
jmoenig 4021f5899a new (hidden) pen-color-model preference setting (per session) 2021-11-10 14:28:12 +01:00
jmoenig 4022ede091 Update objects.js 2021-11-10 12:49:16 +01:00
jmoenig b82e380bf3 new "penColorModel" setting, can e 'hsv' or 'hsl' 2021-11-10 12:47:06 +01:00
jmoenig 56dc157084 Update byob.js 2021-11-09 19:00:56 +01:00
jmoenig d6842ba7d3 Update byob.js 2021-11-09 18:57:21 +01:00
jmoenig 28afc4d56c allow block-instances to be dragged off from templates in the "unused blocks" dialog 2021-11-09 18:03:02 +01:00
jmoenig 49185ec27f tweaked toggles with draggable buttons 2021-11-09 17:55:25 +01:00
jmoenig a85ea32b25 allow block-instances to be dragged off from templates in the "export blocks" dialog 2021-11-09 17:39:32 +01:00
jmoenig 3d13ee0668 changed edit project notes to always edit project motes instead of scene notes 2021-11-09 17:04:17 +01:00
jmoenig 2b403974e1 fixed keyboard entry for script variable getters 2021-11-09 16:59:34 +01:00
jmoenig 54d78c0415 adjusted random color for new sprites to HSL model 2021-11-09 16:38:14 +01:00
jmoenig c1ea105c47 changed display of project name in the IDE to PROJECT (SCENE) 2021-11-09 13:38:05 +01:00
jmoenig 24e0bd8b98 refactored block-migration mechanism 2021-11-09 09:41:20 +01:00
jmoenig 24af2342aa fixed upvars in hat block prims when the user clicks on them to run them 2021-11-08 18:19:02 +01:00
jmoenig 80c0721cd8 updated release notes 2021-11-08 12:39:46 +01:00
jmoenig 59d2faec7b switched pen color dimensions from HSV to HSL 2021-11-08 12:35:57 +01:00
jmoenig fd258965f0 renamed pen accessor methods 2021-11-08 12:17:18 +01:00
jmoenig 95ceafdd28 again renamed internal color dimensions cache 2021-11-08 11:12:03 +01:00
jmoenig 474ba9499b renamed internal pen color channel cache 2021-11-08 09:01:42 +01:00
jmoenig 611518be00 renamed some internal color methods 2021-11-08 08:46:18 +01:00
Jens Mönig baa8bd4bc2
Merge pull request #2905 from WarpedWartWars/master
Rename `reportListLength` to `reportListAttribute`
2021-11-07 17:54:02 +01:00
jmoenig 89f2633006 Update HISTORY.md 2021-11-07 17:36:47 +01:00
jmoenig 93e2399abb revent switching to another sprite if a "hide blocks" dialog is open 2021-11-07 17:35:32 +01:00
jmoenig 5a35b31bb0 allow block-instances to be dragged off from templates in the "hide blocks" dialog 2021-11-07 17:25:36 +01:00
jmoenig 98f4c5c50f fixed some minor variable-renaming issues 2021-11-06 21:47:50 +01:00
jmoenig ff5a930c86 updated version history 2021-11-03 15:33:21 +01:00
jmoenig 2993c2ed81 allow selecting the fill color in the vector editor via touch-hold gesture on touch devices 2021-11-03 11:59:16 +01:00
Michael Ball b3ec2b8fa6 Default to making speech bubbles persisnt until clicked 2021-11-02 16:54:27 -07:00
WarpedWartWars ad6629076a
Add files via upload 2021-10-31 18:24:08 -07:00
WarpedWartWars 393cbf48e6
Delete reportListAttribute.png 2021-10-31 18:23:52 -07:00
WarpedWartWars 604c480c68
Delete reportListLength.png 2021-10-31 18:22:21 -07:00
WarpedWartWars 87fb61f8d3
Renamed reportListLength to reportListAttribute 2021-10-31 18:21:40 -07:00
jmoenig c852c9849f fixed scanning for senders and receivers of messages for new BROADCAST scheme 2021-10-29 23:55:20 +02:00
jmoenig e7801f1ee2 removed obsolete dev comments 2021-10-29 08:46:46 +02:00
jmoenig f6b0eb5c06 updated version history 2021-10-29 08:11:14 +02:00
Jens Mönig 000aef871b
Merge pull request #2904 from DarDoro/master
floodFill buffer overflow prevention, issue #2903
2021-10-29 08:07:04 +02:00
Dariusz Dorożalski 131da3ce65
floodFill buffer overflow prevention
floodFill buffer overflow prevention for sprites at the bottom edge
2021-10-29 01:57:59 +02:00
jmoenig ce5bc9aff4 Update lang-de.js 2021-10-28 17:31:50 +02:00
jmoenig af1e44810a German translation update 2021-10-28 15:40:28 +02:00
jmoenig 539de208d3 migrated Finnish and Simplified Chinese translations to new BROADCAST block specs 2021-10-28 14:56:56 +02:00
jmoenig 06f7619b63 migrated Brazilian Portuguese, Malayam, Korean and Kannada translations to new BROADCAST block specs 2021-10-28 14:29:13 +02:00
jmoenig 0ac918c5de migrated Catalan, Hindi, Polish and Telagu translations to new BROADCAST block specs 2021-10-28 14:22:13 +02:00
jmoenig 7d64d81595 migrated Russian, Dutch, Tamil and Turkish translations to new BROADCAST block specs 2021-10-28 14:12:30 +02:00
jmoenig 43b9cda390 migrated French, Italian, Greek and Spanish translations to new BROADCAST block specs 2021-10-28 14:03:22 +02:00
jmoenig 1e8d09f6f5 migrated Japanese, Bangla, Portuguese and Norwegian translations to new BROADCAST block specs 2021-10-28 13:50:45 +02:00
jmoenig 31619377f2 migrated Hebrew, Japanese Hiragana, Slovakian and Ukrainian translations to new BROADCAST block specs 2021-10-28 13:40:06 +02:00
jmoenig 20b69dbd43 migrated Bulgarian, Traditional Chinese, Indonesian and Galician translations to new BROADCAST block specs 2021-10-28 13:22:01 +02:00
jmoenig 6f1386e04f migrated Danish, Czech, Valencian Catalan and Arabic translations to new BROADCAST block specs 2021-10-28 13:13:57 +02:00
jmoenig 4bb2a9b721 migrated Estonian, Hungarian, Croatian and Esperanto translations to new BROADCAST block specs 2021-10-28 12:36:42 +02:00
jmoenig 2836a83f46 migrated Slovenian, Romanian and Interlingua translations to new BROADCAST block specs 2021-10-28 12:21:25 +02:00
jmoenig ecdd710eaf tweaked default values for slot specs 2021-10-28 11:29:55 +02:00
jmoenig de1483fb55 introduced default values for expandable slot specs 2021-10-28 11:16:10 +02:00
jmoenig 23cf6ca244 updated German translation 2021-10-28 10:55:12 +02:00
jmoenig 58b529df54 migrated Basque and Swedish translations to new BROADCAST block specs 2021-10-28 10:49:32 +02:00
jmoenig e1cfd26176 tweaked icon sizes 2021-10-27 15:09:02 +02:00
jmoenig 5ee9efcf65 Update snap-icon-144.png 2021-10-27 14:46:00 +02:00
jmoenig f4c0610dd8 Update sw.js 2021-10-27 14:30:14 +02:00
jmoenig 780a3eb1d5 changed PWA icons, another attempt 2021-10-27 14:24:02 +02:00
jmoenig 3552252e9e reverting to experimental PWA icons 2021-10-27 13:43:57 +02:00
jmoenig 3c4f89ba19 more PWA tweaks 2021-10-27 12:38:44 +02:00
jmoenig 662de8230f tweake PWA 2021-10-27 12:13:03 +02:00
jmoenig 6f7c25440e changed PWA icon to Alonzo 2021-10-27 11:44:34 +02:00
jmoenig a278d8230c pwa versioning & cache-busting mechanism 2021-10-27 11:04:50 +02:00
jmoenig 232007662f pwa versioning experiment 4 2021-10-27 10:59:55 +02:00
jmoenig 17d31ef187 pwa versioning experiment 3 2021-10-27 10:57:40 +02:00
jmoenig 5c0a042b2c pwa versioning experiment 2 2021-10-27 10:23:10 +02:00
jmoenig 8b90c75630 pwa versioning experiment 1 2021-10-27 10:20:18 +02:00
jmoenig b15f663a38 updated service worker to cache bbtSnapExtension.js 2021-10-27 09:19:39 +02:00
jmoenig 5f75fadf53 included bbt extensions 2021-10-27 09:13:21 +02:00
jmoenig 03c71da618 r-g-b editor for custom category colors 2021-10-26 18:49:43 +02:00
jmoenig e4d0dee7b8 German translation update for "extension blocks" setting 2021-10-26 15:46:27 +02:00
jmoenig 13e13a0b05 new "showingExtensions" session setting for showing extension prims in the palette 2021-10-26 15:34:30 +02:00
jmoenig 3227d6aea9 don't show codification and js-func blocks in search results unless enabled 2021-10-26 15:00:49 +02:00
jmoenig 705e061f0d fixed #2902 2021-10-25 23:10:05 +02:00
jmoenig e73c5d0802 bignum library: fixed IS IDENTICAL 2021-10-22 15:50:54 +02:00
jmoenig f926c8f5a3 deep copy atomic lists sent from one scene to another 2021-10-22 15:48:24 +02:00
jmoenig f1a5031b7b made SEND blocks expandable for receivers and renamed them back to BROADCAST 2021-10-22 15:39:25 +02:00
jmoenig c9b3d5f493 tweaked blocks layout for hidden expansion slots 2021-10-22 13:01:45 +02:00
jmoenig a6e55169af only show "key" upvar in the "When ... is pressed" hat if "any key" is selected 2021-10-22 12:53:54 +02:00
jmoenig 600e6c378b Only show the "message" upvar in the "When I receive" hat if "any message" is selected 2021-10-22 12:26:31 +02:00
Jens Mönig 85a7e2fc50
Merge pull request #2900 from bromagosa/signada-update
José García's fixes for Signada library
2021-10-21 15:55:45 +02:00
jmoenig d263a9aa15 tweaked error message for sending data to another scene 2021-10-21 15:54:39 +02:00
jmoenig 9464697025 tweaked German translation for "all" 2021-10-21 15:16:19 +02:00
jmoenig 17d38e19a1 replaced BROADCAST block variants with SEND block variants 2021-10-21 15:12:42 +02:00
Bernat Romagosa 4ed7f84efc José García's fixes for Signada library 2021-10-21 14:57:10 +02:00
jmoenig 4c1f8725e4 added "all" option to the receiver-dropdown of the SEND block 2021-10-21 14:10:59 +02:00
jmoenig d420fc3f8e took out broadcasting a 2-item list to mean a message directed to a particular sprite 2021-10-21 13:01:59 +02:00
jmoenig 89a4fe410a enabled sending atomic lists to other scenes 2021-10-21 12:04:58 +02:00
Jens Mönig 69fbe439d3
Merge pull request #2899 from bromagosa/signada-update
updated Signada extension
2021-10-21 11:27:14 +02:00
Bernat Romagosa 0f858b3a4e updated Signada extension 2021-10-21 11:10:16 +02:00
jmoenig 8f3e78d232 make "when I receive 'any message'" hat scripts threadsafe (uninterruptable by other messages) 2021-10-21 10:07:15 +02:00
jmoenig ed71022b95 removed options "1" and "last" from "switch to scene" dropdown 2021-10-20 17:33:15 +02:00
jmoenig f3cb83b8dc updated German translation (removed "when switched to this scene") 2021-10-20 16:56:31 +02:00
jmoenig bcc819e918 rearranged "switch to scene" and "pause all" blocks in the palette 2021-10-20 16:53:33 +02:00
jmoenig bd58ec1f40 removed "When switched to this scene hat block" 2021-10-20 16:50:14 +02:00
jmoenig 52473cfb4e enable sending green-flag events when switching scenes 2021-10-20 13:21:49 +02:00
jmoenig 25d7d97f05 enable sending green-flag events to specific sprites 2021-10-19 18:11:00 +02:00
jmoenig 487a559759 added "green flag" symbol to message drop-down 2021-10-14 19:11:35 +02:00
jmoenig fc586e7af4 sort custom category menu ("delete a category") alphabetically 2021-10-14 13:14:41 +02:00
jmoenig b084915590 fixed "show categories" setting display 2021-10-14 13:06:45 +02:00
jmoenig 1d981576ac scroll selected custom category button into view 2021-10-14 12:56:43 +02:00
jmoenig 99e4412f4b scroll custom category buttons if there are more than 6 2021-10-14 12:39:43 +02:00
jmoenig 71a50b19eb tweaked customization recording 2021-10-12 17:12:29 +02:00
jmoenig aa31916165 tweaked unified palette formatting for hidden categories 2021-10-12 17:01:25 +02:00
jmoenig e6aabeb1e8 Parsons Problems Palette generator 2021-10-12 14:35:19 +02:00
jmoenig f253063997 made "hide/show categories in unified palette" setting persistent 2021-10-12 11:14:49 +02:00
jmoenig b854c65ebd added scene-setting to hide/show category names in the unified palette 2021-10-12 11:04:27 +02:00
jmoenig 67fe3a767d store single palette setting per project (for making extensions) 2021-10-12 07:48:02 +02:00
jmoenig f802bf1e99 sort order of blocks in custom categories alphabetically in the unified palette 2021-10-11 22:27:24 +02:00
jmoenig 4f3cd192cc tweaked hiding / showing inherited local blocks 2021-10-08 14:02:47 +02:00
jmoenig 5eaef5b65d prevent deprecated "message" reporter from showing up in search results 2021-10-08 13:38:03 +02:00
jmoenig 98d84e9dbf filter hidden blocks out from search / keyboard input results 2021-10-08 13:26:27 +02:00
jmoenig f94360f805 tweaked variable block visibility 2021-10-08 09:28:47 +02:00
jmoenig 9acc2010b4 optimized bulk hiding & showing palette blocks 2021-10-07 16:48:46 +02:00
jmoenig 98703c5bb8 updated v7 release notes 2021-10-07 15:20:59 +02:00
jmoenig f7012ed3c6 removed "hide" option from context menu of primitive blocks in the palette 2021-10-07 15:17:39 +02:00
jmoenig aa42b393ce simplified palette context menu 2021-10-07 15:09:36 +02:00
jmoenig 905cd6baa9 new BlockVisibilityDialogMorph for bulk-selecting blocks to hide / show in the palette 2021-10-07 14:27:29 +02:00
jmoenig 4e80d7cb0c added method to check whether an arbitrary block is hidden in the palette 2021-10-06 19:24:08 +02:00
jmoenig 13590e4b91 refactored block hiding methods 2021-10-06 18:34:00 +02:00
jmoenig 61c9b2aa94 added utilities to enumerate all palette blocks for hiding & showing 2021-10-06 18:10:40 +02:00
jmoenig 485e75b214 keep hidden variables out of the palette and drop-down menus 2021-10-06 13:03:50 +02:00
jmoenig 8da660c117 new extension primitives for hiding and showing arbitrary blocks in the palette 2021-10-06 10:39:52 +02:00
jmoenig 12ff563071 programmatically hide individual variables in palette 2021-10-06 10:18:07 +02:00
jmoenig 28c66fb411 added infrastructure for hiding individual variables in palette 2021-10-05 18:15:42 +02:00
jmoenig cc5412a89e extended "hide/show var" primitive to also hide/show custom blocks in the palette 2021-10-04 16:47:19 +02:00
jmoenig 264b146be1 updated German translation for "enter" key 2021-10-04 10:21:36 +02:00
jmoenig 936957a1cd added "enter" key to key-pressed dropdown 2021-10-04 10:17:28 +02:00
Jens Mönig 2f29d7fc22
Merge pull request #2894 from Simon-Mong/patch-36
fix a wrong Chinese character.
2021-10-04 09:44:57 +02:00
jmoenig d0e7efa5af updated release notes 2021-10-04 09:43:45 +02:00
jmoenig 50abd7a449 fixed Finnish block specs for %interaction 2021-10-04 09:41:48 +02:00
jmoenig 13169c12a1 fixed Kannada block specs for %interaction 2021-10-04 09:39:20 +02:00
jmoenig b21976d720 fixed Korean block specs for %interaction 2021-10-04 09:38:21 +02:00
jmoenig 4dcf0193b1 fixed Malayalam block specs for %interaction 2021-10-04 09:36:53 +02:00
jmoenig ee4f2aacb5 fixed Brazilian-Portuguese block specs for %interaction 2021-10-04 09:32:59 +02:00
Simon-Mong cc5d7d8b40
Update lang-zh_CN.js
My daughter found a wrong Chinese character.
2021-10-04 15:32:34 +08:00
jmoenig 924ae4a075 fixed Telagu block specs for %interaction 2021-10-04 09:25:46 +02:00
jmoenig 59da335180 migrated and fixed Simplified Chinese block specs 2021-10-04 09:22:31 +02:00
jmoenig e198e4a214 migrated Polish block specs 2021-10-04 09:13:27 +02:00
jmoenig 53287b5591 migrated Hindi block specs 2021-10-04 09:11:38 +02:00
jmoenig a3d1075f42 migrated Catalan block specs 2021-10-04 09:09:07 +02:00
jmoenig 06f6386435 migrated Turkish block specs 2021-10-04 09:07:30 +02:00
jmoenig 3feb9e9db2 migrated and fixed Tamil block specs 2021-10-04 09:05:22 +02:00
jmoenig e6ae5621e2 migrated Dutch block specs 2021-10-04 08:59:57 +02:00
jmoenig b13fef200a migrated Russian block specs 2021-10-04 08:57:52 +02:00
jmoenig d3d88b37ca migrated Spanish block specs 2021-10-04 08:55:55 +02:00
jmoenig a0ccd27c5d migrated Greek block specs 2021-10-04 08:54:17 +02:00
jmoenig c16a24445f migrated Italian block specs 2021-10-04 08:51:25 +02:00
jmoenig 91f5ee5efb migrated French block specs 2021-10-04 08:48:39 +02:00
jmoenig 806a0a7b8d migrated Norwegian block specs 2021-10-04 08:46:25 +02:00
jmoenig 3f6a91a6da migrated Portuguese block specs 2021-10-04 08:44:31 +02:00
jmoenig f4f8773ee4 migrated Bangla block specs 2021-10-04 08:42:06 +02:00
jmoenig d12d9d4c43 migrated and fixed Japanese block specs 2021-10-03 12:51:29 +02:00
jmoenig ba635c0c10 migrated Ukrainian block specs 2021-10-03 12:47:27 +02:00
jmoenig a686e308b7 migrated Slovak block specs 2021-10-03 12:33:20 +02:00
jmoenig 20c994fcb0 migrated and fixed Japanese Hiragana block specs 2021-10-03 12:30:08 +02:00
jmoenig 4d920411a0 migrated Hebrew block specs 2021-10-03 12:26:03 +02:00
jmoenig 25d5f948a1 migrated Galician block specs 2021-10-02 10:02:45 +02:00
jmoenig 3192afe94a migrated Indonesian block specs 2021-10-02 10:00:31 +02:00
jmoenig d582533506 migrated and fixed Traditial-Chinese block specs 2021-10-01 17:14:19 +02:00
jmoenig 6e737f26d3 migrated and fixed Bulgarian block specs 2021-10-01 17:11:28 +02:00
jmoenig 3e5d5d92aa migrated Arabic block specs 2021-10-01 17:06:38 +02:00
jmoenig 43625817b6 migrated Valencian-Catalan block specs 2021-10-01 17:03:28 +02:00
jmoenig 4d558ffb01 migrated Czech block specs 2021-10-01 16:58:49 +02:00
jmoenig de2a30e399 fixed Danish block spec for "When I am %interaction" 2021-10-01 16:56:20 +02:00
jmoenig acf24e0396 migrated Danish block specs 2021-10-01 16:53:28 +02:00
jmoenig beb1751080 migrated Esperanto block specs 2021-10-01 16:50:44 +02:00
jmoenig 2fa4f419e2 migrated Estonian block specs 2021-10-01 16:48:35 +02:00
jmoenig 34d2ecb8b5 migrated Finnish block specs 2021-10-01 16:36:20 +02:00
jmoenig 2c78188b16 migrated Croatian block specs 2021-10-01 16:29:48 +02:00
jmoenig 8e6cc20a24 migrated Hungarian block specs 2021-10-01 16:27:03 +02:00
jmoenig b8b19b870f migrated Interlingua block specs 2021-10-01 16:23:54 +02:00
jmoenig 738336f5a4 * migrated Kannada block specs 2021-10-01 16:20:38 +02:00
jmoenig c68adf3375 migrated Korean block specs 2021-10-01 15:29:18 +02:00
jmoenig cb0fac09d7 migrated Malayalam block specs 2021-10-01 15:26:39 +02:00
jmoenig 1794773a6e migrated Brazilian-Portuguese block specs 2021-10-01 15:23:17 +02:00
jmoenig 4c8eecca95 migrated Romanian block specs 2021-10-01 15:20:46 +02:00
jmoenig 3943dda537 migrated Slovenian block specs 2021-10-01 15:16:43 +02:00
jmoenig ec78e200c6 migrated Swedish block specs 2021-10-01 15:12:18 +02:00
jmoenig 5532dcbc54 migrated Telagu block specs 2021-10-01 15:09:43 +02:00
jmoenig f3881a208e migrated Euskara block specs 2021-10-01 15:03:31 +02:00
jmoenig a741284863 German translation update 2021-10-01 13:32:32 +02:00
jmoenig ddf69615ce tweaked detectable keynames and representations 2021-10-01 11:22:52 +02:00
jmoenig 2de52bcc3e assign case-sensitive key symbol to key event hat blocks' upvars 2021-09-30 22:57:37 +02:00
jmoenig c73fc90033 restricted inter-scene messages to text and numbers 2021-09-30 14:04:59 +02:00
jmoenig 326efeef7e disabled dropping reporters onto message hat block input slots 2021-09-30 13:56:41 +02:00
jmoenig 0ab3ee7d4c optional upvars referencing event data for message, key and scene hat blocks 2021-09-30 13:52:51 +02:00
jmoenig 8d2a7c8f92 refactored experimental "When I receive message" hat block 2021-09-29 10:47:19 +02:00
jmoenig 0e4a9280b5 new experimental "When I receive message" hat block
featuring an upvar for the transmission, hidden in dev mode
2021-09-28 18:57:22 +02:00
jmoenig 1ba8716f32 renamed scene event hat block 2021-09-27 11:29:51 +02:00
jmoenig 46c281504a German translation update 2021-09-09 14:30:05 +02:00
jmoenig e7ef0a2ecd slowed down scene switching to let the user better interrupt it
commented out for now
2021-09-08 19:52:33 +02:00
jmoenig 941664eef4 disabled "when this scene starts" hat blocks to directly switch to another scene 2021-09-08 18:05:29 +02:00
jmoenig c6cf2413d3 changed "switch to scene" to be a stop block 2021-09-08 17:58:00 +02:00
jmoenig 62647c8dee new hat block for "when this scene starts" 2021-09-08 16:08:30 +02:00
jmoenig 72d8000f57 changed category for "switch to scene" to control 2021-09-08 15:45:02 +02:00
jmoenig 770cf68cf3 enabled change-of-scene events for user-induced scene switches, made them user-stoppable 2021-09-07 16:18:48 +02:00
jmoenig 20d5be5ced added new change-of-scene event
still very experimental
2021-09-07 10:14:24 +02:00
jmoenig fab3d89942 fixed copying unattached comments among sprites, thanks, @jadga-h for the report! 2021-09-06 10:39:54 +02:00
jmoenig 20add8767f fixed exporting comment pics from inside the block editor, thanks, @jadga-h for the report! 2021-09-06 09:55:14 +02:00
jmoenig 3b477404f5 colors library: fixed SET PEN to work with more than a single sprite per costume
thanks, Jadga, for the report!
2021-08-27 00:19:52 +02:00
jmoenig 0119a5d224 extensions: added to the documentation 2021-08-06 11:01:33 +02:00
jmoenig 4e75601353 updated history 2021-08-06 10:19:11 +02:00
Jens Mönig 4ce0c9d204
Merge pull request #2875 from bromagosa/blocksZoom-param
added blocksZoom URL param to set blocks scale for the current session
2021-08-06 10:07:35 +02:00
Bernat Romagosa f2a8564a02 added blocksZoom URL param to set blocks scale for the current session 2021-08-06 10:02:10 +02:00
Jens Mönig 7029dc242e
Merge pull request #2874 from bromagosa/signada-extension
Added caching and semaphore for reporter blocks in Signada extension
2021-08-05 17:33:09 +02:00
Bernat Romagosa 0271d9c0b3 added caching and semaphore for reporter blocks in Signada extension 2021-08-05 17:27:20 +02:00
Jens Mönig 415be76fd7
Merge pull request #2873 from bromagosa/signada-extension
Added Signada extension (for the Citilab ED1 board)
2021-08-05 13:07:52 +02:00
Bernat Romagosa 8457f8e2dd added Signada extension (for the Citilab ED1 board) 2021-08-05 13:05:45 +02:00
jmoenig 0b3adc3198 record unsaved changes when applying edits to a custom block definition 2021-08-03 00:19:21 +02:00
jmoenig 8965ec5487 extensions: further updated documentation 2021-08-03 00:05:16 +02:00
jmoenig ac693b3f1f extensions: updated documentation 2021-08-02 16:44:00 +02:00
jmoenig 5cea738b8b fixed deserializing global settings per scene in multi-scene projects 2021-08-01 19:34:55 +02:00
jmoenig 98d0a6438e fixed saving projects with their names 2021-08-01 02:02:12 +02:00
jmoenig 384357457e fixed switching scenes in presentation mode 2021-07-29 15:00:18 +02:00
Jens Mönig 0e540f478a
Merge pull request #2868 from bromagosa/block-backend-calls
Better handling of blocked cloud URLs
2021-07-26 13:42:23 +02:00
jmoenig f4f709689b fixed exporting sprites 2021-07-23 09:40:21 +02:00
Bernat Romagosa 14c4285acf Check URL against all known cloud domains, plus make it case insensitive 2021-07-23 07:34:23 +02:00
jmoenig b956a49c86 arrange custom categories alphabetically 2021-07-23 00:46:50 +02:00
jmoenig d8e99f88f2 Update gui.js 2021-07-23 00:19:45 +02:00
jmoenig bb5e89cce4 support custom categories in libraries 2021-07-23 00:14:22 +02:00
jmoenig 1b0dc04942 recategorize blocks from a deleted palette to "other" 2021-07-22 19:52:17 +02:00
jmoenig 5bd3c2df7e tweaked loading custom blocks with user-defined categories 2021-07-22 18:07:14 +02:00
jmoenig 2394a52eb7 added delete category feature to palette context menu 2021-07-22 15:40:06 +02:00
jmoenig 14f62fdf4d cleaned up hidden menu 2021-07-22 14:56:47 +02:00
jmoenig 771bdeb34b fixed costume maximum extent 2021-07-22 14:53:34 +02:00
jmoenig bdbb5da2d7 added new category feature to palette context menu 2021-07-22 14:27:05 +02:00
jmoenig a160520abb restore custom palettes when activating a scene 2021-07-22 13:05:53 +02:00
jmoenig 1ace29c2e4 load user defined palettes 2021-07-22 12:17:50 +02:00
jmoenig e8bd6aa5ad enabled custom categories for the stage 2021-07-22 11:20:30 +02:00
jmoenig 2c4ad3d081 serialize user defined block palettes 2021-07-22 11:13:14 +02:00
jmoenig 7259be3f7d user defined custom block palettes, under construction 2021-07-21 16:41:17 +02:00
jmoenig 5ede692be3 custom category prompter 2021-07-20 18:32:47 +02:00
jmoenig 797afc3308 updated history 2021-07-20 09:55:00 +02:00
Jens Mönig 8e049f7b6e
Merge pull request #2867 from bromagosa/block-backend-calls
Block user HTTP requests to backend API
2021-07-20 09:40:24 +02:00
Bernat Romagosa 98aa298303 block user HTTP requests to backend API 2021-07-20 09:37:09 +02:00
jmoenig 1af5056cb6 updated version history 2021-07-19 10:15:04 +02:00
Jens Mönig b4d6761c63
Merge pull request #2864 from jmoenig/bh-reshape
reshape to no dimensions
2021-07-19 08:57:19 +02:00
Jens Mönig f9b85322ac
Merge pull request #2862 from jmoenig/v7-bh
smaller, linked manual
2021-07-19 08:55:04 +02:00
brianharvey 200e8279fe Revert "Revert "reshape, using Michael's suggestion""
This reverts commit f7c5cc5832.
2021-07-17 21:12:26 -07:00
brianharvey f7c5cc5832 Revert "reshape, using Michael's suggestion"
This reverts commit 51959b22b1.
2021-07-17 21:11:25 -07:00
brianharvey 51959b22b1 reshape, using Michael's suggestion 2021-07-17 21:09:36 -07:00
brianharvey 476c4d8859 reshape to no dimensions
I hope you don't mind me sneaking an executable line in between var declarations.  Makes it not have to do a redundant test. :)
2021-07-16 21:28:08 -07:00
brianharvey 77a309ef3a smaller, linked manual
Should be pulled into dev (so I can solicit bug reports), but will need redoing before actual release as the single palette and scene stuff settles down.
2021-07-16 18:37:11 -07:00
jmoenig 9379ba833c update palette when switching to a new scene / loading a new project 2021-07-16 15:28:26 +02:00
jmoenig a3d0d9100e fixed capturing global settings for serializing scenes 2021-07-16 15:08:03 +02:00
jmoenig 08a36ff94f Update objects.js 2021-07-16 13:33:59 +02:00
jmoenig a04fcd5434 fixed overlapping blocks bug in unified palette 2021-07-16 12:48:48 +02:00
jmoenig 1859b4a1bf updated byob.js for new internal categories ordering 2021-07-16 12:31:34 +02:00
jmoenig 78da81e104 rearranged internal order of categories 2021-07-16 12:15:12 +02:00
jmoenig cefab403f1 updated history and versions 2021-07-16 08:02:00 +02:00
Jens Mönig 4757d782bd
Merge pull request #2861 from jmoenig/readme
Tidy up the readme
2021-07-16 07:52:35 +02:00
Jens Mönig b3e83fe0f1
Merge pull request #2860 from jmoenig/fix-blocks
follow up fixes for single palette
2021-07-16 07:50:38 +02:00
Michael Ball 4fc1733559 Tidy up the readme 2021-07-15 22:49:41 -07:00
Jens Mönig 1a96e897ee
Merge pull request #2859 from jmoenig/v7-bh
manual, libraries for 7.0
2021-07-16 07:44:32 +02:00
Michael Ball ff23395167
fix typo 2021-07-15 21:14:13 -07:00
Michael Ball a5f1d13c4e Fix bug hiding/showing primitives in Variables palette. Cleanup debugging 2021-07-15 21:09:55 -07:00
Michael Ball 381779b646 Do not show labels in the unified palette for categories with no blocks 2021-07-15 20:47:48 -07:00
Michael Ball ce011d1078 Merge branch 'master' into fix-blocks
* master:
  made sprite-bar height independent of the number of categories
2021-07-15 20:08:30 -07:00
Michael Ball 4288cf3968 fix show primitives to show the odd category blocks 2021-07-15 20:05:23 -07:00
jmoenig cd93b89a31 made sprite-bar height independent of the number of categories 2021-07-15 23:18:10 +02:00
brianharvey 2952148019 manual, libraries for 7.0
The manual isn't finished, but it's in good enough shape to be pushed to dev so we can all look it over.

All I've changed in the libraries is to hide some helper blocks, but not as many as I'd like.  :)
2021-07-13 23:21:25 -07:00
jmoenig 74446be4f9 fixed search from palette context menu 2021-07-13 09:22:03 +02:00
jmoenig bf0680154f fixed refactored "Delete a variable" button for stage palette 2021-07-12 11:03:21 +02:00
jmoenig 6c789b8f50 updated version history 2021-07-12 10:05:49 +02:00
Jens Mönig a83380e280
Merge pull request #2858 from Simon-Mong/patch-17
Update lang-zh_CN.js
2021-07-12 09:58:20 +02:00
Simon-Mong b2c8812b01
Update lang-zh_CN.js
Update the translation of new blocks and delete some unnecessary translations of the names of Math functions.
2021-07-12 12:46:32 +08:00
jmoenig 144ebbd40e added more experimental pwa icons 2021-07-11 16:03:08 +02:00
jmoenig bc636c1fd6 make sure to cache libraries and media in pwa
thanks, @jguille2 !
2021-07-11 15:06:14 +02:00
jmoenig fa2d780b2a updated version history 2021-07-10 21:54:00 +02:00
jmoenig 3a7ca38acd PWA experiment tweaks 2021-07-10 21:48:23 +02:00
jmoenig f55897ff8b Update manifest.json 2021-07-10 21:12:59 +02:00
jmoenig 8412fcd16d Update snap.html 2021-07-10 21:00:27 +02:00
jmoenig f80b97d50c PWA prototype 2021-07-10 20:52:07 +02:00
jmoenig 1df9bcc891 fixed blocks cache invalidation for unified palette 2021-07-09 16:19:41 +02:00
jmoenig 7b430e9c07 fixed vanishing JSF block bug in new error messages 2021-07-09 13:50:51 +02:00
jmoenig 4d62c646c5 translation support for category labels in the unified palette 2021-07-09 11:04:13 +02:00
jmoenig 59032ba2d5 tweaked slider transparency for flat design mode 2021-07-09 09:16:50 +02:00
jmoenig 79e6e454aa made scrollbars thinner by default 2021-07-09 08:01:34 +02:00
jmoenig e6280f4751 * extensions: whitelisted 'https://snap.berkeley.edu/' 2021-07-09 07:58:43 +02:00
jmoenig c9366286f9 fixed scroll-into-view glitch when adding scenes 2021-07-08 16:28:23 +02:00
jmoenig 441e3e4d4d revert previous scrolling optimization
nvmd, I'm so stupid ;-)
2021-07-08 13:12:34 +02:00
jmoenig 04bf915d12 optimized Morph >> scrollIntoView() 2021-07-08 12:01:25 +02:00
jmoenig 8a9888061e commented out saving the unified palette setting in the project xml during development 2021-07-08 09:30:30 +02:00
jmoenig c8cd14eecd adjust scroll bars when refreshing the palette 2021-07-08 09:11:40 +02:00
jmoenig 955b3f7075 accelerated unified palette scrolling animation 2021-07-08 08:58:32 +02:00
jmoenig c425b0d9f9 added category labels to unified palette 2021-07-08 08:51:03 +02:00
jmoenig 1282c818b7 updated history log 2021-07-07 13:53:01 +02:00
Jens Mönig 5ca6199c38
Merge pull request #2857 from cycomachead/display-block-with-error
Display block with error
2021-07-07 13:43:02 +02:00
jmoenig 25752ae850 fixed "hide / show primitives" for unified palette 2021-07-07 13:04:06 +02:00
jmoenig e3de678a14 updated version date 2021-07-07 12:52:14 +02:00
Jens Mönig 8eed28fb54
Merge pull request #2856 from jmoenig/michael/fix-hide-primitives
Hide all primitives works in Single Palette mode.
2021-07-07 12:48:15 +02:00
jmoenig 431ac7c000 tweaked perish() animation 2021-07-07 12:20:00 +02:00
Michael Ball 572da6ad17 Merge branch 'master' into display-block-with-error
* master:
  made unified palette the default for dev
  unified palette: offer the currently visible category when letting the user make a block
  German translation update (hiding helper blocks in the palette)
  serialization support for helper block feature
  new feature: hide custom helper blocks in palette
2021-07-06 21:48:46 -07:00
Michael Ball 0c3cfe0d21 Refactor: Show the block where an error occured in a custom block 2021-07-06 19:03:57 -07:00
Michael Ball e2aec2e7db tidy up arrow function 2021-07-06 15:14:14 -07:00
Michael Ball d8216d2487 Hide all primitives works in Single Palette mode.
* also, calling "flushBlocksCache" in unified/single mode clears the whole cache
2021-07-06 15:12:31 -07:00
Michael Ball 7e537fc7ae WIP show block calling a reportGetVar 2021-07-06 11:53:28 -07:00
jmoenig 042b5e0ae0 made unified palette the default for dev 2021-07-06 18:35:07 +02:00
jmoenig f14bf20232 unified palette: offer the currently visible category when letting the user make a block 2021-07-06 17:08:20 +02:00
jmoenig 09dac66e39 German translation update (hiding helper blocks in the palette) 2021-07-06 09:51:05 +02:00
jmoenig 58cd75e7dc serialization support for helper block feature 2021-07-06 09:39:54 +02:00
jmoenig 52ab29c261 new feature: hide custom helper blocks in palette 2021-07-06 09:25:29 +02:00
Michael Ball 9ee9e02840 Include a picture of a block when an error occurs in a custom block 2021-07-05 18:20:00 -07:00
jmoenig e34acb2653 replaced checkboxes in custom block context menus with symbols 2021-07-05 23:27:20 +02:00
jmoenig e934f14745 unified palette: don't animate scrolling if delta is zero 2021-07-05 16:54:47 +02:00
jmoenig 601b04a72e added jshint esversion 2021-07-05 16:46:31 +02:00
jmoenig db3b976430 "serial ports" library 2021-07-05 13:43:05 +02:00
jmoenig c40d8ed124 web-serial extension primitives
pioneered by Dariusz Dorożalski @DarDoro !
2021-07-05 13:29:25 +02:00
jmoenig 99c09d6381 unified palette: indicate "selected" category in selector buttons 2021-07-05 08:01:42 +02:00
jmoenig cc4365ce39 fixed audio_comp library "plot sound" block to work with translations
thanks, Hans, for the report!
2021-07-04 12:46:32 +02:00
jmoenig 7ff3cda55b updated German translation for unified palette setting 2021-07-03 23:30:00 +02:00
jmoenig 1d9c06e488 renamed "Unified Palette" to "Single palette" in the settings menu 2021-07-03 22:52:38 +02:00
jmoenig addc1dd35c fixed unified palette for searching 2021-07-03 22:49:12 +02:00
jmoenig ed2dff6c23 fixed unified palette for multi-scene projects 2021-07-03 22:09:05 +02:00
jmoenig 7abc954e76 fixed the paletteHandle for the unified palette 2021-07-03 19:38:28 +02:00
jmoenig 6dd99d37e7 arranged the blocks in the unified palette column-wise 2021-07-03 18:44:24 +02:00
jmoenig 9753f70aa9 guard against missing categories when scrolling the unified palette 2021-07-02 21:44:38 +02:00
jmoenig bbd76e462b tweaked unified palette scrolling animation (made it more noticeable) 2021-07-02 21:35:42 +02:00
jmoenig a82c42c165 fixed typo in comment, thanks, @cycomachead 2021-07-02 19:49:14 +02:00
jmoenig 6f762e7a29 animate scrollToPaletteCategory() 2021-07-02 19:37:14 +02:00
jmoenig b3bb4eb51e fixed centering of menus, thanks, @brollb! 2021-07-02 17:29:59 +02:00
jmoenig b9db62609b Update HISTORY.md 2021-07-02 17:17:44 +02:00
Jens Mönig de69bf77e5
Merge pull request #2855 from jmoenig/scenes
Scenes
2021-07-02 17:10:25 +02:00
jmoenig b82ea9dae5 changed spelling of palette 2021-07-02 17:09:05 +02:00
jmoenig 96bf69b83e little reformattings, mostly to shut up LINT 2021-07-02 17:04:56 +02:00
Jens Mönig b958e2fe3a
Merge pull request #2853 from jmoenig/michael/unified-palette
add a 'unified palette' option to a scene
2021-07-02 16:15:36 +02:00
jmoenig e7f410ad3d Merge branch 'master' into scenes 2021-07-02 14:37:06 +02:00
jmoenig 339474a597 took out web-serial extension prims (not yet ready) 2021-07-02 08:33:16 +02:00
Michael Ball ca1c20e1e0 Maintain palette scroll position when cancelling searching blocks 2021-07-01 15:15:52 -07:00
Michael Ball 16be129408 Simplify palette scrollto function, update scrollbars 2021-07-01 14:52:37 -07:00
Michael Ball 125eb1b4fa resolve issues with duplicate blocks in the variables palette 2021-06-30 03:08:14 -07:00
Michael Ball e5be75bb56 resolve bug with palette rendering polluting the primitiveCache 2021-06-30 02:57:53 -07:00
Michael Ball 772da1fd94 undo spacing from bad merge 2021-06-29 22:25:49 -07:00
Michael Ball 32aac68abd remove debug arg 2021-06-29 22:23:57 -07:00
Michael Ball 17d7dd6720 tidy up some code, undo some improper git merging 2021-06-29 22:23:06 -07:00
Michael Ball 2a061f57f3 fix cache clearing for primitive hiding 2021-06-29 20:41:22 -07:00
Michael Ball 27c116bee4 Refactor blockTemplates and palette drawing. Extract functions from blockTemplates 2021-06-29 19:59:52 -07:00
Michael Ball 529123f6a9 rename blocksCache primitivesCache for clarity 2021-06-29 17:49:55 -07:00
Michael Ball 363666e3de WIP loading custom blocks works in unified mode. 2021-06-29 17:48:46 -07:00
Michael Ball 74659ed752 merge scenes updates 2021-06-28 22:13:07 -07:00
Michael Ball 7ac61ea30b Show custom blocks in the correct spot 2021-06-28 21:58:10 -07:00
jmoenig 7bd733a6d5 commented out web-serial extension prims
while thinking about their design
2021-06-25 14:40:53 +02:00
jmoenig 0196d3354b added first rough experimental version of web-serial extension primitives 2021-06-25 11:52:24 +02:00
jmoenig d6b33e29bb Merge branch 'master' into scenes 2021-06-24 18:48:39 +02:00
jmoenig 6c769c2017 updated bignumbers library 2021-06-24 18:46:46 +02:00
jmoenig d38f9d7134 added documentation for adding external JS modules 2021-06-24 18:43:49 +02:00
jmoenig eb75e8d96a removed unused code 2021-06-24 16:07:21 +02:00
jmoenig e20d304bc5 extensions: tweaked loading unlisted script-extensions 2021-06-24 16:00:44 +02:00
jmoenig 4f2aedc93e Merge branch 'master' into scenes 2021-06-23 19:10:14 +02:00
jmoenig 65e9c4587a took out device libraries (Hummingbird blocks and Leap Motion) 2021-06-23 19:07:29 +02:00
jmoenig eaca5400a8 pushed dev version to 6.10 2021-06-23 18:50:51 +02:00
jmoenig 03de7f9dc4 Update extensions.js 2021-06-23 17:44:37 +02:00
jmoenig d057b0eae7 updated bignums library 2021-06-23 17:11:05 +02:00
jmoenig 8be709e64f Create bignums.js 2021-06-23 17:06:04 +02:00
jmoenig 097d14accf tweaked script-loading extension primitive 2021-06-23 15:16:58 +02:00
jmoenig 9515082721 added script-loading extension primitive 2021-06-22 14:09:35 +02:00
jmoenig c99ee7db46 Merge branch 'master' into scenes 2021-06-20 11:32:05 +02:00
jmoenig 0decdec455 Update colors.xml 2021-06-20 11:01:27 +02:00
jmoenig 6ad9e173f4 Merge branch 'master' into scenes 2021-06-20 10:45:16 +02:00
jmoenig a82a17711e updated extensions documentation 2021-06-20 10:25:07 +02:00
Jens Mönig fedc20b7ee
Merge pull request #2852 from jmoenig/initialize-variables
Update colors.xml
2021-06-20 09:59:07 +02:00
brianharvey 3430de251b Update colors.xml
Change the test in INITIALIZE VARIABLES to test a variable that didn't exist in the earlier versions people may have in old projects.
2021-06-19 23:33:40 -07:00
jmoenig 65e97e3231 updated the abominable colors library ;-) 2021-06-19 21:17:18 +02:00
jmoenig 6b11e378e1 tweaked make-vars library to reduce internal dependencies 2021-06-19 19:30:38 +02:00
jmoenig e7a981214f added color hsl getter extension primitive 2021-06-19 18:33:10 +02:00
jmoenig f9c51742d6 added pen color getter extension primitive 2021-06-19 18:19:46 +02:00
jmoenig dd17330cb8 fixed search for dynamic extension menus 2021-06-19 11:45:45 +02:00
jmoenig 9c582e785e added color extension primitives 2021-06-19 11:31:44 +02:00
jmoenig edc0196e69 updated strings library
(changed variable name to '_case independent')
2021-06-18 23:26:01 +02:00
jmoenig 3ba7e62e7a dynamic extension dropdown menu support 2021-06-18 23:12:41 +02:00
jmoenig 990911b295 separated extension primitives from extension dropdown menus 2021-06-18 18:41:02 +02:00
jmoenig a55bd02eeb added (gargantuan) color library dropdown menu 2021-06-18 15:57:03 +02:00
jmoenig f34e681cfe tweaked strings library 2021-06-18 08:52:39 +02:00
jmoenig 6737a4080d tweaked make-variables library 2021-06-18 08:37:10 +02:00
jmoenig 5be63e57b3 tweaked variable declaration extension primitive
commented out palette refresh prim
2021-06-18 08:32:52 +02:00
jmoenig d34a7c7afe updated strings library 2021-06-18 00:04:07 +02:00
jmoenig 0d7519c89e added text extension primitives 2021-06-18 00:02:15 +02:00
jmoenig 17641b4085 updated make-variables library 2021-06-17 20:31:13 +02:00
jmoenig 0cd55ed659 added variable extension primitives 2021-06-17 20:27:06 +02:00
jmoenig e3e7c1d876 updated apl library 2021-06-17 11:33:14 +02:00
jmoenig fe178d9bd3 added APL extension primitives 2021-06-17 11:27:28 +02:00
jmoenig fd0be220b0 updated text-costume library 2021-06-16 23:35:15 +02:00
jmoenig 2132afbe75 Update extensions.js 2021-06-16 23:33:15 +02:00
jmoenig dd83287b85 added object-naming extension primitive 2021-06-16 23:22:59 +02:00
jmoenig 1f22de2511 Update try-catch.xml 2021-06-16 21:27:16 +02:00
jmoenig 71a08a82b0 updated try-catch library 2021-06-16 21:23:54 +02:00
jmoenig 4d81f4de06 added try-catch extension primitives 2021-06-16 21:18:48 +02:00
jmoenig 3b9f422112 added exception handling primitives for try/catch 2021-06-16 21:16:02 +02:00
jmoenig 0845855b4a updated localstorage library 2021-06-15 17:28:20 +02:00
jmoenig e75cb02035 Update extensions.js 2021-06-15 17:19:59 +02:00
jmoenig f4f544b375 updated audio library 2021-06-15 16:56:03 +02:00
jmoenig b9b48ca464 Update extensions.js 2021-06-15 16:49:39 +02:00
jmoenig 68fc3e003e updated pixels library 2021-06-15 16:41:35 +02:00
jmoenig 70cca6296f Update extensions.js 2021-06-15 16:39:22 +02:00
jmoenig dfb41840e7 updated http-blocks library 2021-06-15 15:32:24 +02:00
jmoenig b705fe1b10 changed default world map style to OpenStreetMap 2021-06-15 15:19:28 +02:00
jmoenig 05dd97a16e Update maps_module.xml 2021-06-15 15:13:06 +02:00
jmoenig c245de9777 added geolocation extension primitive 2021-06-15 15:05:04 +02:00
jmoenig 35d69b1647 added long-form xhr extension primitive 2021-06-15 14:42:00 +02:00
jmoenig b42b608cfb fixed #2850 (occasional invisible error message)
thanks, Ken, for the bug report!
2021-06-15 14:26:04 +02:00
jmoenig 6606ed9201 updated bar-charts library 2021-06-15 12:24:05 +02:00
jmoenig 590a05a8f5 updated text-to-speech library 2021-06-15 12:05:13 +02:00
jmoenig 5b443a15ff Update extensions.js 2021-06-15 11:57:11 +02:00
jmoenig 66a0d6803f added tts to extensions 2021-06-15 11:51:08 +02:00
jmoenig 95efc1a93c updated words-sentences library 2021-06-15 11:14:30 +02:00
jmoenig 2b25e2995b updated animation library 2021-06-15 10:18:08 +02:00
jmoenig e965e39a0e updated frequency-distribution-analysis library 2021-06-15 10:12:00 +02:00
jmoenig 09bee54486 documented extension primitive function semantics 2021-06-15 10:04:11 +02:00
jmoenig 2c6e9fb690 updated list-utilities library 2021-06-15 09:46:08 +02:00
jmoenig e56c0b6170 new naming convention for extension primitives 2021-06-15 09:39:58 +02:00
jmoenig 7b08f3b7cf updated maps library 2021-06-15 09:12:13 +02:00
jmoenig ff62013dc3 tweaked world-map extension primitives 2021-06-15 09:06:36 +02:00
jmoenig 44d0d94ee3 added more world-map extension primitives 2021-06-14 23:18:52 +02:00
jmoenig 4b5e091b39 associate setting with JSF-block rather than the evaluator 2021-06-14 22:53:12 +02:00
jmoenig 02509e157d added some world-map extension primitives 2021-06-14 17:49:46 +02:00
jmoenig 0bdb097a41 updated frequency-distribution-analysis library 2021-06-14 14:55:26 +02:00
jmoenig 468d15a694 updated animation library 2021-06-14 14:40:45 +02:00
jmoenig 54f2a93a62 Update list-utilities.xml 2021-06-14 13:57:26 +02:00
jmoenig c4661dc1fe updated list-utilities library 2021-06-14 13:53:56 +02:00
jmoenig 8e1ac188a2 added new "primitive" blocks to dev palette 2021-06-14 13:15:55 +02:00
jmoenig 975145cede new safe extensions mechanism 2021-06-14 13:04:25 +02:00
jmoenig e20517d83f new dev version 2021-06-14 10:18:01 +02:00
jmoenig a5937b460f Merge branch 'master' into scenes 2021-06-12 23:35:32 +02:00
Michael Ball ccc9edf4fc tidy up spacing in unified palette view 2021-06-07 22:48:08 -10:00
Michael Ball 48e43a30c5 simplify hiding primitives function 2021-06-07 22:27:41 -10:00
Michael Ball 6f8d3fa327 Refactor turning unified palette on and off 2021-06-07 22:18:27 -10:00
Michael Ball 3026bcea35 Refactor loading unified palette 2021-06-04 13:18:12 -10:00
Michael Ball b3f758243f unified palette is reflected when switching/loading scenes 2021-06-04 12:18:29 -10:00
Michael Ball a8393be6b0 Add support for saving and loading unified palette 2021-06-03 07:35:55 -10:00
Michael Ball 132fc0257d Unified Palette: Clicking Category scrolls palette to the right section 2021-05-25 09:22:50 -10:00
Michael Ball 221b46bd02 resolve merge conflict 2021-05-24 19:09:33 -10:00
jmoenig e4ca7f2a21 fixed search-blocks for scenesMenu 2021-05-21 23:34:09 +02:00
jmoenig 0c8baa9f7f corrected a typo-glitch 2021-05-21 17:03:45 +02:00
jmoenig 7caa5f04c6 sceneified unsaved changes management 2021-05-21 16:54:41 +02:00
jmoenig 2846d899e3 some cleanups 2021-05-21 15:51:14 +02:00
jmoenig 0460a4061f adjusted project thumbnail in "save" dialog 2021-05-21 15:37:03 +02:00
jmoenig 5503ce568d sceneified project notes 2021-05-21 15:31:23 +02:00
jmoenig 45376a2977 distinguished project name from scene names
also removed hidden "export as plain text" option
2021-05-21 14:28:03 +02:00
Michael Ball 58f0a6c918 First Draft: Support a unified palette.
* A scene now has a setting for "unified palette"
* hides the category selectors
* shows all blocks in the palette
* tbd how to be use the space.
2021-05-20 12:24:05 -10:00
jmoenig 498c4c8edf proxied thumbnail, name and notes in project, restored in XML 2021-05-21 00:08:24 +02:00
jmoenig ae13edd984 marked projectName to be refactored and sceneified 2021-05-20 23:22:12 +02:00
jmoenig 6756c920bc Update HISTORY.md 2021-05-19 19:49:54 +02:00
jmoenig 9b35d468de removed "thumbnail" property from scene xml 2021-05-19 19:49:46 +02:00
jmoenig 2c07601354 removed redundant properties "notes" and "thumbnail" from project 2021-05-19 19:04:18 +02:00
jmoenig 5d58c1e20a added exporting single scenes 2021-05-19 17:57:48 +02:00
jmoenig 9cc238f8ef made sure the project scene stays in place 2021-05-19 16:39:46 +02:00
jmoenig e6a81406ce disabled dragging the project scene icon 2021-05-19 16:16:59 +02:00
jmoenig 29d4742261 disabled scene icon context menu for project scene 2021-05-19 16:11:57 +02:00
jmoenig 63d4932747 ensured unique scene names 2021-05-18 16:24:09 +02:00
jmoenig 33ff73aebd fixed cloud file format for multi-scene projects 2021-05-18 15:55:39 +02:00
jmoenig 55d088e174 "projectized" cloud file format for a single scene 2021-05-18 13:04:07 +02:00
jmoenig 5df0a5d72c fixed cloud file format components 2021-05-18 12:14:02 +02:00
jmoenig 01f82134f3 fixed exporting media only for a single scene 2021-05-18 11:01:33 +02:00
jmoenig f1eacce7d2 tweaked scene album rendering 2021-05-11 18:51:44 +02:00
jmoenig b5217206bd adjusted scene album rendering 2021-05-11 18:39:01 +02:00
jmoenig 292a8a4436 add multi-scene projects 2021-05-11 15:14:16 +02:00
jmoenig 73aef0c99e project menu entries for "new scene" and "add scene" 2021-05-10 16:27:36 +02:00
jmoenig 298cd574f2 Merge branch 'master' into scenes 2021-05-04 18:58:16 +02:00
jmoenig f7b3c52e62 Merge branch 'master' into scenes 2021-05-03 10:55:11 +02:00
jmoenig 639871311d only show scene album if the project has more than a single scene 2021-04-28 14:25:48 +02:00
jmoenig 9844408dfa Merge branch 'master' into scenes 2021-04-23 17:29:13 +02:00
jmoenig 19473e2a2a remember last edited scene in a project 2021-04-23 16:17:32 +02:00
jmoenig 1402d8227d moved sprite-selection attribute from stage to scenes tag 2021-04-23 15:36:11 +02:00
jmoenig 2c18e60f82 sceneified "zoom blocks" 2021-04-23 11:24:59 +02:00
jmoenig b797189b0c sceneified toggling dynamic input labels and switching languages 2021-04-23 11:17:52 +02:00
jmoenig fe455ae7d6 sceneified refreshIDE() 2021-04-23 10:54:39 +02:00
jmoenig c56e778996 serialize sprite-order from scenes 2021-04-23 08:48:14 +02:00
jmoenig 80743bff62 removed old stage serialization code 2021-04-22 19:16:47 +02:00
jmoenig ddfb17aaae unified exporting projects 2021-04-22 19:15:53 +02:00
jmoenig bc14b97a7a replaced openScene() with openProject() 2021-04-22 18:49:21 +02:00
jmoenig d278a91e7f migrated "new project" feature 2021-04-22 18:38:26 +02:00
jmoenig 5e5802c469 first pass at deserializing multi-scene projects 2021-04-22 18:23:10 +02:00
jmoenig a558af4552 more project loading structure refactorings 2021-04-21 18:21:33 +02:00
jmoenig 69f7e99900 refactored project loading structure 2021-04-21 16:59:37 +02:00
jmoenig cc56f710bf multi-scene project serialization format, first pass 2021-04-20 09:09:03 +02:00
jmoenig a74779f39b export multi-scene projects 2021-04-16 12:30:45 +02:00
jmoenig b65b941a39 Update HISTORY.md 2021-04-16 09:24:22 +02:00
jmoenig 96974ac086 removed Project class 2021-04-16 09:23:37 +02:00
jmoenig 5816f1fbfe remember the sprite last edited when saving a project 2021-04-16 08:09:04 +02:00
jmoenig 298f559775 switched to scene-based project serialization 2021-04-14 18:40:42 +02:00
jmoenig bc6298940e sceneified project deserialization 2021-04-14 17:42:37 +02:00
jmoenig 8ce858d111 new Project class 2021-04-14 15:27:32 +02:00
jmoenig 9caafba65e tweaked scene album colors 2021-04-12 19:04:38 +02:00
jmoenig 9a8d0cb6ed support bulk-file-drop for importing scenes 2021-04-12 18:10:53 +02:00
jmoenig e8900241e0 new Morphic bulk file-drop events 2021-04-12 17:34:14 +02:00
jmoenig 9de856e7e3 tweaked scene index for removal and ordering 2021-04-12 13:13:39 +02:00
jmoenig 01f3108bdd new "switch to scene _" command primitive 2021-04-12 10:46:45 +02:00
jmoenig 5441d7d373 Merge branch 'master' into scenes 2021-04-09 15:49:40 +02:00
jmoenig d31a3b8165 scroll selected scene icon into view 2021-04-08 19:07:03 +02:00
jmoenig a28244a976 made scrollbars in the wardrobe and jukebox more responsive 2021-04-02 11:14:54 +02:00
jmoenig 4544f28efd Merge branch 'master' into scenes 2021-04-01 12:40:34 +02:00
jmoenig d79b0a70fa made scene icons observe the scene's stage versions 2021-04-01 11:49:45 +02:00
jmoenig 5c830680d6 made scene icons selectable 2021-04-01 11:14:16 +02:00
jmoenig 7197d226b0 tweaked scene icons 2021-03-31 17:22:36 +02:00
jmoenig b3c7b4dc12 moved stage icon to the top of the corral 2021-03-31 11:24:38 +02:00
jmoenig eb55779b2e tweaked scene icon settings 2021-03-31 10:29:19 +02:00
jmoenig 85faa08f83 added scene icon thumbnails 2021-03-30 19:56:33 +02:00
jmoenig 7d7b381569 turned scenes into an observable list 2021-03-30 19:29:48 +02:00
jmoenig 8f4025d1c3 added SceneIconMorph and SceneAlbumMorph prototypes 2021-03-30 17:53:46 +02:00
jmoenig 5ff8b1cbb1 added gui documentation 2021-03-30 14:59:31 +02:00
jmoenig 6cc5d59ba9 first live multi-scene experiment 2021-03-25 17:06:30 +01:00
jmoenig 098cea0fc4 sceneified trash 2021-03-25 13:47:45 +01:00
jmoenig f4aa21a2a6 capture global settings in scenes 2021-03-19 18:01:46 +01:00
jmoenig a987b4773b Merge branch 'master' into scenes 2021-03-19 12:13:15 +01:00
jmoenig 1230365b41 more scene refactorings 2021-03-18 16:31:47 +01:00
jmoenig 87b8b24713 more scene-refactorings 2021-03-18 12:18:23 +01:00
jmoenig 05e85b1bc7 Merge branch 'master' into scenes 2021-03-17 23:35:58 +01:00
jmoenig f4ea4bf25e de-globalized stage dimensions 2021-03-17 18:28:17 +01:00
jmoenig 6025a62d6d Merge branch 'master' into scenes 2021-03-15 13:29:21 +01:00
jmoenig dfb32fcfee Merge branch 'master' into scenes 2021-03-15 10:54:29 +01:00
jmoenig b11423a122 restored scenes branch 2021-03-15 08:51:15 +01:00
123 zmienionych plików z 14507 dodań i 3702 usunięć

71
API.md
Wyświetl plik

@ -1,6 +1,6 @@
# The Snap! API
Jens Mönig, Bernat Romagosa, January 07, 2021
Jens Mönig, Bernat Romagosa, November 17, 2021
This document describes how Snap! can be accessed from an outside program to start scripts, send and retrieve information. The model use case is embedding interactive Snap! projects in other websites such as MOOCs or other adaptive learning platforms.
@ -8,6 +8,17 @@ This experimental Snap! API is a set of methods for an IDE_Morph containing a Sn
Currently the API consists of the following methods:
#### Navigate Scenes
* IDE_Morph.prototype.getScenes()
* IDE_Morph.prototype.getCurrentScene()
* IDE_Morph.prototype.switchTo()
#### Control Processes
* IDE_Morph.prototype.isRunning()
* IDE_Morph.prototype.stop()
#### Broadcast Messages (and optionally wait)
* IDE_Morph.prototype.broadcast()
@ -94,6 +105,60 @@ request, while `e.data.response` carries the return value of the API method call
## Interacting with the IDE
### IDE_Morph.prototype.getScenes()
The getScenes() method returns an array with the names of all scenes in the projects. The minimum number of elements is 1, since there is always at least one scene per project. The scene names are unique strings within the array. Note that the empty string ('') is a valid scene identifier.
#### syntax
ide.getScenes();
#### return value
an Array of Strings, minimum length 1
### IDE_Morph.prototype.getCurrentScene()
The getCurrentScene() method returns a string representing the name of the currently active scene in the project. If the scene is unnamed and empty string is returned.
#### syntax
ide.getCurrentScene();
#### return value
a String, can be an empty String
### IDE_Morph.prototype.switchTo()
The switchTo() method displays the specified scene. It suspends all processes and clones of the previously active scene and passes control to the new scene.
#### syntax
ide.switchTo(sceneName);
#### parameters
* sceneName
- string, the name of the scene to be activated
#### return value
undefined
### IDE_Morph.prototype.isRunning()
The isRunning() method returns `true` if the active scene is currently running one or more threads, `false` if the scene is idle.
#### syntax
ide.isRunning();
#### return value
a Boolean
### IDE_Morph.prototype.stop()
The stop() method immediately terminates all currently running threads in the active scene and removes all temporary clones. It does not trigger a "When I am stopped" event.
#### syntax
ide.stop();
#### return value
undefined
### IDE_Morph.prototype.broadcast()
The broadcast() method triggers all scripts whose hat block listens to the specified message. An optional callback can be added to be run after all triggered scripts have terminated.
@ -209,7 +274,7 @@ the loadProjectXML() method replaces the current project of the IDE with another
#### parameters
* projectData
* XML string representing a serialized project
#### return value
unefined
@ -219,7 +284,7 @@ the unsavedChanges() method return a Boolean value indicating whether the curren
#### syntax
ide.unsavedChanges();
#### return value
a Boolean

1174
HISTORY.md

Plik diff jest za duży Load Diff

Wyświetl plik

@ -7,7 +7,7 @@ If you would like to use TurtleStitch without being connected to the internet, e
or in a school with limited or unreliable online service you can easily set up TurtleStitch locally on
your computer, by following these
## Simple Steps:
### Simple Steps:
1. Download the latest TurtleStitch Release from
[https://github.com/backface/turtlestitch/releases/latest](https://github.com/backface/turtlestitch/releases/latest "TurtleStitch Source Code"), and unpack the contents of the archive to your local disk.
@ -18,9 +18,9 @@ TurtleStitch is just a web page, you can open it locally in your browser, no nee
on your computer. You can use whichever operating system you like, you don't even need
admin rights. You can also use a memory stick to distribute the directory with source files
among the participants of a workshop or the students of your class, even if some of them
are using MacOS and others run MS Windows or Linux.
are using MacOS and others run MS Windows or Linux.
## Remember to Unpack
### Remember to Unpack
Windows users, this is for you.
@ -30,7 +30,7 @@ to your computer. If you downloaded the zip file please actually unzip it, befor
on Windows double clicking the zip fie will *not* unzip it but instead show you the contents of
the archive.
## Which Web Browser?
### Which Web Browser?
It's best to open TurtleStitch in Chrome or Firefox.
@ -41,14 +41,13 @@ will work, but some operations will be so slow it takes the fun out of programmi
## What about Tablets?
We don't recommend it.
TurtleStitch sorta runs on tablets, but the UI isn't optimized for mobile use. Also, many mobile
web browsers enforce some restrictions that are not web-standards compliant, e.g. they
will not support the soft keyboard or intentionally slow down certain operations to discourage
using web apps in favor of proprietary "native" apps.
## Restrictions of the Offline Version
### Restrictions of the Offline Version
You can't access the cloud, duh. Everything else just works.
@ -57,7 +56,7 @@ file locally there aren't any restrictions. You can use all the blocks, import p
libraries, take snapshots with the webcom, record sounds with the microphone, draw your
own costumes etc.
## Saving and Loading
### Saving and Loading
When you use TurtleStitch locally you will not be able to save projects to the cloud, nor can you
access projects saved in the cloud. Instead projects will be exported as xml-files to your
@ -79,8 +78,3 @@ Easy, isn't it?
From time to time it's wise to check whether a new version of TurtleStitch is available. You can
find out the lastest release using the link above, and compare that to the offline sources on
your computer. If there is a newer version, simply replace the source files with the newer ones.
Enjoy!
-Jens

Wyświetl plik

@ -1,3 +1,4 @@
# TurtleStitch
TurtleStitch is a visual, blocks-based programming environment for turtle graphics with a primary focus on
@ -24,14 +25,15 @@ You can also try the [latest stable version from the git master branch](https://
or [download it and run it offline](https://github.com/backface/turtlestitch/blob/master/OFFLINE.md)
## Acknowledgements / License
Snap! Build Your Own Blocks [http://snap.berkeley.edu] is a
visual, blocks based programming language inspired by Scratch
Copyright (C) 2008-2021 by Jens Mönig and Brian Harvey
## License
Copyright (C) 2008-2022 by Jens Mönig and Brian Harvey
Copyright (C) 2008-2022 by Michael Aschauer
Snap! is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as

Wyświetl plik

@ -0,0 +1,355 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workflow xmlns="http://ns.adobe.com/acrobat/workflow/2012" title="Frobnicate Snap! Manual" description="Active TOC, Index, URLs, and Wikipedia links; compress size." majorVersion="1" minorVersion="0">
<Group label="Untitled">
<Command name="EVMP_AutoBookmarkLinksTOCToPages" pauseBefore="false">
<Items>
<Item name="ActionFilter" type="integer" value="3"/>
<Item name="ControlFile" type="text" value=""/>
<Item name="ConvertTextCase" type="integer" value="0"/>
<Item name="CountLineEnds" type="boolean" value="false"/>
<Item name="Description" type="text" value=""/>
<Item name="DictionaryFile" type="text" value=""/>
<Item name="FindWhat" type="text" value="^[^\n]+[.]+[ ]*([\d]+)[ ]*\n"/>
<Item name="FirstPage" type="integer" value="1"/>
<Item name="FirstPageExpression" type="text" value="2"/>
<Item name="Flags" type="integer" value="0"/>
<Items name="FontFilter">
<Item name="FontName" type="text" value=""/>
<Item name="FontSize" type="double" value="10.000000"/>
<Item name="FontSizeTolerance" type="double" value="0.500000"/>
<Item name="MatchFontName" type="boolean" value="false"/>
<Item name="MatchFontSize" type="boolean" value="false"/>
</Items>
<Item name="ImportExportFilename" type="text" value=""/>
<Item name="IncludeLinkAnnots" type="boolean" value="true"/>
<Item name="IncludeWidgetAnnots" type="boolean" value="true"/>
<Item name="LastPage" type="integer" value="2"/>
<Item name="LastPageExpression" type="text" value="3"/>
<Item name="LinkAttribute" type="integer" value="0"/>
<Item name="LinkingContext" type="text" value=""/>
<Items name="Margins">
<Item name="Bottom" type="double" value="750.199997"/>
<Item name="Left" type="double" value="28.100006"/>
<Item name="Right" type="double" value="606.199997"/>
<Item name="Top" type="double" value="30.199997"/>
</Items>
<Item name="MatchCase" type="boolean" value="true"/>
<Item name="MatchWholeWordsOnly" type="boolean" value="false"/>
<Item name="NewWindow" type="integer" value="0"/>
<Item name="PageNumberFormat" type="integer" value="0"/>
<Item name="PageOffset" type="integer" value="0"/>
<Item name="PageSelection" type="integer" value="2"/>
<Item name="PageSubset" type="integer" value="0"/>
<Item name="RepeatOperation" type="boolean" value="false"/>
<Item name="ReplaceWith" type="text" value=""/>
<Item name="SortOrder" type="integer" value="2"/>
<Item name="StartingNumber" type="integer" value="0"/>
<Items name="Style">
<Item name="BorderStyle" type="integer" value="85"/>
<Item name="BorderWidth" type="integer" value="0"/>
<Item name="ChangeTextColor" type="boolean" value="false"/>
<Items name="Color">
<Item name="Item0" type="double" value="0.000000"/>
<Item name="Item1" type="double" value="0.000000"/>
<Item name="Item2" type="double" value="1.000000"/>
<Item name="Item3" type="double" value="0.000000"/>
<Item name="Space" type="integer" value="1"/>
</Items>
<Item name="Flags" type="integer" value="0"/>
<Item name="HighlightMode" type="integer" value="78"/>
<Items name="TextColor">
<Item name="Item0" type="double" value="0.000000"/>
<Item name="Item1" type="double" value="0.000000"/>
<Item name="Item2" type="double" value="1.000000"/>
<Item name="Item3" type="double" value="0.000000"/>
<Item name="Space" type="integer" value="1"/>
</Items>
</Items>
<Item name="TOCFormat" type="integer" value="3"/>
<Item name="UseControlFile" type="boolean" value="false"/>
<Item name="UseFileSpecificFilenames" type="boolean" value="false"/>
<Item name="UseLinkingContext" type="boolean" value="false"/>
<Item name="UseMargins" type="boolean" value="true"/>
<Item name="UseRegExp" type="boolean" value="false"/>
<Items name="ViewDest">
<Items name="CustomRect">
<Item name="Bottom" type="double" value="0.000000"/>
<Item name="Left" type="double" value="0.000000"/>
<Item name="Right" type="double" value="0.000000"/>
<Item name="Top" type="double" value="0.000000"/>
</Items>
<Item name="CustomZoom" type="double" value="1.000000"/>
<Item name="ProcessNamedDest" type="boolean" value="true"/>
<Item name="ZoomFit" type="integer" value="0"/>
</Items>
<Item name="WidgetFilter" type="integer" value="65535"/>
</Items>
</Command>
<Command name="EVMP_AutoBookmarkLinkToNumbers" pauseBefore="false">
<Items>
<Item name="ActionFilter" type="integer" value="3"/>
<Item name="ControlFile" type="text" value=""/>
<Item name="ConvertTextCase" type="integer" value="0"/>
<Item name="CountLineEnds" type="boolean" value="false"/>
<Item name="Description" type="text" value=""/>
<Item name="DictionaryFile" type="text" value=""/>
<Item name="FindWhat" type="text" value=""/>
<Item name="FirstPage" type="integer" value="0"/>
<Item name="FirstPageExpression" type="text" value="b:Index"/>
<Item name="Flags" type="integer" value="0"/>
<Items name="FontFilter">
<Item name="FontName" type="text" value=""/>
<Item name="FontSize" type="double" value="10.000000"/>
<Item name="FontSizeTolerance" type="double" value="0.500000"/>
<Item name="MatchFontName" type="boolean" value="false"/>
<Item name="MatchFontSize" type="boolean" value="false"/>
</Items>
<Item name="ImportExportFilename" type="text" value=""/>
<Item name="IncludeLinkAnnots" type="boolean" value="true"/>
<Item name="IncludeWidgetAnnots" type="boolean" value="true"/>
<Item name="LastPage" type="integer" value="-1"/>
<Item name="LastPageExpression" type="text" value="Last"/>
<Item name="LinkAttribute" type="integer" value="0"/>
<Item name="LinkingContext" type="text" value=""/>
<Items name="Margins">
<Item name="Bottom" type="double" value="753.800003"/>
<Item name="Left" type="double" value="18.000000"/>
<Item name="Right" type="double" value="588.199997"/>
<Item name="Top" type="double" value="22.300003"/>
</Items>
<Item name="MatchCase" type="boolean" value="false"/>
<Item name="MatchWholeWordsOnly" type="boolean" value="false"/>
<Item name="NewWindow" type="integer" value="0"/>
<Item name="PageNumberFormat" type="integer" value="0"/>
<Item name="PageOffset" type="integer" value="0"/>
<Item name="PageSelection" type="integer" value="2"/>
<Item name="PageSubset" type="integer" value="0"/>
<Item name="RepeatOperation" type="boolean" value="false"/>
<Item name="ReplaceWith" type="text" value=""/>
<Item name="SortOrder" type="integer" value="2"/>
<Items name="Style">
<Item name="BorderStyle" type="integer" value="85"/>
<Item name="BorderWidth" type="integer" value="0"/>
<Item name="ChangeTextColor" type="boolean" value="false"/>
<Items name="Color">
<Item name="Item0" type="double" value="0.000000"/>
<Item name="Item1" type="double" value="0.000000"/>
<Item name="Item2" type="double" value="1.000000"/>
<Item name="Item3" type="double" value="0.000000"/>
<Item name="Space" type="integer" value="1"/>
</Items>
<Item name="Flags" type="integer" value="0"/>
<Item name="HighlightMode" type="integer" value="78"/>
<Items name="TextColor">
<Item name="Item0" type="double" value="0.000000"/>
<Item name="Item1" type="double" value="0.000000"/>
<Item name="Item2" type="double" value="1.000000"/>
<Item name="Item3" type="double" value="0.000000"/>
<Item name="Space" type="integer" value="1"/>
</Items>
</Items>
<Item name="TOCFormat" type="integer" value="4"/>
<Item name="UseControlFile" type="boolean" value="false"/>
<Item name="UseFileSpecificFilenames" type="boolean" value="false"/>
<Item name="UseLinkingContext" type="boolean" value="false"/>
<Item name="UseMargins" type="boolean" value="true"/>
<Item name="UseRegExp" type="boolean" value="true"/>
<Items name="ViewDest">
<Items name="CustomRect">
<Item name="Bottom" type="double" value="0.000000"/>
<Item name="Left" type="double" value="0.000000"/>
<Item name="Right" type="double" value="0.000000"/>
<Item name="Top" type="double" value="0.000000"/>
</Items>
<Item name="CustomZoom" type="double" value="1.000000"/>
<Item name="ProcessNamedDest" type="boolean" value="true"/>
<Item name="ZoomFit" type="integer" value="0"/>
</Items>
<Item name="WidgetFilter" type="integer" value="65535"/>
</Items>
</Command>
<Command name="EVMP_AutoBookmarkAddLinksToURLsCommand" pauseBefore="false">
<Items>
<Item name="ActionFilter" type="integer" value="3"/>
<Item name="ControlFile" type="text" value=""/>
<Item name="ConvertTextCase" type="integer" value="0"/>
<Item name="CountLineEnds" type="boolean" value="false"/>
<Item name="Description" type="text" value=""/>
<Item name="DictionaryFile" type="text" value=""/>
<Item name="FindWhat" type="text" value=""/>
<Item name="FirstPage" type="integer" value="0"/>
<Item name="FirstPageExpression" type="text" value=""/>
<Item name="Flags" type="integer" value="0"/>
<Items name="FontFilter">
<Item name="FontName" type="text" value=""/>
<Item name="FontSize" type="double" value="10.000000"/>
<Item name="FontSizeTolerance" type="double" value="0.500000"/>
<Item name="MatchFontName" type="boolean" value="false"/>
<Item name="MatchFontSize" type="boolean" value="false"/>
</Items>
<Item name="ImportExportFilename" type="text" value=""/>
<Item name="IncludeLinkAnnots" type="boolean" value="true"/>
<Item name="IncludeWidgetAnnots" type="boolean" value="true"/>
<Item name="LastPage" type="integer" value="-1"/>
<Item name="LastPageExpression" type="text" value=""/>
<Item name="LinkAttribute" type="integer" value="0"/>
<Item name="LinkingContext" type="text" value=""/>
<Items name="Margins">
<Item name="Bottom" type="double" value="0.000000"/>
<Item name="Left" type="double" value="0.000000"/>
<Item name="Right" type="double" value="0.000000"/>
<Item name="Top" type="double" value="0.000000"/>
</Items>
<Item name="MatchCase" type="boolean" value="true"/>
<Item name="MatchWholeWordsOnly" type="boolean" value="false"/>
<Item name="NewWindow" type="integer" value="0"/>
<Item name="PageNumberFormat" type="integer" value="0"/>
<Item name="PageOffset" type="integer" value="0"/>
<Item name="PageSelection" type="integer" value="0"/>
<Item name="PageSubset" type="integer" value="0"/>
<Item name="RepeatOperation" type="boolean" value="false"/>
<Item name="ReplaceWith" type="text" value=""/>
<Item name="SortOrder" type="integer" value="2"/>
<Items name="Style">
<Item name="BorderStyle" type="integer" value="85"/>
<Item name="BorderWidth" type="integer" value="1"/>
<Item name="ChangeTextColor" type="boolean" value="true"/>
<Items name="Color">
<Item name="Item0" type="double" value="0.000000"/>
<Item name="Item1" type="double" value="0.000000"/>
<Item name="Item2" type="double" value="1.000000"/>
<Item name="Item3" type="double" value="0.000000"/>
<Item name="Space" type="integer" value="1"/>
</Items>
<Item name="Flags" type="integer" value="0"/>
<Item name="HighlightMode" type="integer" value="78"/>
<Items name="TextColor">
<Item name="Item0" type="double" value="0.000000"/>
<Item name="Item1" type="double" value="0.000000"/>
<Item name="Item2" type="double" value="1.000000"/>
<Item name="Item3" type="double" value="0.000000"/>
<Item name="Space" type="integer" value="1"/>
</Items>
</Items>
<Item name="TOCFormat" type="integer" value="4"/>
<Item name="UseControlFile" type="boolean" value="false"/>
<Item name="UseFileSpecificFilenames" type="boolean" value="false"/>
<Item name="UseLinkingContext" type="boolean" value="false"/>
<Item name="UseMargins" type="boolean" value="false"/>
<Item name="UseRegExp" type="boolean" value="true"/>
<Items name="ViewDest">
<Items name="CustomRect">
<Item name="Bottom" type="double" value="0.000000"/>
<Item name="Left" type="double" value="0.000000"/>
<Item name="Right" type="double" value="0.000000"/>
<Item name="Top" type="double" value="0.000000"/>
</Items>
<Item name="CustomZoom" type="double" value="1.000000"/>
<Item name="ProcessNamedDest" type="boolean" value="true"/>
<Item name="ZoomFit" type="integer" value="0"/>
</Items>
<Item name="WidgetFilter" type="integer" value="65535"/>
</Items>
</Command>
<Command name="EVMP_AutoBookmarkCreateLinksCommand" pauseBefore="false">
<Items>
<Item name="ActionFilter" type="integer" value="3"/>
<Item name="ControlFile" type="text" value=""/>
<Item name="ConvertTextCase" type="integer" value="0"/>
<Item name="CountLineEnds" type="boolean" value="false"/>
<Item name="Description" type="text" value=""/>
<Item name="DictionaryFile" type="text" value="C:\Users\ucblo\Desktop\Snap Manual Link Dictionary.ald"/>
<Item name="FindWhat" type="text" value=""/>
<Item name="FirstPage" type="integer" value="0"/>
<Item name="FirstPageExpression" type="text" value="b:AppendixA"/>
<Item name="Flags" type="integer" value="0"/>
<Items name="FontFilter">
<Item name="FontName" type="text" value=""/>
<Item name="FontSize" type="double" value="10.000000"/>
<Item name="FontSizeTolerance" type="double" value="0.500000"/>
<Item name="MatchFontName" type="boolean" value="false"/>
<Item name="MatchFontSize" type="boolean" value="false"/>
</Items>
<Item name="ImportExportFilename" type="text" value=""/>
<Item name="IncludeLinkAnnots" type="boolean" value="true"/>
<Item name="IncludeWidgetAnnots" type="boolean" value="true"/>
<Item name="LastPage" type="integer" value="-1"/>
<Item name="LastPageExpression" type="text" value="b:AppendixB"/>
<Item name="LinkAttribute" type="integer" value="0"/>
<Item name="LinkingContext" type="text" value=""/>
<Items name="Margins">
<Item name="Bottom" type="double" value="0.000000"/>
<Item name="Left" type="double" value="0.000000"/>
<Item name="Right" type="double" value="0.000000"/>
<Item name="Top" type="double" value="0.000000"/>
</Items>
<Item name="MatchCase" type="boolean" value="true"/>
<Item name="MatchWholeWordsOnly" type="boolean" value="false"/>
<Item name="NewWindow" type="integer" value="0"/>
<Item name="PageNumberFormat" type="integer" value="0"/>
<Item name="PageOffset" type="integer" value="0"/>
<Item name="PageSelection" type="integer" value="2"/>
<Item name="PageSubset" type="integer" value="0"/>
<Item name="RepeatOperation" type="boolean" value="false"/>
<Item name="ReplaceWith" type="text" value=""/>
<Item name="SortOrder" type="integer" value="2"/>
<Items name="Style">
<Item name="BorderStyle" type="integer" value="85"/>
<Item name="BorderWidth" type="integer" value="0"/>
<Item name="ChangeTextColor" type="boolean" value="true"/>
<Items name="Color">
<Item name="Item0" type="double" value="0.000000"/>
<Item name="Item1" type="double" value="0.000000"/>
<Item name="Item2" type="double" value="1.000000"/>
<Item name="Item3" type="double" value="0.000000"/>
<Item name="Space" type="integer" value="1"/>
</Items>
<Item name="Flags" type="integer" value="0"/>
<Item name="HighlightMode" type="integer" value="78"/>
<Items name="TextColor">
<Item name="Item0" type="double" value="0.000000"/>
<Item name="Item1" type="double" value="0.000000"/>
<Item name="Item2" type="double" value="1.000000"/>
<Item name="Item3" type="double" value="0.000000"/>
<Item name="Space" type="integer" value="1"/>
</Items>
</Items>
<Item name="TOCFormat" type="integer" value="4"/>
<Item name="UseControlFile" type="boolean" value="false"/>
<Item name="UseFileSpecificFilenames" type="boolean" value="false"/>
<Item name="UseLinkingContext" type="boolean" value="false"/>
<Item name="UseMargins" type="boolean" value="false"/>
<Item name="UseRegExp" type="boolean" value="false"/>
<Items name="ViewDest">
<Items name="CustomRect">
<Item name="Bottom" type="double" value="0.000000"/>
<Item name="Left" type="double" value="0.000000"/>
<Item name="Right" type="double" value="0.000000"/>
<Item name="Top" type="double" value="0.000000"/>
</Items>
<Item name="CustomZoom" type="double" value="1.000000"/>
<Item name="ProcessNamedDest" type="boolean" value="true"/>
<Item name="ZoomFit" type="integer" value="0"/>
</Items>
<Item name="WidgetFilter" type="integer" value="65535"/>
</Items>
</Command>
<Command name="WorkflowPlaybackSaveFiles" pauseBefore="false" promptUser="false">
<Items>
<Item name="AddToBaseName" type="boolean" value="false"/>
<Item name="DocSaveDestType" type="string" value="WorkflowPlaybackSave"/>
<Item name="DontOverwrite" type="boolean" value="true"/>
<Item name="EmbedIndex" type="boolean" value="false"/>
<Item name="FileVariation" type="integer" value="0"/>
<Item name="HandleOutput" type="boolean" value="true"/>
<Item name="InsertAfterBaseName" type="text" value=""/>
<Item name="InsertBeforeBaseName" type="text" value=""/>
<Item name="NumbericNaming" type="boolean" value="false"/>
<Item name="OptimizePDF" type="boolean" value="true"/>
<Item name="PresetName" type="text" value="Standard"/>
<Item name="RunPDFOptimizer" type="boolean" value="false"/>
</Items>
</Command>
<Command name="CompressPDFApp" pauseBefore="false"/>
</Group>
</Workflow>

Plik binarny nie jest wyświetlany.

Wyświetl plik

@ -22,7 +22,7 @@ Displayed figures: The manual is inconsistent between centering and left-justif
There is a special case of display alignment for pictures with a list as the shown result of an expression. These pictures take a lot of vertical space, so in some cases they are aligned right, with a text paragraph in a text box to the left of the speech balloon but overlapping horizontally with the actual block. See page 38 for two examples.
Pictures in line with text (typically a single block): Text Wrap > Tight, then Format Picture > Layout > Advanced left space to zero, right space to 0.6 inches. Then you can drag the block where it belongs in the text, but the fine positioning will require the cursor arrow keys. Put spaces in the text left or right of the picture where syntactically appropriate, i.e., where you'd put a space left or right of a word. To see why pictures taller than a single block are problematic in line, look at the second paragraph on page 7. It's layed out correctly, with respect to its meaning, but it /looks/ screwy. I should fix it.
Pictures in line with text (typically a single block): Text Wrap > Tight, then Format Picture > Layout > Advanced left space to zero, right space to 0.06 inches. Then you can drag the block where it belongs in the text, but the fine positioning will require the cursor arrow keys. Put spaces in the text left or right of the picture where syntactically appropriate, i.e., where you'd put a space left or right of a word. To see why pictures taller than a single block are problematic in line, look at the second paragraph on page 7. It's layed out correctly, with respect to its meaning, but it /looks/ screwy. I should fix it.
Writing style: Use exclamation points (other than in the name "Snap!") very sparingly; they should indicate danger, not enthusiasm. Absolutely do not suggest that something is "fun" or "interesting," etc. (But "more interesting" is okay when it means that you are giving a first, trivial example followed by an example that actually does something useful.)
@ -73,13 +73,13 @@ Yes, this is a 22-step process. :-(
3. Carefully check every line of the Table of Contents! Look for wrong fonts, missing labels (I, II, etc for level 1; A, B, etc for level 2; nothing for level 3), Chapter VII header at the top of the second column (if not, adjust spacing around chapters in the first column), Heading 2 letters restarting from A in each chapter.
4. Edit Table of Contents: On page 2, insert a page break before Appendix A; change the text of II.E ("if you lose...") to boldface italic. On page 3, insert a column break before Appendix B.
4. Edit Table of Contents: On page 2, insert a page break before Appendix A; change the text of II.E ("if you lose...") to boldface italic. On page 3, insert a column break before Appendix B. Manually fix the page number for the Index at the end of the ToC, which is not an official section (so it won't be numbered or lettered), so not automatically updated by Word.
5. Save again.
6. Scroll through the entire manual, looking for bad page breaks, mislabeled headings, and pictures out of place. (Some old pictures that are run in with text were inserted into their pages by putting a bunch of spaces in the text, setting the picture's "Wrap Text" to "None," and manually positioning the picture. These pictures will be out of place if the text on that page changes. To fix them, move the picture out of the way; delete the extra spaces (keeping one before and/or one after where the picture belongs, depending on nearby punctuation; set the picture's "Wrap Text" to "Tight"; then position the picture where it belongs. The last little bit of positioning should be done with the cursor arrow keys rather than with the mouse. Finally, go to
Format Picture > Layout > Advanced > Text Wrapping
and change the left distance to 0 and the right distance to 0.6 inches.)
and change the left distance to 0 and the right distance to 0.06 inches.)
7. If you made changes, save again, then go back to step 2.

BIN
help/SnapManual.pdf 100644 → 100755

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 68 KiB

Wyświetl plik

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 11 KiB

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 11 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 68 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 12 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 13 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 17 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 16 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 22 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 31 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 46 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 63 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 6.7 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 9.6 KiB

Wyświetl plik

@ -4,25 +4,28 @@
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>TurtleStitch</title>
<link rel="shortcut icon" href="stitchcode/favicon-32x32.png" type="image/png" />
<script src="src/morphic.js?version=2021-02-10"></script>
<script src="src/morphic.js?version=2022-01-28"></script>
<script src="src/symbols.js?version=2021-03-03"></script>
<script src="src/widgets.js?version=2021-01-05"></script>
<script src="src/blocks.js?version=2021-06-11"></script>
<script src="src/threads.js?version=2021-06-10"></script>
<script src="src/objects.js?version=2021-06-09"></script>
<script src="src/gui.js?version=2021-06-14"></script>
<script src="src/paint.js?version=2020-05-17"></script>
<script src="src/lists.js?version=2021-03-15"></script>
<script src="src/byob.js?version=2021-06-11"></script>
<script src="src/tables.js?version=2021-03-05"></script>
<script src="src/sketch.js?version=2020-07-13"></script>
<script src="src/widgets.js?version=2021-17-09"></script>
<script src="src/blocks.js?version=2022-01-30"></script>
<script src="src/threads.js?version=2022-01-31"></script>
<script src="src/objects.js?version=2022-02-07"></script>
<script src="src/scenes.js?version=2021-11-24"></script>
<script src="src/gui.js?version=2022-02-08"></script>
<script src="src/paint.js?version=2021-07-05"></script>
<script src="src/lists.js?version=2022-02-07"></script>
<script src="src/byob.js?version=2022-01-07"></script>
<script src="src/tables.js?version=2022-01-28"></script>
<script src="src/sketch.js?version=2021-11-03"></script>
<script src="src/video.js?version=2019-06-27"></script>
<script src="src/maps.js?version=2020-03-25"></script>
<script src="src/xml.js?version=2020-04-27"></script>
<script src="src/store.js?version=2021-06-10"></script>
<script src="src/locale.js?version=2021-06-11"></script>
<script src="src/maps.js?version=2021-06-15"></script>
<script src="src/extensions.js?version=2022-02-08"></script>
<script src="src/xml.js?version=2021-07-05"></script>
<script src="src/store.js?version=2022-01-02"></script>
<script src="src/locale.js?version=2022-01-31"></script>
<script src="src/cloud.js?version=2021-02-04"></script>
<!--<script src="src/api.js?version=2021-01-25"></script>-->
<script src="src/api.js?version=2022-01-03"></script>
<script src="src/sha512.js?version=2019-06-27"></script>
<script src="src/FileSaver.min.js?version=2019-06-27"></script>
@ -44,9 +47,9 @@
<script type="text/javascript" src="stitchcode/blocks.js?version=2021-12-14"></script>
<script type="text/javascript" src="stitchcode/threads.js?version=2021-12-14"></script>
<script type="text/javascript" src="stitchcode/objects.js?version=2022-03-14"></script>
<script type="text/javascript" src="stitchcode/turtlecloud.js?version=2021-12-14"></script>
<script type="text/javascript" src="stitchcode/gui.js?version=2022-03-14"></script>
<script type="text/javascript" src="stitchcode/store.js?version=2021-12-14"></script>
<script type="text/javascript" src="stitchcode/turtlecloud.js?version=2022-06-14"></script>
<script type="text/javascript" src="stitchcode/gui.js?version=2022-06-14"></script>
<script type="text/javascript" src="stitchcode/store.js?version=2022-06-14"></script>
<script type="text/javascript">
var world;

File diff suppressed because one or more lines are too long

Wyświetl plik

@ -4,6 +4,7 @@ VectorAndFill.xml Vectors, filling Blocks about vectors and filling
iteration-composition.xml Iteration, composition Traditional loop constructs (while, until, etc.) plus the Lisp "named let" (a generalization of FOR) plus functional iteration (repeated invocation of a function) and function composition.
list-utilities.xml List utilities Some standard functions on lists (reverse, sort, etc.)
colors.xml Colors and Crayons Incorporates the former crayon and set RGB libraries. Implements fair hues (more orange, less green, adds brown) and a linear color scale including grayscale and fair-hue-based shades.
crayons.xml Crayons Just the crayons, without the rest of the colors library. Fast and simple.
bignumbers.xml Bignums, rationals, complex #s The full Scheme numeric tower. "USE BIGNUMS <True>" to enable.
cases.xml Multi-branched conditional Like "switch" in C-like languages or "cond" in Lisp. Thanks to Nathan Dinsmore for inventing the idea of a separate block for each branch!
try-catch.xml Catch errors Run a script; if an error happens, instead of stopping the script with a red halo, run another script to handle the error. Also includes a block to cause an error with a message given as input. Also includes a block to create a script variable and give it a value.
@ -28,11 +29,10 @@ word-sentence.xml Words, sentences One of the big ideas in Logo that they left o
strings.xml Strings, Multi-line input Extract substrings of a string in various ways. In general, text inputs allow only a single line. The MULTILINE block accepts multi-line text input and can be used in text input slots of other blocks.
apl.xml APL primitives Adds features from the APL language supporting hyperblocks.
stream-tools.xml Streams (lazy lists) A variation on the list data type in which each list item isn't computed until it's needed, so you can construct million-item lists without really taking up all that time or memory, or even infinite-sized lists. (A block that reports all the prime numbers is included as an example.) See SICP 3.5 for a tutorial.
bar-charts.xml Bar charts Takes a table (typically from a CSV data set) as input and reports a summary of the table grouped by the field in the specified column number. The remaining three inputs are used only if the field values are numbers, in which case they can be grouped into buckets (e.g., decades, centuries, etc.). Those three inputs specify the smallest and largest values of interest and, most importantly, the width of a bucket (10 for decades, 100 for centuries). If the field isn't numeric, leave these three inputs empty or set them to zero. In that case, each string value of the field is its own bucket, and they appear sorted alphabetically. The block reports a new table with three columns. The first column contains the bucket name or smallest number. The second column contains a nonnegative integer that says how many records in the input table fall into this bucket. The third column is a subtable containing the actual records from the original table that fall into the bucket. If your buckets aren't of constant width, or you want to group by some function of more than one field, load the "Frequency Distribution Analysis" library instead.
bar-charts.xml Bar charts Takes a table (typically from a CSV data set) as input and reports a summary of the table grouped by the field in the specified column number. The remaining three inputs are used only if the field values are numbers, in which case they can be grouped into buckets (e.g., decades, centuries, etc.). Those three inputs specify the smallest and largest values of interest and, most importantly, the width of a bucket (10 for decades, 100 for centuries). If the field isn't numeric, leave these three inputs empty or set them to zero. In that case, each string value of the field is its own bucket, and they appear sorted alphabetically. The block reports a new table with three columns. The first column contains the bucket name or smallest number. The second column contains a nonnegative integer that says how many records in the input table fall into this bucket. The third column is a subtable containing the actual records from the original table that fall into the bucket. If your buckets aren't of constant width, or you want to group by some function of more than one field, load the "Frequency Distribution Analysis" library instead.
httpBlocks.xml Web services access (https) An extended version of the URL block that allows POST, PUT, and DELETE as well as GET requests, allows using the secure HTTPS protocol, and gives control over headers, etc. Also parses JSON data.
make-variables.xml Create variables Create and manage global/sprite/script variables in a script
bitwise.xml Bitwise operators Bitwise arithmetic operators for low-level bit manipulation.
~ ~
~ ~
~ ~
HummingbirdBlocks.xml Hummingbird robotics Control the Hummingbird robotics kit processor
leap-library.xml LEAP Motion controller Report hand positions from LEAP Motion controller (leapmotion.com).

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Plik diff jest za duży Load Diff

File diff suppressed because one or more lines are too long

Wyświetl plik

@ -0,0 +1,375 @@
makeGlobalObject();
SnapExtensions.primitives.set(
'big_switch(bool)',
loadBlocks
);
SnapExtensions.primitives.set(
'big_scheme(fn, num)',
function (which, num) {
function parseNumber (n) {
var fn = SchemeNumber.fn;
if (!fn['number?'](n)) {
n = '' + n;
try {
return parseENotation(n) || SchemeNumber(n);
} catch (err) {
return NaN;
}
}
return n;
}
function parseENotation (n) {
var fn = SchemeNumber.fn;
var numbers = n.match(/^(-?\d+\.?\d*|-?\.\d+)e(-?\d+)$/i);
if (!numbers) return null;
var coefficient = numbers[1];
var exponent = numbers[2];
return fn['*'](
coefficient,
fn.expt('10', exponent)
);
}
var fn=SchemeNumber.fn,
number=parseNumber(num);
switch (which) {
case 'number?':
case 'complex?':
return (fn['number?'](number));
case 'real?':
return (fn['real?'](number) || fn['real-valued?'](number));
case 'rational?':
return (fn['rational?'](number) || (fn['='](number, fn.rationalize(number, parseNumber('1.0e-5')))));
case 'integer?':
return (fn['integer?'](number) || fn['integer-valued?'](number));
case 'exact?':
case 'inexact?':
case 'finite?':
case 'infinite?':
case 'nan?':
case 'real-part':
case 'imag-part':
return (fn[which](number));
case 'magnitude':
return (fn.magnitude(number));
case 'angle':
return (fn.angle(number));
case 'numerator':
return (fn.numerator(number));
case 'denominator':
return (fn.denominator(number));
case 'exact':
return (fn.exact(number));
case 'inexact':
return (fn.inexact(number));
}
}
);
function makeGlobalObject () {
window.bigNumbers = {
originalEvaluate: InputSlotMorph.prototype.evaluate,
originalChangeVar: VariableFrame.prototype.changeVar,
originalPrims: {
reportBasicSum: Process.prototype.reportBasicSum,
reportBasicDifference: Process.prototype.reportBasicDifference,
reportBasicProduct: Process.prototype.reportBasicProduct,
reportBasicQuotient: Process.prototype.reportBasicQuotient,
reportBasicPower: Process.prototype.reportBasicPower,
reportBasicModulus: Process.prototype.reportBasicModulus,
reportBasicAtan2: Process.prototype.reportBasicAtan2,
reportRound: Process.prototype.reportRound,
reportBasicMin: Process.prototype.reportBasicMin,
reportBasicMax: Process.prototype.reportBasicMax,
reportBasicRandom: Process.prototype.reportBasicRandom,
reportBasicLessThan: Process.prototype.reportBasicLessThan,
reportBasicGreaterThan: Process.prototype.reportBasicGreaterThan,
reportEquals: Process.prototype.reportEquals,
reportIsIdentical: Process.prototype.reportIsIdentical,
reportMonadic: Process.prototype.reportMonadic
}
};
}
function loadBlocks (useBigNums) {
var fn = SchemeNumber.fn;
var originalPrims = window.bigNumbers.originalPrims;
if (useBigNums) {
InputSlotMorph.prototype.evaluate = function () {
var contents = this.contents();
if (this.selectedBlock) {
return this.selectedBlock;
}
if (this.constant) {
return this.constant;
}
if (this.isNumeric) {
return parseNumber(contents.text || '0');
}
return contents.text;
};
VariableFrame.prototype.changeVar = function (name, delta, sender) {
var frame = this.find(name),
value,
newValue;
if (frame) {
value = parseNumber(frame.vars[name].value);
newValue = Number.isNaN(value) ? delta : fn['+'](value, parseNumber(delta));
if (sender instanceof SpriteMorph &&
(frame.owner instanceof SpriteMorph) &&
(sender !== frame.owner)) {
sender.shadowVar(name, newValue);
} else {
frame.vars[name].value = newValue;
}
}
};
Object.assign(Process.prototype, {
reportBasicSum: function (a, b) {
a = parseNumber(a);
b = parseNumber(b);
if (Number.isNaN(a) || Number.isNaN(b)) return NaN;
return fn['+'](a, b);
},
reportBasicDifference: function (a, b) {
a = parseNumber(a);
b = parseNumber(b);
if (Number.isNaN(a) || Number.isNaN(b)) return NaN;
return fn['-'](a, b);
},
reportBasicProduct: function (a, b) {
a = parseNumber(a);
b = parseNumber(b);
if (Number.isNaN(a) || Number.isNaN(b)) return NaN;
return fn['*'](a, b);
},
reportBasicQuotient: function (a, b) {
a = parseNumber(a);
b = parseNumber(b);
if (fn['='](b, '0') && !fn['='](a, '0')) {
return (fn['<'](a, '0') ? SchemeNumber('-inf.0') : SchemeNumber('+inf.0'))
};
if (Number.isNaN(a) || Number.isNaN(b) || fn['='](b, '0')) return NaN;
return fn['/'](a, b);
},
reportBasicPower: function (a, b) {
a = parseNumber(a);
b = parseNumber(b);
if (Number.isNaN(a) || Number.isNaN(b)) return NaN;
return fn['expt'](a, b);
},
reportBasicModulus: function (a, b) {
a = parseNumber(a);
b = parseNumber(b);
if (Number.isNaN(a) || Number.isNaN(b)) return NaN;
var result = fn.mod(a, b);
if (fn['<'](b, '0') && fn['>'](result, '0')) {
result = fn['+'](result, b);
}
return result;
},
reportBasicAtan2: function (a, b) {
a = parseNumber(a);
b = parseNumber(b);
if (Number.isNaN(a) || Number.isNaN(b)) return NaN;
return degrees(fn.atan2(a, b));
},
reportRound: function (n) {
if (this.enableHyperOps) {
if (n instanceof List) {
return n.map(each => this.reportRound(each));
}
}
n = parseNumber(n);
if (Number.isNaN(n)) return NaN;
x = fn.round(n);
if (fn["integer?"](x)) return fn["exact"](x);
return x;
},
reportBasicMin: function (a, b) {
x = parseNumber(a);
y = parseNumber(b);
if (Number.isNaN(x) || Number.isNaN(y)) {
return a<b ? a : b;
}
return fn['<'](x, y) ? x : y;
},
reportBasicMax: function (a, b) {
x = parseNumber(a);
y = parseNumber(b);
if (Number.isNaN(x) || Number.isNaN(y)) {
return a>b ? a : b;
}
return fn['>'](x, y) ? x : y;
},
reportBasicRandom: function (min, max) {
var floor = parseNumber(min),
ceil = parseNumber(max);
if (Number.isNaN(floor) || Number.isNaN(ceil)) return NaN;
if (!fn['='](fn.mod(floor, '1'), '0') || !fn['='](fn.mod(ceil, '1'), '0')) {
// One of the numbers isn't whole. Include the decimal.
return fn['+'](
fn['*'](
Math.random(),
fn['-'](ceil, floor)
),
floor
);
}
var size = Math.ceil(max.toString(10).length/14);
const array = new Uint32Array(size);
window.crypto.getRandomValues(array);
var digits="";
for (i=0;i<size;i++) {
digits = digits + array[i].toString();
}
return fn.floor(
fn['+'](
// fn['*'](
// Math.random(),
fn.mod(parseNumber(digits),
fn['+'](
fn['-'](ceil, floor),
'1'
)
),
floor
)
);
},
reportBasicLessThan: function (a, b) {
x = parseNumber(a);
y = parseNumber(b);
if (Number.isNaN(x) || Number.isNaN(y)) return a<b;
return fn['<'](x, y);
},
reportBasicGreaterThan: function (a, b) {
x = parseNumber(a);
y = parseNumber(b);
if (Number.isNaN(x) || Number.isNaN(y)) return a>b;
return fn['>'](x, y);
},
reportEquals: function (a, b) {
x = parseNumber(a);
y = parseNumber(b);
if (Number.isNaN(x) || Number.isNaN(y)) return snapEquals(a, b);
return fn['='](x, y);
},
reportIsIdentical: function (a, b) {
x = parseNumber(a);
y = parseNumber(b);
if (Number.isNaN(x) || Number.isNaN(y)) return originalPrims.reportIsIdentical.call(this, a, b);
return fn['='](x, y);
},
reportMonadic: function (fname, n) {
if (this.enableHyperOps) {
if (n instanceof List) {
return n.map(each => this.reportMonadic(fname, each));
}
}
n = parseNumber(n);
if (Number.isNaN(n)) return NaN;
switch (Process.prototype.inputOption(fname)) {
case 'abs':
return fn.abs(n);
case 'neg':
return fn['-'](n);
case 'sign':
if (fn['='](n,SchemeNumber('0'))) return SchemeNumber('0');
return fn['/'](n, fn.abs(n));
case 'ceiling':
return fn.ceiling(n);
case 'floor':
return fn.floor(n);
case 'sqrt':
return sqrt(n);
case 'sin':
return fn.sin(radians(n));
case 'cos':
return fn.cos(radians(n));
case 'tan':
return fn.tan(radians(n));
case 'asin':
return degrees(fn.asin(n));
case 'acos':
return degrees(fn.acos(n));
case 'atan':
return degrees(fn.atan(n));
case 'ln':
return fn.log(n);
case 'log':
return fn.log(n, '10');
case 'lg':
return fn.log(n, '2');
case 'e^':
return fn.exp(n);
case '10^':
return fn.expt('10', n);
case '2^':
return fn.expt('2', n);
case 'id':
return n;
default:
return SchemeNumber('0');
}
}
});
} else {
InputSlotMorph.prototype.evaluate = window.bigNumbers.originalEvaluate;
VariableFrame.prototype.changeVar = window.bigNumbers.originalChangeVar;
Object.assign(Process.prototype, originalPrims);
}
// +++ done = true;
}
function parseNumber (n) {
var fn = SchemeNumber.fn;
if (!fn['number?'](n)) {
n = '' + n;
try {
return parseENotation(n) || SchemeNumber(n);
} catch (err) {
return NaN;
}
}
return n;
}
function parseENotation (n) {
var fn = SchemeNumber.fn;
var numbers = n.match(/^(-?\d+\.?\d*|-?\.\d+)e(-?\d+)$/i);
if (!numbers) return null;
var coefficient = numbers[1];
var exponent = numbers[2];
return fn['*'](
coefficient,
fn.expt('10', exponent)
);
}
function sqrt (n) {
var fn = SchemeNumber.fn;
if (!fn['exact?'](n) || !fn['rational?'](n) || fn['<'](n,'0')) return fn.sqrt(n);
var rootNumerator = fn['exact-integer-sqrt'](fn.numerator(n));
if (!fn['='](rootNumerator[1], '0')) return fn.sqrt(n);
var rootDenominator = fn['exact-integer-sqrt'](fn.denominator(n));
if (!fn['='](rootDenominator[1], '0')) return fn.sqrt(n);
return fn['/'](rootNumerator[0], rootDenominator[0]);
}

Wyświetl plik

@ -0,0 +1 @@
<blocks app="Snap! 7, https://snap.berkeley.edu" version="2"><block-definition s="¬ %&apos;a&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>bit_not(a)</l><list><block var="a"/></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; ∧ %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>bit_and(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>bit_or(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; ⊻ %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>bit_xor(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; &lt;&lt; %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>bit_left_shift(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; &gt;&gt; %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>bit_right_shift(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; &gt;&gt;&gt; %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>bit_unsigned_right_shift(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition></blocks>

Wyświetl plik

@ -1 +1 @@
<blocks app="Snap! 6, https://snap.berkeley.edu" version="1"><block-definition s="cases: if %&apos;test&apos; then %&apos;result&apos; %&apos;more&apos;" type="command" category="control"><comment w="262" collapsed="false">Multi-branched conditional.&#xD;&#xD;If the first (Boolean) input is True, then the script in&#xD;the second (C-slot) input is run, and this block stops.&#xD;&#xD;Additional tests can be added by putting one or more&#xD;ELSE IF blocks in the third (variadic) Boolean slot.&#xD;Use the arrowheads to get the number of Boolean&#xD;slots you need. Each ELSE IF block provides a Boolean&#xD;slot for a condition to test and a script slot for what to do&#xD;if the condition is True. You can put an ELSE block in&#xD;the last Boolean input to CASES for a script to run if&#xD;all the tests turn out False.&#xD;&#xD;As soon as a condition is True, no further tests are done&#xD;and no further scripts are run.</comment><header></header><code></code><translations>pt:se _ , então _ _&#xD;</translations><inputs><input type="%b"></input><input type="%cs"></input><input type="%mult%boolUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doRun"><block var="result"/><list></list></block></script><script><custom-block s="catch %upvar %cs"><l>tag</l><script><block s="doForEach"><l>item</l><block var="more"/><script><block s="doIf"><block s="evaluate"><block var="item"/><list></list></block><script><custom-block s="throw %s"><block var="tag"/></custom-block></script></block></script></block></script></custom-block></script></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>pt:captura _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doRun"><block var="action"/><list></list></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;cont&apos;" type="command" category="control"><header></header><code></code><translations>pt:lança _&#xD;</translations><inputs><input type="%s">catchtag</input></inputs><script><block s="doRun"><block var="cont"/><list></list></block></script></block-definition><block-definition s="else if %&apos;test&apos; then %&apos;action&apos;" type="predicate" category="control"><comment w="176" collapsed="false">For use with the CASES block.&#xD;See its help message.</comment><header></header><code></code><translations>pt:senão, se _ , então _&#xD;</translations><inputs><input type="%b"></input><input type="%cs"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doRun"><block var="action"/><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="else %&apos;action&apos;" type="predicate" category="control"><comment w="176" collapsed="false">For use with the CASES block.&#xD;See its help message.</comment><header></header><code></code><translations>pt:senão, _&#xD;</translations><inputs><input type="%cs"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition></blocks>
<blocks app="Snap! 7, https://snap.berkeley.edu" version="2"><block-definition s="cases: if %&apos;test&apos; then %&apos;result&apos; %&apos;more&apos;" type="command" category="control"><comment w="262" collapsed="false">Multi-branched conditional.&#xD;&#xD;If the first (Boolean) input is True, then the script in&#xD;the second (C-slot) input is run, and this block stops.&#xD;&#xD;Additional tests can be added by putting one or more&#xD;ELSE IF blocks in the third (variadic) Boolean slot.&#xD;Use the arrowheads to get the number of Boolean&#xD;slots you need. Each ELSE IF block provides a Boolean&#xD;slot for a condition to test and a script slot for what to do&#xD;if the condition is True. You can put an ELSE block in&#xD;the last Boolean input to CASES for a script to run if&#xD;all the tests turn out False.&#xD;&#xD;As soon as a condition is True, no further tests are done&#xD;and no further scripts are run.</comment><header></header><code></code><translations>pt:se _ , então _ _&#xD;ca:casos: si _ llavors _ _&#xD;</translations><inputs><input type="%b"></input><input type="%cs"></input><input type="%mult%boolUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doRun"><block var="result"/><list></list></block></script><script><custom-block s="catch %upvar %cs"><l>tag</l><script><block s="doForEach"><l>item</l><block var="more"/><script><block s="doIf"><block s="evaluate"><block var="item"/><list></list></block><script><custom-block s="throw %s"><block var="tag"/></custom-block></script></block></script></block></script></custom-block></script></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>pt:captura _ _&#xD;ca:agafa _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doRun"><block var="action"/><list></list></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;cont&apos;" type="command" category="control"><header></header><code></code><translations>pt:lança _&#xD;ca:llança _&#xD;</translations><inputs><input type="%s">catchtag</input></inputs><script><block s="doRun"><block var="cont"/><list></list></block></script></block-definition><block-definition s="else if %&apos;test&apos; then %&apos;action&apos;" type="predicate" category="control"><comment w="176" collapsed="false">For use with the CASES block.&#xD;See its help message.</comment><header></header><code></code><translations>pt:senão, se _ , então _&#xD;ca:altrament si _ llavors _&#xD;</translations><inputs><input type="%b"></input><input type="%cs"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doRun"><block var="action"/><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="else %&apos;action&apos;" type="predicate" category="control"><comment w="176" collapsed="false">For use with the CASES block.&#xD;See its help message.</comment><header></header><code></code><translations>pt:senão, _&#xD;ca:si no _&#xD;</translations><inputs><input type="%cs"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition></blocks>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Wyświetl plik

@ -1 +1 @@
<blocks app="Snap! 6, https://snap.berkeley.edu" version="1"><block-definition s="store key: %&apos;key&apos; value: %&apos;value&apos; in browser" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>key</l><l>value</l><l>proc</l></list><l>proc.assertType(key, [&apos;text&apos;, &apos;number&apos;]);&#xD;proc.assertType(value, [&apos;text&apos;, &apos;number&apos;]);&#xD;window.localStorage.setItem(&apos;-snap-project-&apos; + key, &apos;&apos; + value);</l></block><list><block var="key"/><block var="value"/></list></block></script></block-definition><block-definition s="stored data in browser" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>var str = window.localStorage,&#xD; len = str.length,&#xD; result = [],&#xD; key,&#xD; i;&#xD;for (i = 0; i &lt; len; i += 1) {&#xD; key = str.key(i);&#xD; if (key.startsWith(&apos;-snap-project-&apos;)) {&#xD; result.push(new List([key.slice(14), str.getItem(key)]));&#xD; }&#xD;}&#xD;return new List(result);</l></block><list></list></block></block></script></block-definition><block-definition s="remove key: %&apos;key&apos; in browser" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>key</l><l>proc</l></list><l>proc.assertType(key, [&apos;text&apos;, &apos;number&apos;]);&#xD;window.localStorage.removeItem(&apos;-snap-project-&apos; + key);</l></block><list><block var="key"/></list></block></script></block-definition><block-definition s="clear data in browser" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="doForEach"><l>item</l><custom-block s="stored data in browser"></custom-block><script><custom-block s="remove key: %s in browser"><block s="reportListItem"><l>1</l><block var="item"/></block></custom-block></script></block></script></block></script></block-definition><block-definition s="get value from key: %&apos;key&apos; in browser" type="reporter" category="other"><comment w="199.33333333333334" collapsed="false">Reports the value previously stored under&#xD;the input key in the browser&apos;s local storage.&#xD;Reports False if the key is not found.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>key</l></list><l>var str = window.localStorage,&#xD; result = str.getItem(&apos;-snap-project-&apos;+key);&#xD;if (!result) {&#xD; return false;&#xD;}&#xD;return result;</l></block><list><block var="key"/></list></block></block></script></block-definition></blocks>
<blocks app="Snap! 7, https://snap.berkeley.edu" version="2"><block-definition s="store key: %&apos;key&apos; value: %&apos;value&apos; in browser" type="command" category="other"><header></header><code></code><translations>ca:desa clau: _ amb valor: _ al navegador&#xD;</translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>db_store(key, val)</l><list><block var="key"/><block var="value"/></list></block></script></block-definition><block-definition s="stored data in browser" type="reporter" category="other"><header></header><code></code><translations>ca:dades desades al navegador&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>db_getall</l><list></list></block></block></script></block-definition><block-definition s="remove key: %&apos;key&apos; in browser" type="command" category="other"><header></header><code></code><translations>ca:esborra clau: _ del navegador&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>db_remove(key)</l><list><block var="key"/></list></block></script></block-definition><block-definition s="clear data in browser" type="command" category="other"><header></header><code></code><translations>ca:esborra dades del navegador&#xD;</translations><inputs></inputs><script><block s="doWarp"><script><block s="doForEach"><l>item</l><custom-block s="stored data in browser"></custom-block><script><custom-block s="remove key: %s in browser"><block s="reportListItem"><l>1</l><block var="item"/></block></custom-block></script></block></script></block></script></block-definition><block-definition s="get value from key: %&apos;key&apos; in browser" type="reporter" category="other"><comment w="199.33333333333334" collapsed="false">Reports the value previously stored under&#xD;the input key in the browser&apos;s local storage.&#xD;Reports False if the key is not found.</comment><header></header><code></code><translations>ca:obté valor de clau: _ al navegador&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>db_get(key)</l><list><block var="key"/></list></block></block></script></block-definition></blocks>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Wyświetl plik

@ -1 +1 @@
<blocks app="Snap! 6, https://snap.berkeley.edu" version="1"><block-definition s="do in parallel %&apos;actions&apos; and wait" type="command" category="control"><comment w="238.66666666666666" collapsed="false">Accepts any number of scripts as inputs. Launches a separate thread for each of them, so they are done in parallel, then waits for them all to complete.&#xD;&#xD;This doesn&apos;t change how the Snap! scheduler works; the threads are not truly asynchronous. And there is no increase in speed. Rather, the point of this block is to allow starting synchronized but independent scripts.</comment><header></header><code></code><translations>pt:executa _ em paralelo e espera&#xD;</translations><inputs><input type="%mult%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>threads</l></list></block><block s="doSetVar"><l>threads</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>is running?</l></list></block><block s="doSetVar"><l>is running?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="fork"><block s="reifyScript"><script><block s="doRun"><block var="each script"/><list></list></block><block s="doSetVar"><l>is running?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><list></list></block><block s="doReport"><block s="reifyScript"><script><block s="doReport"><block var="is running?"/></block></script><list></list></block></block></script><list></list></block><list></list></block></autolambda><list><l>each script</l></list></block><block var="actions"/></block></block><block s="doWaitUntil"><block s="reportListIsEmpty"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="evaluate"><block var="test"/><list></list></block></autolambda><list><l>test</l></list></block><block var="threads"/></block></block></block></script></block-definition><block-definition s="do in parallel %&apos;actions&apos;" type="command" category="control"><comment w="238.66666666666666" collapsed="false">Accepts any number of scripts as inputs. Launches a separate thread for each of them, so they are done in parallel, then continues with the current script while they all run.&#xD;&#xD;This doesn&apos;t change how the Snap! scheduler works; the threads are not truly asynchronous. And there is no increase in speed. Rather, the point of this block is to allow starting synchronized but independent scripts.</comment><header></header><code></code><translations>pt:executa _ em paralelo&#xD;</translations><inputs><input type="%mult%cs"></input></inputs><script><block s="doIf"><block s="reportGreaterThan"><block s="reportListLength"><block var="actions"/></block><l>0</l></block><script><block s="fork"><block s="reportListItem"><l>1</l><block var="actions"/></block><list></list></block><custom-block s="do in parallel %mult%cs"><block s="reportCDR"><block var="actions"/></block></custom-block></script></block></script></block-definition></blocks>
<blocks app="Snap! 7, https://snap.berkeley.edu" version="2"><block-definition s="do in parallel %&apos;actions&apos; and wait" type="command" category="control"><comment x="0" y="0" w="238.66666666666666" collapsed="false">Accepts any number of scripts as inputs. Launches a separate thread for each of them, so they are done in parallel, then waits for them all to complete.&#xD;&#xD;This doesn&apos;t change how the Snap! scheduler works; the threads are not truly asynchronous. And there is no increase in speed. Rather, the point of this block is to allow starting synchronized but independent scripts.</comment><header></header><code></code><translations>pt:executa _ em paralelo e espera&#xD;ca:executa en paral·lel _ i espera&#xD;</translations><inputs><input type="%mult%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>threads</l></list></block><block s="doSetVar"><l>threads</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>is running?</l></list></block><block s="doSetVar"><l>is running?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="fork"><block s="reifyScript"><script><block s="doRun"><block var="each script"/><list></list></block><block s="doSetVar"><l>is running?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><list></list></block><block s="doReport"><block s="reifyScript"><script><block s="doReport"><block var="is running?"/></block></script><list></list></block></block></script><list></list></block><list></list></block></autolambda><list><l>each script</l></list></block><block var="actions"/></block></block><block s="doWaitUntil"><block s="reportListIsEmpty"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="evaluate"><block var="test"/><list></list></block></autolambda><list><l>test</l></list></block><block var="threads"/></block></block></block></script></block-definition><block-definition s="do in parallel %&apos;actions&apos;" type="command" category="control"><comment x="0" y="0" w="238.66666666666666" collapsed="false">Accepts any number of scripts as inputs. Launches a separate thread for each of them, so they are done in parallel, then continues with the current script while they all run.&#xD;&#xD;This doesn&apos;t change how the Snap! scheduler works; the threads are not truly asynchronous. And there is no increase in speed. Rather, the point of this block is to allow starting synchronized but independent scripts.</comment><header></header><code></code><translations>pt:executa _ em paralelo&#xD;ca:executa en paral·lel _&#xD;</translations><inputs><input type="%mult%cs"></input></inputs><script><block s="doIf"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="actions"/></block><l>0</l></block><script><block s="fork"><block s="reportListItem"><l>1</l><block var="actions"/></block><list></list></block><custom-block s="do in parallel %mult%cs"><block s="reportCDR"><block var="actions"/></block></custom-block></script></block></script></block-definition></blocks>

Wyświetl plik

@ -1 +1 @@
<blocks app="Snap! 6.0 beta, https://snap.berkeley.edu" version="1"><block-definition s="$camera snap" type="reporter" category="sensing"><comment x="0" y="0" w="216" collapsed="false">takes a snapshot with the webcam and reports it as a new costume, or zero if the user cancels</comment><header></header><code></code><translations>pt:$camera a imagem actual do vídeo&#xD;</translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>test</l><l>pic</l></list></block><block s="doSetVar"><l>test</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>var camDialog,&#xD; result = false;&#xD;&#xD;camDialog = new CamSnapshotDialogMorph(&#xD; this.parentThatIsA(IDE_Morph),&#xD; this,&#xD; function () {result = null; },&#xD; function (costume) {&#xD; result = costume;&#xD; this.close();&#xD; }&#xD;);&#xD;&#xD;camDialog.key = &apos;camera&apos;;&#xD;camDialog.popUp(this.world());&#xD;return function () {return result; };</l></block><list></list></block></block><block s="doWaitUntil"><block s="evaluate"><block s="reifyScript"><script><block s="doSetVar"><l>pic</l><block s="evaluate"><block var="test"/><list></list></block></block><block s="doReport"><block s="reportNot"><block s="reportEquals"><block var="pic"/><block s="reportBoolean"><l><bool>false</bool></l></block></block></block></block></script><list></list></block><list></list></block></block><block s="doReport"><block var="pic"/></block></script></block-definition></blocks>
<blocks app="Snap! 6, https://snap.berkeley.edu" version="1"><block-definition s="$camera snap" type="reporter" category="sensing"><comment w="216" collapsed="false">takes a snapshot with the webcam and reports it as a new costume, or zero if the user cancels</comment><header></header><code></code><translations>pt:$camera a imagem actual do vídeo&#xD;</translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>callback</l><l>pic</l></list></block><block s="doSetVar"><l>callback</l><block s="reportApplyExtension"><l>mda_snap</l><list></list></block></block><block s="doWaitUntil"><block s="evaluate"><block s="reifyScript"><script><block s="doSetVar"><l>pic</l><block s="evaluate"><block var="callback"/><list></list></block></block><block s="doReport"><block s="reportNot"><block s="reportEquals"><block var="pic"/><block s="reportBoolean"><l><bool>false</bool></l></block></block></block></block></script><list></list></block><list></list></block></block><block s="doReport"><block var="pic"/></block></script></block-definition></blocks>

Wyświetl plik

@ -0,0 +1 @@
<blocks app="Snap! 7dev, https://snap.berkeley.edu" version="2"><block-definition s="WEBSer $flag-1-0-255-0 open %&apos;baudRate&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%n">115200<options>9600&#xD;19200&#xD;38400&#xD;57600&#xD;115200</options></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>srl_open(baud, buffer)</l><list><block var="baudRate"/><l>15000</l></list></block></block></script></block-definition><block-definition s="WEBSer $flag-1-255-0-0 close %&apos;port&apos;" type="command" category="other"><comment x="0" y="0" w="90" collapsed="true">Close port.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">port</input></inputs><script><block s="doApplyExtension"><l>srl_close(port)</l><list><block var="port"/></list></block></script></block-definition><block-definition s="WEBSer $flash-1-0-255-0 read %&apos;port&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%s">port</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>srl_read(port)</l><list><block var="port"/></list></block></block></script></block-definition><block-definition s="WEBSer $flash-1-0-255-0 write %&apos;port&apos; %&apos;bytes&apos;" type="command" category="other"><comment x="0" y="0" w="193.33528645833292" collapsed="true">Write to the port a list containing numbers</comment><header></header><code></code><translations></translations><inputs><input type="%s">port</input><input type="%l"></input></inputs><script><block s="doApplyExtension"><l>srl_write(port, bytes)</l><list><block var="port"/><block var="bytes"/></list></block></script></block-definition></blocks>

Wyświetl plik

@ -0,0 +1,162 @@
/* Signada - a network remote control procotol
* ===========================================
* By Bernat Romagosa, August 2021
*
* Enables Snap! to talk to wifi-enabled
* MicroBlocks devices.
*
* This protocol was designed for the Citilab
* ED1 microcontroller board, but it can be
* used for any ESP32 board that has a display
* and two buttons, like the M5Stack.
*
* First, load the Signada example project
* from the MicroBlocks IDE and follow the
* instructions on the long comment in that
* project.
*
* Get MicroBlocks at https://microblocks.fun
*/
SnapExtensions.primitives.set(
'sgd_connect(ip)',
function (ip) {
if (location.protocol.indexOf('https') > -1) {
throw new Error(
'Signada requires an HTTP only instance of Snap!, like:\n' +
'http://extensions.snap.berkeley.edu'
);
}
var socket = new WebSocket('ws://' + ip + ':81'),
stage = this.parentThatIsA(StageMorph),
cache;
stage.signada = {};
stage.signada.ip = ip;
stage.signada.socket = socket;
stage.signada.responses = {};
stage.signada.responseCache = {};
stage.signada.lastID = 0;
stage.signada.eventListener = function (event) {
response = JSON.parse(event.data);
if (Array.isArray(response[1])) {
response[1] = new List(response[1]);
}
stage.signada.responses[response[0]] = response[1];
// Cache the response for when hat blocks
cache = Object.values(stage.signada.responseCache).find(
each => each.requestID === response[0]
);
if (cache) {
cache.value = response[1];
cache.updating = false;
}
};
socket.addEventListener('message', stage.signada.eventListener);
}
);
SnapExtensions.primitives.set(
'sgd_disconnect()',
function () {
var stage = this.parentThatIsA(StageMorph);
if (SnapExtensions.primitives.get('sgd_connected()').call(this)) {
stage.signada.socket.removeEventListener(
'message',
stage.signada.eventListener
);
stage.signada.socket.close();
}
}
);
SnapExtensions.primitives.set(
'sgd_connected()',
function () {
var signada = this.parentThatIsA(StageMorph).signada;
return (signada !== undefined) && (signada.socket.readyState === 1);
}
);
SnapExtensions.primitives.set(
'sgd_call(blockname, params, defaultresponse)',
function (blockname, params, defaultresponse, proc) {
var signada = this.parentThatIsA(StageMorph).signada,
hatBlock = proc.topBlock.parentThatIsA(HatBlockMorph),
needsCaching = !isNil(hatBlock) &&
(hatBlock.selector === 'receiveCondition'),
updatingCache = (signada.responseCache[blockname]?.updating),
defaultresponse =
(defaultresponse === undefined) ? 0 : defaultresponse;
if (!SnapExtensions.primitives.get('sgd_connected()').call(this)) {
throw new Error(
'You are not connected to any device.\n' +
'Please use the connect block to establish a connection and' +
'try again.'
);
}
if (!proc.requestID) {
if (!needsCaching || !updatingCache) {
proc.startTime = new Date();
proc.requestID = signada.lastID;
// Cache responses for reporters inside when hat blocks
if (signada.responseCache[blockname]) {
// Let's mark the cached response as updating so we don't
// request it again until we get a response from the device
signada.responseCache[blockname].updating = true;
signada.responseCache[blockname].requestID = proc.requestID;
signada.responseCache[blockname].requestTime =
(new Date()).getTime();
} else {
// Never sent a similar request before. Let's give it a
// default value.
signada.responseCache[blockname] = {
requestID: proc.requestID,
updating: true,
value: defaultresponse,
requestTime: (new Date()).getTime()
};
}
signada.socket.send(
JSON.stringify([signada.lastID, blockname, params.contents])
);
// Last ID wraps at 1.000.000 to make sure it doesn't grow too
// much and doesn't wrap too early
signada.lastID = (signada.lastID + 1) % 1000000;
}
} else {
if (signada.responses[proc.requestID] !== undefined) {
var response = signada.responses[proc.requestID];
proc.requestID = null;
return response;
} else if ((new Date() - proc.startTime) > 1000) {
// Timeout after 1 second. Return last cached value
proc.requestID = null;
signada.responseCache[blockname].updating = false;
return signada.responseCache[blockname].value;
}
}
if (needsCaching) {
// This reporter needs caching. Let's return the last value for this
// particular block name.
if (updatingCache &&
(((new Date()).getTime() -
signada.responseCache[blockname].requestTime) > 250)) {
// We've been waiting for the cache to update for a long time.
// Let's invalidate it so the value is requested again.
signada.responseCache[blockname].updating = false;
}
return signada.responseCache[blockname].value;
}
proc.pushContext('doYield');
proc.pushContext();
}
);

File diff suppressed because one or more lines are too long

Wyświetl plik

@ -1 +1 @@
<blocks app="Snap! 5.0, http://snap.berkeley.edu" version="1"><block-definition s="speak %&apos;text&apos; with %&apos;lang&apos; accent $nl and pitch %&apos;pitch&apos; rate %&apos;rate&apos;" type="command" category="sound"><header></header><code></code><translations>de:sprich _ mit _ Aussprache _ und Höhe _ Geschwindigkeit _&#xD;pt:fala _ na língua _ _ com tom _ e velocidade _&#xD;</translations><inputs><input type="%s">Hello, World!</input><input type="%txt">en-US<options>العربية=ar&#xD;Български=bg&#xD;বাংলা=bn&#xD;Català=ca&#xD;Català - Valencià=ca-VA&#xD;Česky=cs&#xD;Deutsch=de&#xD;Dansk=dk&#xD;Ελληνικά=el&#xD;English-American=en-US&#xD;English-British=en-GB&#xD;Esperanto=eo&#xD;Español=es&#xD;Eesti=et&#xD;Euskara=eu&#xD;suomi=fi&#xD;Français=fr&#xD;Galego=gl&#xD;Hrvatski=hr&#xD;Magyar=hu&#xD;Interlingua=ia&#xD;Bahasa Indonesia=id&#xD;Italiano=it&#xD;日本語=ja&#xD;にほんご=ja-HIRA&#xD;ಕನ್ನಡ=kn&#xD;한국어=ko&#xD;Malayalam=ml&#xD;Nederlands=nl&#xD;Norsk=no&#xD;Polski=pl&#xD;Português=pt&#xD;Português do Brasil=pt-BR&#xD;Român=ro&#xD;Русский=ru&#xD;Slovenščina=si&#xD;svenska=sv&#xD;Tamil=ta&#xD;Telagu=te&#xD;Türkçe=tr&#xD;Українська=ua&#xD;简体中文=zh-CN&#xD;繁體中文=zh-TW</options></input><input type="%n">1</input><input type="%n">1</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>msg</l><l>accent</l><l>pitch</l><l>rate</l></list><l>var utter = new SpeechSynthesisUtterance(msg);&#xD;utter.lang = accent;&#xD;utter.pitch = pitch;&#xD;utter.rate = rate;&#xD;window.speechSynthesis.speak(utter);</l></block><list><block var="text"/><block var="lang"/><block var="pitch"/><block var="rate"/></list></block></script></block-definition><block-definition s="speak %&apos;text&apos; with %&apos;lang&apos; accent $nl and pitch %&apos;pitch&apos; rate %&apos;rate&apos; and wait" type="command" category="sound"><header></header><code></code><translations>de:sprich _ mit _ Aussprache _ und Höhe _ Geschwindigkeit _ und warte&#xD;pt:fala _ na língua _ _ com tom _ e velocidade _ , e espera&#xD;</translations><inputs><input type="%s">Hello, World!</input><input type="%txt">en-US<options>العربية=ar&#xD;Български=bg&#xD;বাংলা=bn&#xD;Català=ca&#xD;Català - Valencià=ca-VA&#xD;Česky=cs&#xD;Deutsch=de&#xD;Dansk=dk&#xD;Ελληνικά=el&#xD;English-American=en-US&#xD;English-British=en-GB&#xD;Esperanto=eo&#xD;Español=es&#xD;Eesti=et&#xD;Euskara=eu&#xD;suomi=fi&#xD;Français=fr&#xD;Galego=gl&#xD;Hrvatski=hr&#xD;Magyar=hu&#xD;Interlingua=ia&#xD;Bahasa Indonesia=id&#xD;Italiano=it&#xD;日本語=ja&#xD;にほんご=ja-HIRA&#xD;ಕನ್ನಡ=kn&#xD;한국어=ko&#xD;Malayalam=ml&#xD;Nederlands=nl&#xD;Norsk=no&#xD;Polski=pl&#xD;Português=pt&#xD;Português do Brasil=pt-BR&#xD;Român=ro&#xD;Русский=ru&#xD;Slovenščina=si&#xD;svenska=sv&#xD;Tamil=ta&#xD;Telagu=te&#xD;Türkçe=tr&#xD;Українська=ua&#xD;简体中文=zh-CN&#xD;繁體中文=zh-TW</options></input><input type="%n">1</input><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>test</l></list></block><block s="doSetVar"><l>test</l><block s="evaluate"><block s="reportJSFunction"><list><l>msg</l><l>accent</l><l>pitch</l><l>rate</l></list><l>var utter = new SpeechSynthesisUtterance(msg),&#xD; isDone = false;&#xD;utter.lang = accent;&#xD;utter.pitch = pitch;&#xD;utter.rate = rate;&#xD;utter.onend = function () {isDone = true; };&#xD;window.speechSynthesis.speak(utter);&#xD;return function () {return isDone; };</l></block><list><block var="text"/><block var="lang"/><block var="pitch"/><block var="rate"/></list></block></block><block s="doWaitUntil"><block s="evaluate"><block var="test"/><list></list></block></block></script></block-definition></blocks>
<blocks app="Snap! 7, https://snap.berkeley.edu" version="2"><block-definition s="speak %&apos;text&apos; with %&apos;lang&apos; accent $nl and pitch %&apos;pitch&apos; rate %&apos;rate&apos;" type="command" category="sound"><header></header><code></code><translations>de:sprich _ mit _ Aussprache _ und Höhe _ Geschwindigkeit _&#xD;pt:fala _ na língua _ _ com tom _ e velocidade _&#xD;ca:digues _ amb accent _ _ to _ i velocitat _&#xD;</translations><inputs><input type="%s">Hello, World!</input><input type="%txt">en-US<options>العربية=ar&#xD;Български=bg&#xD;বাংলা=bn&#xD;Català=ca&#xD;Català - Valencià=ca-VA&#xD;Česky=cs&#xD;Deutsch=de&#xD;Dansk=dk&#xD;Ελληνικά=el&#xD;English-American=en-US&#xD;English-British=en-GB&#xD;Esperanto=eo&#xD;Español=es&#xD;Eesti=et&#xD;Euskara=eu&#xD;suomi=fi&#xD;Français=fr&#xD;Galego=gl&#xD;Hrvatski=hr&#xD;Magyar=hu&#xD;Interlingua=ia&#xD;Bahasa Indonesia=id&#xD;Italiano=it&#xD;日本語=ja&#xD;にほんご=ja-HIRA&#xD;ಕನ್ನಡ=kn&#xD;한국어=ko&#xD;Malayalam=ml&#xD;Nederlands=nl&#xD;Norsk=no&#xD;Polski=pl&#xD;Português=pt&#xD;Português do Brasil=pt-BR&#xD;Român=ro&#xD;Русский=ru&#xD;Slovenščina=si&#xD;svenska=sv&#xD;Tamil=ta&#xD;Telagu=te&#xD;Türkçe=tr&#xD;Українська=ua&#xD;简体中文=zh-CN&#xD;繁體中文=zh-TW</options></input><input type="%n">1</input><input type="%n">1</input></inputs><script><block s="doApplyExtension"><l>tts_speak(txt, lang, pitch, rate)</l><list><block var="text"/><block var="lang"/><block var="pitch"/><block var="rate"/></list></block></script></block-definition><block-definition s="speak %&apos;text&apos; with %&apos;lang&apos; accent $nl and pitch %&apos;pitch&apos; rate %&apos;rate&apos; and wait" type="command" category="sound"><header></header><code></code><translations>de:sprich _ mit _ Aussprache _ und Höhe _ Geschwindigkeit _ und warte&#xD;pt:fala _ na língua _ _ com tom _ e velocidade _ , e espera&#xD;ca:digues _ amb accent _ _ to _ velocitat _ i espera&#xD;</translations><inputs><input type="%s">Hello, World!</input><input type="%txt">en-US<options>العربية=ar&#xD;Български=bg&#xD;বাংলা=bn&#xD;Català=ca&#xD;Català - Valencià=ca-VA&#xD;Česky=cs&#xD;Deutsch=de&#xD;Dansk=dk&#xD;Ελληνικά=el&#xD;English-American=en-US&#xD;English-British=en-GB&#xD;Esperanto=eo&#xD;Español=es&#xD;Eesti=et&#xD;Euskara=eu&#xD;suomi=fi&#xD;Français=fr&#xD;Galego=gl&#xD;Hrvatski=hr&#xD;Magyar=hu&#xD;Interlingua=ia&#xD;Bahasa Indonesia=id&#xD;Italiano=it&#xD;日本語=ja&#xD;にほんご=ja-HIRA&#xD;ಕನ್ನಡ=kn&#xD;한국어=ko&#xD;Malayalam=ml&#xD;Nederlands=nl&#xD;Norsk=no&#xD;Polski=pl&#xD;Português=pt&#xD;Português do Brasil=pt-BR&#xD;Român=ro&#xD;Русский=ru&#xD;Slovenščina=si&#xD;svenska=sv&#xD;Tamil=ta&#xD;Telagu=te&#xD;Türkçe=tr&#xD;Українська=ua&#xD;简体中文=zh-CN&#xD;繁體中文=zh-TW</options></input><input type="%n">1</input><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>callback</l></list></block><block s="doSetVar"><l>callback</l><block s="reportApplyExtension"><l>tts_speak(txt, lang, pitch, rate)</l><list><block var="text"/><block var="lang"/><block var="pitch"/><block var="rate"/></list></block></block><block s="doWaitUntil"><block s="evaluate"><block var="callback"/><list></list></block></block></script></block-definition></blocks>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Wyświetl plik

@ -1 +1 @@
<blocks app="Snap! 6, https://snap.berkeley.edu" version="1"><block-definition s="safely try %&apos;action&apos; then if %&apos;error&apos; %&apos;handler&apos;" type="command" category="control"><comment w="276" collapsed="false">Catch errors.&#xD;&#xD;Runs the first script. If it succeeds, nothing else happens.&#xD;But if it has an error (something that would otherwise result&#xD;in a red halo around the block), then the second script is run,&#xD;with the text of the error message that would have been shown in the variable ERROR.</comment><header></header><code></code><translations>pt:tenta executar _ e, em caso de erro _ , executa _&#xD;</translations><inputs><input type="%cs"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><custom-block s="let %upvar be %s"><l>reset</l><block s="evaluate"><block s="reportJSFunction"><list><l>proc</l></list><l>var oldHandleError = proc.handleError,&#xD; oldCatchingErrors = proc.isCatchingErrors;&#xD;&#xD;return function(){&#xD; proc.handleError = oldHandleError;&#xD; proc.isCatchingErrors = oldCatchingErrors;&#xD;}</l></block><list></list></block></custom-block><block s="doCallCC"><block s="reifyScript"><script><block s="doRun"><block s="reportJSFunction"><list><l>reset</l><l>action</l><l>handler</l><l>proc</l></list><l>proc.isCatchingErrors = true;&#xD;proc.handleError = function(error, element){&#xD; reset();&#xD; proc.context = handler;&#xD; proc.context.variables.setVar("error", error);&#xD;}&#xD;&#xD;try{&#xD; proc.evaluate(action, new List(), true);&#xD;}&#xD;catch(e){&#xD; proc.handleError(e, null);&#xD;} </l></block><list><block var="reset"/><block var="action"/><block s="reifyScript"><script><block s="doRun"><block s="reifyScript"><script><block s="doRun"><block var="handler"/><list></list></block><block s="doRun"><block var="return"/><list></list></block></script><list></list></block><list></list></block></script><list></list></block></list></block></script><list><l>return</l></list></block></block><block s="doRun"><block var="reset"/><list></list></block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><comment w="268.6666666666667" collapsed="false">Throw an error.&#xD;&#xD;Makes a red halo appear around the script that runs it,&#xD;with the input text shown in a speech balloon next to&#xD;the script, just like any Snap! error.&#xD;&#xD;This is useful to put in the second script of SAFELY TRY&#xD;after some other instructions to undo the partial work of&#xD;the first script.</comment><header></header><code></code><translations>pt:lança o erro _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>msg</l></list><l>throw new Error(msg);</l></block><list><block var="msg"/></list></block></script></block-definition><block-definition s="let %&apos;var&apos; be %&apos;val&apos;" type="command" category="other"><comment w="183.33333333333334" collapsed="false">LET (FOO) BE (5)&#xD;is equivalent to&#xD;SCRIPT VARIABLES (FOO)&#xD;SET (FOO) TO (5)</comment><header></header><code></code><translations>pt:cria a variável de guião _ com valor _&#xD;</translations><inputs><input type="%upvar"></input><input type="%s"></input></inputs><script><block s="doSetVar"><l>var</l><block var="val"/></block></script></block-definition><block-definition s="safely try reporting %&apos;this&apos; then if %&apos;error&apos; report %&apos;that&apos;" type="reporter" category="control"><comment w="316.6666666666667" collapsed="false">Catch errors in a reporter.&#xD;&#xD;Evaluates its first input. If that expression successfully reports a value, this block reports that value. If the expression causes a Snap! error,&#xD;then the final input slot is evaluated with the text of what would have&#xD;been the error message in variable ERROR. SAFELY TRY then reports the value of that final expression.&#xD;&#xD;Sometimes you&apos;ll want to throw an error in the final expression. You&#xD;can put an ERROR block inside a CALL block to do that.</comment><header></header><code></code><translations></translations><inputs><input type="%anyUE"></input><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doDeclareVariables"><list><l>value</l></list></block><custom-block s="safely try %cs then if %upvar %cs"><script><block s="doSetVar"><l>value</l><block s="evaluate"><block var="this"/><list></list></block></block></script><l>err</l><script><block s="doSetVar"><l>error</l><block var="err"/></block><block s="doSetVar"><l>value</l><block s="evaluate"><block var="that"/><list></list></block></block></script></custom-block><block s="doReport"><block var="value"/></block></script></block-definition></blocks>
<blocks app="Snap! 7, https://snap.berkeley.edu" version="2"><block-definition s="safely try %&apos;action&apos; then if %&apos;error&apos; %&apos;handler&apos;" type="command" category="control"><comment w="276" collapsed="false">Catch errors.&#xD;&#xD;Runs the first script. If it succeeds, nothing else happens.&#xD;But if it has an error (something that would otherwise result&#xD;in a red halo around the block), then the second script is run,&#xD;with the text of the error message that would have been shown in the variable ERROR.</comment><header></header><code></code><translations>pt:tenta executar _ e, em caso de erro _ , executa _&#xD;ca:prova de forma segura _ i si _ _&#xD;</translations><inputs><input type="%cs"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block var="action"/><block var="handler"/><block var="error"/></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><comment x="0" y="0" w="268.6666666666667" collapsed="false">Throw an error.&#xD;&#xD;Makes a red halo appear around the script that runs it,&#xD;with the input text shown in a speech balloon next to&#xD;the script, just like any Snap! error.&#xD;&#xD;This is useful to put in the second script of SAFELY TRY&#xD;after some other instructions to undo the partial work of&#xD;the first script.</comment><header></header><code></code><translations>pt:lança o erro _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="msg"/></list></block></script></block-definition><block-definition s="safely try reporting %&apos;this&apos; then if %&apos;error&apos; report %&apos;that&apos;" type="reporter" category="control"><comment w="316.6666666666667" collapsed="false">Catch errors in a reporter.&#xD;&#xD;Evaluates its first input. If that expression successfully reports a value, this block reports that value. If the expression causes a Snap! error,&#xD;then the final input slot is evaluated with the text of what would have&#xD;been the error message in variable ERROR. SAFELY TRY then reports the value of that final expression.&#xD;&#xD;Sometimes you&apos;ll want to throw an error in the final expression. You&#xD;can put an ERROR block inside a CALL block to do that.</comment><header></header><code></code><translations>ca:prova de forma segura reportant _ i si _ reportant _&#xD;</translations><inputs><input type="%anyUE"></input><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doDeclareVariables"><list><l>value</l></list></block><custom-block s="safely try %cs then if %upvar %cs"><script><block s="doSetVar"><l>value</l><block s="evaluate"><block var="this"/><list></list></block></block></script><l>err</l><script><block s="doSetVar"><l>error</l><block var="err"/></block><block s="doSetVar"><l>value</l><block s="evaluate"><block var="that"/><list></list></block></block></script></custom-block><block s="doReport"><block var="value"/></block></script></block-definition></blocks>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Wyświetl plik

@ -415,8 +415,8 @@ SnapTranslator.dict.ar = {
// control:
'when %greenflag clicked':
'الأخضر العـَلم %greenflag نقر عنـد',
'when %keyHat key pressed':
'%keyHat مفتـاح ضغط عند',
'when %keyHat key pressed %keyName':
'%keyHat %keyName مفتـاح ضغط عند',
'when I am %interaction':
'الفـأرة مـؤشْـر %interaction لـ أتعرض عندما',
'clicked':
@ -431,12 +431,12 @@ SnapTranslator.dict.ar = {
'مغـادرة',
'when %b':
'%b عندما',
'when I receive %msgHat':
'%msgHat رسـالة أستقبال عند',
'broadcast %msg':
' %msg بث',
'broadcast %msg and wait':
'إنتظـر ثم %msg بِـث',
'when I receive %msgHat %message':
'%msgHat %message رسـالة أستقبال عند',
'broadcast %msg %receive':
' %msg %receive بث',
'broadcast %msg %receive and wait':
'إنتظـر ثم %msg %receive بِـث',
'Message name':
'اسم الرسالة',
'message':

Wyświetl plik

@ -410,16 +410,18 @@ SnapTranslator.dict.bg = {
// control:
'when %greenflag clicked':
'когато %greenflag е кликнат',
'when %keyHat key pressed':
'когато бутон %keyHat е натиснат',
'when I am clicked':
'когато кликнеш върху мен',
'when I receive %msgHat':
'когато получа %msgHat',
'broadcast %msg':
'изпрати %msg към всички',
'broadcast %msg and wait':
'изпрати %msg към всички и изчакай',
'when %keyHat key pressed %keyName':
'когато бутон %keyHat е натиснат %keyName',
'when I am %interaction':
'когато %interaction върху мен',
'when I receive %msgHat %message':
'когато получа %msgHat %message',
'broadcast %msg %receive':
'изпрати %msg %receive',
'broadcast %msg %receive and wait':
'изпрати %msg %receive и изчакай',
'to':
'към',
'Message name':
'Име на съобщение',
'wait %n secs':

Wyświetl plik

@ -439,8 +439,8 @@ SnapTranslator.dict.bn = {
// control:
'when %greenflag clicked':
'যখন %greenflag ক্লিক করা হবে',
'when %keyHat key pressed':
'যখন %keyHat ক্লিক করা হবে',
'when %keyHat key pressed %keyName':
'যখন %keyHat %keyName ক্লিক করা হবে',
'when I am %interaction':
'যখন আমাকে %interaction',
'clicked':
@ -461,12 +461,12 @@ SnapTranslator.dict.bn = {
'থামানো হবে',
'when %b':
'যখন %b শর্তটি সত্য হবে',
'when I receive %msgHat':
'যখন আমি পাব বার্তা %msgHat',
'broadcast %msg':
'বার্তা %msg সম্প্রচার কর',
'broadcast %msg and wait':
'বার্তা %msg সম্প্রচার করে অপেক্ষা কর',
'when I receive %msgHat %message':
'যখন আমি পাব বার্তা %msgHat %message',
'broadcast %msg %receive':
'বার্তা %msg %receive সম্প্রচার কর',
'broadcast %msg %receive and wait':
'বার্তা %msg %receive সম্প্রচার করে অপেক্ষা কর',
'send %msg to %spr':
'বার্তা %msg সম্প্রচার কর %spr',
'Message name':

Wyświetl plik

@ -185,7 +185,7 @@ SnapTranslator.dict.ca = {
'translator_e-mail':
'bernat@snap4arduino.rocks, jguille2@xtec.cat', // optional
'last_changed':
'2021-03-14', // this, too, will appear in the Translators tab
'2022-01-05', // this, too, will appear in the Translators tab
// GUI
// control bar:
@ -433,10 +433,10 @@ SnapTranslator.dict.ca = {
'augmenta en %n el color del llapis',
'set pen color to %n':
'fixa el color del llapis a %n',
'change pen %hsva by %n':
'augmenta %hsva del llapis en %n',
'set pen %hsva to %n':
'fixa %hsva del llapis a %n',
'change pen %clrdim by %n':
'augmenta %clrdim del llapis en %n',
'set pen %clrdim to %n':
'fixa %clrdim del llapis a %n',
'change pen shade by %n':
'augmenta en %n la intensitat del llapis',
'set pen shade to %n':
@ -447,10 +447,10 @@ SnapTranslator.dict.ca = {
'fixa la mida del llapis en %n',
'set background color to %clr':
'fixa el color del fons a %clr',
'change background %hsva by %n':
'augmenta %hsva del fons en %n',
'set background %hsva to %n':
'fixa %hsva del fons a %n',
'change background %clrdim by %n':
'augmenta %clrdim del fons en %n',
'set background %clrdim to %n':
'fixa %clrdim del fons a %n',
'stamp':
'estampa',
'fill':
@ -463,8 +463,10 @@ SnapTranslator.dict.ca = {
// control:
'when %greenflag clicked':
'Quan la %greenflag es premi',
'when %keyHat key pressed':
'Quan la tecla %keyHat es premi',
'when %keyHat key pressed %keyName':
'Quan la tecla %keyHat es premi %keyName',
'key':
'tecla',
'when I am %interaction':
'Quan %interaction aquest personatge',
'clicked':
@ -479,12 +481,14 @@ SnapTranslator.dict.ca = {
'el ratolí surti d\'',
'when %b':
'quan %b',
'when I receive %msgHat':
'Quan rebi %msgHat',
'broadcast %msg':
'Envia a tots %msg',
'broadcast %msg and wait':
'Envia a tots %msg i espera',
'when I receive %msgHat %message':
'Quan rebi %msgHat %message',
'broadcast %msg %receive':
'Envia %msg %receive',
'broadcast %msg %receive and wait':
'Envia %msg %receive i espera',
'to':
'a',
'send %msg to %spr':
'envia %msg a %spr',
'Message name':
@ -516,7 +520,7 @@ SnapTranslator.dict.ca = {
'stop %stopChoices':
'atura %stopChoices',
'all':
'tot',
'tots',
'this script':
'aquest programa',
'this block':
@ -551,6 +555,14 @@ SnapTranslator.dict.ca = {
'mi mateix',
'delete this clone':
'esborra aquest clon',
'switch to scene %scn %send':
'canvia a l\'escena %scn %send',
'and send':
'i envia',
'next':
'següent',
'previous':
'prèvia',
'tell %spr to %cmdRing %inputs':
'digues a %spr que faci %cmdRing %inputs',
'ask %spr for %repRing %inputs':
@ -623,6 +635,14 @@ SnapTranslator.dict.ca = {
'objecte %self',
'r-g-b-a':
'color RGBA',
'%block of block %repRing':
'%block del bloc %repRing',
'definition':
'definició',
'custom?':
'personalitzat?',
'global?':
'global?',
// operators:
'%n mod %n':
@ -836,6 +856,18 @@ SnapTranslator.dict.ca = {
'no hi ha cap bloc\npersonalitzat no utilitzat\nen aquest projecte',
'unused block(s) removed':
'bloc(s) personalitzats no utilitzats esborrats',
'Hide blocks...':
'Amaga blocs...',
'New category...':
'Nova categoria...',
'Remove a category...':
'Esborra una categoria...',
'Scenes...':
'Escenes...',
'New scene':
'Nova escena',
'Add scene...':
'Afegeix una escena...',
'Export summary...':
'Exporta el resum...',
'save a summary\nof this project':
@ -925,14 +957,6 @@ SnapTranslator.dict.ca = {
'marqueu per a mostrar sempre\nel diàleg de selecció de tipus\nen afegir paràmetres als blocs\npersonalitzats',
'uncheck to use the input\ndialog in short form':
'desmarqueu per a no mostrar\nautomàticament el diàleg de selecció\nde tipus en afegir paràmetres\nals blocs personalitzats',
'Virtual keyboard':
'Teclat virtual',
'uncheck to disable\nvirtual keyboard support\nfor mobile devices':
'desmarqueu per inhabilitar\nel suport per al teclat virtual\nen dispositius mòbils',
'check to enable\nvirtual keyboard support\nfor mobile devices':
'marqueu per habilitar\nel suport per al teclat virtual\nen dispositius mòbils',
'Input sliders':
'Lliscadors d\'entrada',
'uncheck to disable\ninput sliders for\nentry fields':
@ -975,12 +999,6 @@ SnapTranslator.dict.ca = {
'desmarqueu per permetre\nla re-entrada als programes',
'check to disallow\nscript reentrance':
'marqueu per no permetre\nla re-entrada als programes',
'Prefer smooth animations':
'Suavitza les animacions',
'uncheck for greater speed\nat variable frame rates':
'desmarqueu per augmentar la velocitat de\nles animacions fins la màxima capacitat d\'aquesta màquina',
'check for smooth, predictable\nanimations across computers':
'marqueu per aconseguir unes animacions\nmés suaus i a velocitat previsible en màquines diferents',
'Flat line ends':
'Puntes de llapis planes',
'check for flat ends of lines':
@ -1011,10 +1029,28 @@ SnapTranslator.dict.ca = {
// palette:
'find blocks':
'Cerca blocs',
'hide primitives':
'amaga els blocs primitius',
'show primitives':
'mostra els blocs primitius',
'hide blocks...':
'amaga blocs...',
'Hide blocks in palette':
'Amaga blocs de la paleta',
'unused':
'no utilitzats',
'make a category...':
'crea una categoria...',
'New Category':
'Nova Categoria',
'Blocks category name:':
'Nom de la categoria de blocs:',
'Category color':
'Color de la categoria',
'red':
'vermell',
'green':
'verd',
'blue':
'blau',
'delete a category...':
'esborra una categoria...',
// blocks:
'help...':
@ -1055,6 +1091,8 @@ SnapTranslator.dict.ca = {
'activeu l\'opció per evitar que els continguts\nes desin',
'new line':
'nova línia',
'open a new window\nwith a picture of this script':
'obre una nova finestra\namb la imatge del programa',
// custom blocks:
'delete block definition...':
@ -1465,6 +1503,8 @@ SnapTranslator.dict.ca = {
'saturació',
'brightness':
'brillantor',
'lightness':
'lluminositat',
'ghost':
'fantasma',
'negative':
@ -1477,6 +1517,8 @@ SnapTranslator.dict.ca = {
// keys
'space':
'espai',
'enter':
'retorn',
'any key':
'qualsevol tecla',
'up arrow':
@ -1875,6 +1917,36 @@ SnapTranslator.dict.ca = {
'Suport pel mapeig de codi',
'check for block\nto text mapping features':
'marqueu per habilitar les funcionalitats\nde mapeig de blocs en codi',
'Single palette':
'Paleta única',
'check to show all blocks in a single palette':
'marqueu per mostrar tots els blocs\nen una paleta única',
'uncheck to show only the selected category\'s blocks':
'demarqueu per mostrar només el blocs\nde la categoria seleccionada',
'Show categories':
'Mostra les categories',
'uncheck to hide\ncategory names\nin the palette':
'desmarqueu per amagar\nel nom de les categories\na la paleta',
'check to show\ncategory names\nin the palette':
'marqueu per mostrar\nel nom de les categories\na la paleta',
'Show buttons':
'Mostra els botons',
'uncheck to hide buttons\nin the palette':
'desmarqeu per amagar els botons\na la paleta',
'check to show buttons\nin the palette':
'marqueu per mostrar els botons\na la paleta',
'HSL pen color model':
'Model de color HSL',
'uncheck to switch pen colors\nand graphic effects to HSV':
'desmarqueu per canviar el model de color del llapis\ni dels efectes gràfics a HSV',
'check to switch pen colors\nand graphic effects to HSL':
'marqueu per canviar el model de color del llapis\ni dels efectes gràfics a HSL',
'Disable click-to-run':
'Deshabilita l\'execució directa',
'uncheck to enable\ndirectly running blocks\nby clicking on them':
'desmarqueu per habilitar\nl\'execució directa dels blocs\nen clicar-los',
'check to disable\ndirectly running blocks\nby clicking on them':
'marqueu per a deshabilitar\nl\'execució directa dels blocs\nen clicar-los',
'saved.':
'desat.',
'options...':
@ -2510,13 +2582,21 @@ SnapTranslator.dict.ca = {
'animation demo':
'exemple d\'animació',
//future JS options
//JS options
'JavaScript extensions':
'Extensions de Javascript',
'uncheck to disable support for\nnative JavaScript functions':
'desmarqueu per deshabilitar\nl\'execució de Javascript',
'check to support\nnative JavaScript functions':
'marqueu per habilitar\nl\'execució de Javascript',
'JavaScript is not enabled':
'l\'execució de Javascript està deshabilitada',
'JavaScript extensions for Snap!\nare turned off':
'Les extensions de JavaScript estan deshabilitades',
'Extension blocks':
'Blocs per Extensions',
'uncheck to hide extension\nprimitives in the palette':
'desmarqueu per amagar els blocs de primitives\nper a les extensions de la paleta',
'check to show extension\nprimitives in the palette':
'marqueu per mostrar els blocs de primitives\nper a les exensions a la paleta',
//Libraries
'Loading':
@ -2536,6 +2616,10 @@ SnapTranslator.dict.ca = {
'Colors i Paletes',
'Incorporates the former crayon and set RGB libraries. Implements fair hues (more orange, less green, adds brown) and a linear color scale including grayscale and fair-hue-based shades.':
'Incorpora les llibreries inicials de Paletes de color i Colors RGB. Utilitza tonalitats més ajustades (més taronges, menys verds, afegeix marrons) i una escala de color lineal que inclou escala de grisos i més matisos de tonalitat.',
'Crayons':
'Llapis de colors',
'Just the crayons, without the rest of the colors library. Fast and simple.':
'Només els llapis de colors, sense la resta de la llibreria de colors. Més ràpida i simple.',
'Bignums, rationals, complex #s':
'Números sencers de precisió infinita, racionals exactes i complexos',
'The full Scheme numeric tower. "USE BIGNUMS <True>" to enable.':
@ -2622,6 +2706,14 @@ SnapTranslator.dict.ca = {
'Crea variables',
'Create and manage global/sprite/script variables in a script':
'Crea i gestiona variables de tipus global/sprite/script dins els programes',
'Serial Ports':
'Ports sèrie',
'Connect to hardware extensions through the Web Serial API (Chromium, Chrome or Edge required)':
'Connexió a microcontroladors connectats al port sèrie utilitzant el Web Serial API (requereix de la utilització del navegador Chromium, Chrome o Edge)',
'Signada (Network remote control)':
'Signada (control remot per xarxa)',
'Interact with MicroBlocks devices via WiFi. Requires the device to have a TFT display, two buttons and WiFi capability, as well as the Signada MicroBlocks project loaded. The Citilab ED1 and a bunch of the M5Stack boards are some of the devices that work with Signada.':
'Interactua amb dispositius programats amb Microblocks per la WiFi. Els dispositius han de tenir una pantalla TFT, dos butons i connectivitat WiFi i tenir carregat el projecte Signada de MicroBlocks. Exemples compatibles són la placa ED1 del Citilab i múltiples dispositius tipus M5Stack.',
'Hummingbird robotics':
'Hummingbird robòtics',
@ -2745,6 +2837,12 @@ SnapTranslator.dict.ca = {
//
'translations...':
'traduccions...',
'in palette':
'a la paleta',
'check to\nshow in palette':
'marqueu per mostrar-lo\na la paleta de blocs',
'uncheck to\nhide in palette':
'desmarqueu per ocultar-lo\na la paleta de blocs',
'width':
'amplada',
'height':

Wyświetl plik

@ -417,8 +417,8 @@ SnapTranslator.dict.ca_VA = {
// control:
'when %greenflag clicked':
'Quan la %greenflag es prema',
'when %keyHat key pressed':
'Quan la tecla %keyHat es prema',
'when %keyHat key pressed %keyName':
'Quan la tecla %keyHat es prema %keyName',
'when I am %interaction':
'Quan %interaction aquest personatge',
'clicked':
@ -433,12 +433,12 @@ SnapTranslator.dict.ca_VA = {
'el ratolí isca d\'',
'when %b':
'quan %b',
'when I receive %msgHat':
'Quan reba %msgHat',
'broadcast %msg':
'Envia a tots %msg',
'broadcast %msg and wait':
'Envia a tots %msg i espera',
'when I receive %msgHat %message':
'Quan reba %msgHat %message',
'broadcast %msg %receive':
'Envia %msg %receive',
'broadcast %msg %receive and wait':
'Envia %msg %receive i espera',
'Message name':
'Nom del missatge',
'message':

Wyświetl plik

@ -416,8 +416,8 @@ SnapTranslator.dict.cs = {
// control:
'when %greenflag clicked':
'Po klepnutí na %greenflag',
'when %keyHat key pressed':
'po stisku klávesy %keyHat',
'when %keyHat key pressed %keyName':
'po stisku klávesy %keyHat %keyName',
'when I am %interaction':
'když %interaction',
'clicked':
@ -430,12 +430,12 @@ SnapTranslator.dict.cs = {
'na mě najede myš',
'mouse-departed':
'ze mě sjede myš',
'when I receive %msgHat':
'po přijetí zprávy %msgHat',
'broadcast %msg':
'poslat všem %msg',
'broadcast %msg and wait':
'poslat všem %msg a čekat',
'when I receive %msgHat %message':
'po přijetí zprávy %msgHat %message',
'broadcast %msg %receive':
'poslat %msg %receive',
'broadcast %msg %receive and wait':
'poslat %msg %receive a čekat',
'Message name':
'název zprávy',
'message':

Wyświetl plik

@ -6,7 +6,7 @@
written by Jens Mönig
Copyright (C) 2021 by Jens Mönig
Copyright (C) 2022 by Jens Mönig
This file is part of Snap!.
@ -185,7 +185,7 @@ SnapTranslator.dict.de = {
'translator_e-mail':
'jens@moenig.org, jadga.huegle@sap.com', // optional
'last_changed':
'2021-06-11', // this, too, will appear in the Translators tab
'2022-01-31', // this, too, will appear in the Translators tab
// GUI
// control bar:
@ -469,14 +469,14 @@ SnapTranslator.dict.de = {
'setze Stiftfarbe auf %clr',
'set background color to %clr':
'setze Hintergrundfarbe auf %clr',
'change pen %hsva by %n':
'\u00e4ndere Stift %hsva um %n',
'change background %hsva by %n':
'\u00e4ndere Hintergrund %hsva um %n',
'set pen %hsva to %n':
'setze Stift %hsva auf %n',
'set background %hsva to %n':
'setze Hintergrund %hsva auf %n',
'change pen %clrdim by %n':
'\u00e4ndere Stift %clrdim um %n',
'change background %clrdim by %n':
'\u00e4ndere Hintergrund %clrdim um %n',
'set pen %clrdim to %n':
'setze Stift %clrdim auf %n',
'set background %clrdim to %n':
'setze Hintergrund %clrdim auf %n',
'pen %pen':
'Stift %pen',
'change pen size by %n':
@ -499,8 +499,10 @@ SnapTranslator.dict.de = {
// control:
'when %greenflag clicked':
'Wenn %greenflag angeklickt',
'when %keyHat key pressed':
'Wenn Taste %keyHat gedr\u00fcckt',
'when %keyHat key pressed %keyName':
'Wenn Taste %keyHat gedr\u00fcckt %keyName',
'key':
'Taste',
'when I am %interaction':
'Wenn ich %interaction werde',
'clicked':
@ -521,14 +523,14 @@ SnapTranslator.dict.de = {
'gestoppt',
'when %b':
'Wenn %b',
'when I receive %msgHat':
'Wenn ich %msgHat empfange',
'broadcast %msg':
'sende %msg an alle',
'broadcast %msg and wait':
'sende %msg an alle und warte',
'send %msg to %spr':
'sende %msg an %spr',
'when I receive %msgHat %message':
'Wenn ich %msgHat empfange %message',
'broadcast %msg %receive':
'sende %msg %receive',
'broadcast %msg %receive and wait':
'sende %msg %receive und warte',
'to':
'an',
'Message name':
'Nachricht',
'message':
@ -558,7 +560,7 @@ SnapTranslator.dict.de = {
'stop %stopChoices':
'stoppe %stopChoices',
'all':
'alles',
'alle',
'this script':
'dieses Skript',
'this block':
@ -593,6 +595,14 @@ SnapTranslator.dict.de = {
'selbst',
'delete this clone':
'entferne diesen Klon',
'switch to scene %scn %send':
'wechsle zur Szene %scn %send',
'and send':
'und sende',
'next':
'nächste',
'previous':
'vorherige',
'tell %spr to %cmdRing %inputs':
'lasse %spr %cmdRing tun %inputs',
'ask %spr for %repRing %inputs':
@ -715,6 +725,14 @@ SnapTranslator.dict.de = {
'Rahmenz\u00e4hler',
'log pen vectors':
'Vektoraufzeichnung',
'%block of block %repRing':
'%block von Block %repRing',
'definition':
'Definition',
'custom?':
'benutzerdefiniert?',
'global?':
'global?',
// operators:
'%n mod %n':
@ -914,7 +932,7 @@ SnapTranslator.dict.de = {
'save global custom block\ndefinitions as XML':
'globale Benutzerblockdefinitionen\nals XML-Datei speichern',
'Unused blocks...':
'nicht verwendete Bl\u00f6cke...',
'Nicht verwendete Bl\u00f6cke...',
'find unused global custom blocks\nand remove their definitions':
'nicht verwendete Bl\u00f6cke finden\nund entfernen',
'Remove unused blocks':
@ -923,6 +941,18 @@ SnapTranslator.dict.de = {
'momentan keine nicht verwendeten\nBl\u00f6cke in diesem Projekt',
'unused block(s) removed':
'nicht verwendete Bl\u00f6cke entfernt',
'Hide blocks...':
'Blöcke verbergen...',
'New category...':
'Neue Kategorie...',
'Remove a category...':
'Kategorie löschen...',
'Scenes...':
'Szenen...',
'New scene':
'Neue Szene',
'Add scene...':
'Szene hinzufügen...',
'Export summary...':
'Zusammenfassung exportieren...',
'save a summary\nof this project':
@ -1067,14 +1097,6 @@ SnapTranslator.dict.de = {
'einschalten, um immer die Datentypen\nim Input-Dialog zu sehen',
'uncheck to use the input\ndialog in short form':
'ausschalten f\u00fcr kurzen\nInput-Dialog',
'Virtual keyboard':
'Virtuelle Tastatur',
'uncheck to disable\nvirtual keyboard support\nfor mobile devices':
'ausschalten um die virtuelle\nTastatur auf mobilen Ger\u00e4ten\n'
+ 'zu sperren',
'check to enable\nvirtual keyboard support\nfor mobile devices':
'einschalten um die virtuelle\nTastatur auf mobilen Ger\u00e4ten\n'
+ 'zu erm\u00f6glichen',
'JavaScript extensions':
'JavaScript Erweiterungen',
'check to support\nnative JavaScript functions':
@ -1083,6 +1105,12 @@ SnapTranslator.dict.de = {
'ausschalten, um potentiell gefährliche\nJavaScript-Funktionen zu verhindern',
'JavaScript extensions for Snap!\nare turned off':
'JavaScript Erweiterungen für Snap!\nsind ausgeschaltet',
'Extension blocks':
'Erweiterungsblöcke',
'uncheck to hide extension\nprimitives in the palette':
'ausschalten um Blöcke für Erweiterungen\nin der Palette zu verbergen',
'check to show extension\nprimitives in the palette':
'einschalten um Blöcke für Erweiterungen\nin der Palette anzuzeigen',
'Input sliders':
'Eingabeschieber',
'uncheck to disable\ninput sliders for\nentry fields':
@ -1137,12 +1165,6 @@ SnapTranslator.dict.de = {
'verhindert, dass unvollendete\nSkripte erneut gestartet werden',
'check to disallow\nscript reentrance':
'verhindert, dass unvollendete\nSkripte erneut gestartet werden',
'Prefer smooth animations':
'Fixe Framerate',
'uncheck for greater speed\nat variable frame rates':
'ausschalten, um Animationen \ndynamischer auszuf\u00fchren',
'check for smooth, predictable\nanimations across computers':
'einschalten, damit Animationen\n\u00fcberall gleich laufen',
'Flat line ends':
'Flache Pinselstriche',
'check for flat ends of lines':
@ -1165,7 +1187,36 @@ SnapTranslator.dict.de = {
'ausschalten, um Malstiftbewegungen\nnicht mehr aufzuzeichnen',
'check to turn on\nlogging pen vectors':
'einschalten, um Malstiftbewegungen\nals Vektor aufzuzeichnen',
'Single palette':
'Einheitliche Palette',
'check to show all blocks in a single palette':
'einschalten, um alle Blöcke in\neiner einzigen Palette zu sehen',
'uncheck to show only the selected category\'s blocks':
'ausschalten, um nur die Blöcke der ausgewählten Kategorie zu sehen',
'Show categories':
'Kategorien anzeigen',
'uncheck to hide\ncategory names\nin the palette':
'ausschalten, um die\nNamen der Kategorien\nin der Palette zu verbergen',
'check to show\ncategory names\nin the palette':
'einschalten, umd die\nNamen der Kategorien\nin der Palette anzuzeigen',
'Show buttons':
'Knöpfe anzeigen',
'uncheck to hide buttons\nin the palette':
'ausschalten, um Knöpfe in\nder Palette zu verbergen',
'check to show buttons\nin the palette':
'einschalten, um Knöpfe in\nder Palette anzuzeigen',
'HSL pen color model':
'HSL Farbmodell',
'uncheck to switch pen colors\nand graphic effects to HSV':
'ausschalten, um das Farbmodell\nfür den Malstift und die Grafikeffekte\nauf HSV zurückzusetzen',
'check to switch pen colors\nand graphic effects to HSL':
'einschalten, um das Farbmodell\nfür den Malstift und die Grafikeffekte\nauf HSL zu setzen',
'Disable click-to-run':
'Block-Klicks deaktivieren',
'uncheck to enable\ndirectly running blocks\nby clicking on them':
'ausschhalten, um direktes Ausführen\nvon Blöcken durch Anklicken\nzu ermöglichen',
'check to disable\ndirectly running blocks\nby clicking on them':
'einschhalten, um direktes Ausführen\nvon Blöcken durch Anklicken\nzu verhindern',
// inputs
'with inputs':
@ -1184,10 +1235,28 @@ SnapTranslator.dict.de = {
// palette:
'find blocks':
'Blöcke finden',
'hide primitives':
'Basisbl\u00f6cke ausblenden',
'show primitives':
'Basisbl\u00f6cke anzeigen',
'hide blocks...':
'Blöcke verbergen...',
'Hide blocks in palette':
'Blöcke verbergen',
'unused':
'nicht verwendete',
'make a category...':
'Neue Kategorie...',
'New Category':
'Neue Kategorie',
'Blocks category name:':
'Name der neuen Block-Gruppe:',
'Category color':
'Kategoriefarbe',
'red':
'rot',
'green':
'grün',
'blue':
'blau',
'delete a category...':
'Kategorie löschen...',
// blocks:
'help...':
@ -1246,6 +1315,12 @@ SnapTranslator.dict.de = {
'mit allen verwendeten Blöcken',
'edit...':
'Bearbeiten...',
'translations...':
'Übersetzungen...',
'block variables...':
'Blockvariablen...',
'in palette':
'In der Palette',
// sprites:
'edit':
@ -1755,6 +1830,8 @@ SnapTranslator.dict.de = {
'Sättigung',
'brightness':
'Helligkeit',
'lightness':
'Helligkeit',
'transparency':
'Transparenz',
'ghost':
@ -1769,6 +1846,8 @@ SnapTranslator.dict.de = {
// keys
'space':
'Leertaste',
'enter':
'Eingabetaste',
'up arrow':
'Pfeil nach oben',
'down arrow':
@ -1919,6 +1998,10 @@ SnapTranslator.dict.de = {
'Pr\u00e4dikat',
'sprite':
'Objekt',
'ring':
'Ring',
'nothing':
'nichts',
// list indices
'last':
@ -2014,5 +2097,79 @@ SnapTranslator.dict.de = {
'check to inherit\nfrom':
'einschalten, um zu erben\nvon',
'uncheck to\ndisinherit':
'ausschalten, um \nnicht mehr zu erben'
'ausschalten, um \nnicht mehr zu erben',
// editing slots inside variadic inputs
'insert a slot':
'Ein Feld einfügen',
'delete slot':
'Feld löschen',
'insert a variable':
'Eine Variable einfügen',
'delete variable':
'Variable löschen',
'variable':
'Variable',
// error messages
'Error':
'Fehler',
'a variable of name \'':
'Eine Variable mit dem Namen \'',
'\'\ndoes not exist in this context':
'\'\ngibt es an dieser Stelle nicht',
'expecting a':
'Erwarte',
'but getting a':
'bekomme aber',
'expecting':
'Erwarte',
'input(s), but getting':
'Input(s), bekomme aber',
'Inside a custom block':
'In einem benutzerdefinierten Block',
'The question came up at':
'Die Frage stellte sich bei',
'continuations cannot be forked':
'Continuations können nicht separat gestartet werden',
'unable to convert to':
'Kann die Liste nicht umwandeln in',
'Request blocked':
'Die Anfrage wurde blockiert',
'cannot operate on a deleted sprite':
'kann nicht mit einem gelöschten Objekt arbeiten',
'cannot send media,\nsprites or procedures\nto another scene':
'Kann keine Medien, Objekte oder Programme\nan eine andere Szene senden',
'unsupported attribute':
'Attribut wird nicht unterstützt',
'unable to nest\n(disabled or circular?)':
'Kann nicht verschachteln\n(ausgeschaltet oder zirkulär?)',
'unable to inherit\n(disabled or circular?)':
'Kann nicht erben\n(ausgeschaltet oder zirkulär?)',
'is read-only':
'kann nur gelesen werden',
'is not a valid option':
'ist keine erlaubte Auswahl',
'unsupported data type':
'Nicht unterstützter Datentyp',
'expecting a finite number\nbut getting Infinity or NaN':
'Erwarte eine endliche Zahl\nbekomme aber Unendlich oder eine Nicht-Zahl',
'the predicate takes\ntoo long for a\ncustom hat block':
'Das Prädikat dauert zu lang für einen\nbenutzerdefinierten Ereignisblock',
'missing / unspecified extension':
'Fehlende / undefinierte Erweiterung',
'reporter didn\'t report':
'Der Rückgabewert fehlt bei einer Funktion',
'a custom block definition is missing':
'Ein Block ist undefiniert',
'exceeding maximum number of clones':
'Die maximale Anzahl von Klonen wird überschritten',
'can only write text or numbers, not a':
'Kann nur Text oder Zahlen schreiben, kein',
'unsupported graphic effect':
'Nicht unterstützter Grafikeffekt',
'setting the rotation center requires a costume':
'Der Drehpunkt kann nur zusammen\nmit einem Kostüm gesetzt werden',
'Web Audio API is not supported\nin this browser':
'Das Web Audio API wird von\ndiesem Browser nicht unterstützt'
};

Wyświetl plik

@ -420,16 +420,16 @@ SnapTranslator.dict.dk = {
// control:
'when %greenflag clicked':
'n\u00E5r %greenflag klikkes',
'when %keyHat key pressed':
'n\u00E5r %keyHat trykkes',
'when I am clicked':
'n\u00E5r jeg klikkes',
'when I receive %msgHat':
'n\u00E5r jeg modtager %msgHat',
'broadcast %msg':
'send %msg',
'broadcast %msg and wait':
'send %msg og vent',
'when %keyHat key pressed %keyName':
'n\u00E5r %keyHat trykkes %keyName',
'when I am %interaction':
'n\u00E5r jeg %interaction',
'when I receive %msgHat %message':
'n\u00E5r jeg modtager %msgHat %message',
'broadcast %msg %receive':
'send %msg %receive',
'broadcast %msg %receive and wait':
'send %msg %receive og vent',
'Message name':
'Beskednavn',
'wait %n secs':

Wyświetl plik

@ -464,10 +464,10 @@ SnapTranslator.dict.el = {
'θέσε το χρώμα του στυλού να είναι %clr',
'set background color to %clr':
'θέσε το χρώμα του υπόβαθρου να έιναι %clr',
'change pen %hsva by %n':
'άλλαξε %hsva του στυλού κατά %n',
'change background %hsva by %n':
'άλλαξε υπόβαθρο %hsva κατά %n',
'change pen %clrdim by %n':
'άλλαξε %clrdim του στυλού κατά %n',
'change background %clrdim by %n':
'άλλαξε υπόβαθρο %clrdim κατά %n',
'hue':
'απόχρωση',
'saturation':
@ -476,14 +476,14 @@ SnapTranslator.dict.el = {
'φωτεινότητα' ,
'transparency':
'διαφάνεια',
'set pen %hsva to %n':
'θέσε %hsva του στυλού να είναι %n',
'set pen %clrdim to %n':
'θέσε %clrdim του στυλού να είναι %n',
'change pen shade by %n':
'άλλαξε την σκιά του στυλού κατά %n',
'set pen shade to %n':
'θέσε την σκιά του στυλού να είναι %n',
'set background %hsva to %n':
'θέσε υπόβαθρο %hsva να είναι %n',
'set background %clrdim to %n':
'θέσε υπόβαθρο %clrdim να είναι %n',
'pen %pen':
'στυλό %pen',
'change pen size by %n':
@ -504,8 +504,8 @@ SnapTranslator.dict.el = {
// control:
'when %greenflag clicked':
'όταν το %greenflag πατηθεί',
'when %keyHat key pressed':
'όταν το %keyHat πλήκτρο πατηθεί',
'when %keyHat key pressed %keyName':
'όταν το %keyHat πλήκτρο πατηθεί %keyName',
'when I am %interaction':
'όταν μου συμβεί %interaction',
'clicked':
@ -526,12 +526,14 @@ SnapTranslator.dict.el = {
'σταματημένο',
'when %b':
'όταν %b',
'when I receive %msgHat':
'όταν δεχτώ %msgHat',
'broadcast %msg':
'στείλε το %msg',
'broadcast %msg and wait':
'στείλε το %msg και περίμενε',
'when I receive %msgHat %message':
'όταν δεχτώ %msgHat %message',
'broadcast %msg %receive':
'στείλε το %msg %receive',
'broadcast %msg %receive and wait':
'στείλε το %msg %receive και περίμενε',
'to':
'στο',
'send %msg to %spr':
'αποστολή του %msg στο %spr',
'Message name':

Wyświetl plik

@ -419,8 +419,8 @@ SnapTranslator.dict.eo = {
// control:
'when %greenflag clicked':
'Kiam %greenflag estas alklakita',
'when %keyHat key pressed':
'se %keyHat klavo estas premita',
'when %keyHat key pressed %keyName':
'se %keyHat klavo estas premita %keyName',
'when I am %interaction':
'Dum mi estas %interaction',
'clicked':
@ -435,12 +435,12 @@ SnapTranslator.dict.eo = {
'lasita de musa montrilo',
'when %b':
'kiam %b',
'when I receive %msgHat':
'Kiam mi ricevas %msgHat',
'broadcast %msg':
'elsendi %msg al \u0109iuj',
'broadcast %msg and wait':
'elsendi %msg al \u0109iuj kaj atendi',
'when I receive %msgHat %message':
'Kiam mi ricevas %msgHat %message',
'broadcast %msg %receive':
'elsendi %msg %receive',
'broadcast %msg %receive and wait':
'elsendi %msg %receive kaj atendi',
'Message name':
'Mesa\u011donomo',
'message':

Wyświetl plik

@ -576,18 +576,20 @@ SnapTranslator.dict.es = {
// control:
'when %greenflag clicked':
'cuando se pulse %greenflag',
'when %keyHat key pressed':
'cuando se pulse la tecla %keyHat',
'when %keyHat key pressed %keyName':
'cuando se pulse la tecla %keyHat %keyName',
'when I am %interaction':
'cuando me %interaction',
'when %b':
'cuando %b',
'when I receive %msgHat':
'cuando me llegue %msgHat',
'broadcast %msg':
'enviar mensaje %msg',
'broadcast %msg and wait':
'enviar mensaje %msg y esperar',
'when I receive %msgHat %message':
'cuando me llegue %msgHat %message',
'broadcast %msg %receive':
'enviar mensaje %msg %receive',
'broadcast %msg %receive and wait':
'enviar mensaje %msg %receive y esperar',
'to':
'a',
'message':
'mensaje',
'warp %c':
@ -2779,10 +2781,10 @@ SnapTranslator.dict.es = {
'¿lápiz bajado?',
'hue':
'tonalidad',
'change pen %hsva by %n':
'cambiar %hsva del lápiz en %n',
'set pen %hsva to %n':
'fijar %hsva del lápiz a %n',
'change pen %clrdim by %n':
'cambiar %clrdim del lápiz en %n',
'set pen %clrdim to %n':
'fijar %clrdim del lápiz a %n',
'write %s size %n':
'escribir %s con tamaño %n',
'paste on %spr':

Wyświetl plik

@ -239,8 +239,8 @@ SnapTranslator.dict.et = {
// control:
'when %greenflag clicked':
'kui vajutatakse %greenflag',
'when %keyHat key pressed':
'kui vajutatakse klahvi %keyHat',
'when %keyHat key pressed %keyName':
'kui vajutatakse klahvi %keyHat %keyName',
'when I am %interaction':
'kui minul %interaction',
'clicked':
@ -255,12 +255,12 @@ SnapTranslator.dict.et = {
'hiirekursor lahkub',
'when %b':
'kui %b',
'when I receive %msgHat':
'kui saan teate %msgHat',
'broadcast %msg':
'saada teade %msg',
'broadcast %msg and wait':
'saada teade %msg ja oota',
'when I receive %msgHat %message':
'kui saan teate %msgHat %message',
'broadcast %msg %receive':
'saada teade %msg %receive',
'broadcast %msg %receive and wait':
'saada teade %msg %receive ja oota',
'Message name':
'Teate nimi',
'message':

Wyświetl plik

@ -538,8 +538,8 @@ SnapTranslator.dict.eu = {
// control:
'when %greenflag clicked':
'%greenflag klik egitean',
'when %keyHat key pressed':
'%keyHat tekla sakatzean',
'when %keyHat key pressed %keyName':
'%keyHat tekla sakatzean %keyName',
'when I am %interaction':
'niri %interaction',
'clicked':
@ -558,12 +558,12 @@ SnapTranslator.dict.eu = {
'gorantz korritzean',
'when %b':
'%b denean',
'when I receive %msgHat':
'%msgHat jasotzen dudanean',
'broadcast %msg':
'igorri %msg',
'broadcast %msg and wait':
'igorri %msg eta itxaron',
'when I receive %msgHat %message':
'%msgHat jasotzen dudanean %message',
'broadcast %msg %receive':
'igorri %msg %receive',
'broadcast %msg %receive and wait':
'igorri %msg %receive eta itxaron',
'Message name':
'Mezuaren izena',
'message':

Wyświetl plik

@ -417,16 +417,18 @@ SnapTranslator.dict.fi = {
// control:
'when %greenflag clicked':
'kun klikataan %greenflag',
'when %keyHat key pressed':
'kun painetaan %keyHat',
'when I am clicked':
'kun minua klikataan',
'when I receive %msgHat':
'kun vastaanotan sanoman %msgHat',
'broadcast %msg':
'l\u00e4het\u00e4 sanoma %msg',
'broadcast %msg and wait':
'l\u00e4het\u00e4 sanoma %msg ja odota',
'when %keyHat key pressed %keyName':
'kun painetaan %keyHat %keyName',
'when I am %interaction':
'kun minua %interaction',
'clicked':
'klikataan',
'when I receive %msgHat %message':
'kun vastaanotan sanoman %msgHat %message',
'broadcast %msg %receive':
'l\u00e4het\u00e4 sanoma %msg %receive',
'broadcast %msg %receive and wait':
'l\u00e4het\u00e4 sanoma %msg %receive ja odota',
'Message name':
'Sanoma',
'message':

Wyświetl plik

@ -417,14 +417,14 @@ SnapTranslator.dict.fr = {
'mettre la couleur %clr pour le stylo',
'change pen color by %n':
'ajouter %n \u00E0 la couleur du stylo',
'set pen %hsva to %n':
'mettre la %hsva du stylo à %n',
'set pen %clrdim to %n':
'mettre la %clrdim du stylo à %n',
'hue':
'teinte',
'transparency':
'transparence',
'change pen %hsva by %n':
'ajouter à la %hsva du stylo %n',
'change pen %clrdim by %n':
'ajouter à la %clrdim du stylo %n',
'change pen shade by %n':
'ajouter %n \u00E0 l\u0027intensit\u00E9 du stylo ',
@ -442,18 +442,20 @@ SnapTranslator.dict.fr = {
// control:
'when %greenflag clicked':
'Quand %greenflag est press\u00E9',
'when %keyHat key pressed':
'Quand %keyHat est press\u00E9',
'when %keyHat key pressed %keyName':
'Quand %keyHat est press\u00E9 %keyName',
'when I am clicked':
'Quand je suis press\u00E9 ',
'when I am %interaction':
'Quand je suis %interaction',
'when I receive %msgHat':
'Quand je re\u00E7ois %msgHat',
'broadcast %msg':
'envoyer \u00E0 tous %msg',
'broadcast %msg and wait':
'envoyer \u00E0 tous %msg et attendre',
'when I receive %msgHat %message':
'Quand je re\u00E7ois %msgHat %message',
'broadcast %msg %receive':
'envoyer %msg %receive',
'broadcast %msg %receive and wait':
'envoyer %msg %receive et attendre',
'to':
'\u00E0',
'Message name':
'Nom du message',
'wait %n secs':
@ -1045,7 +1047,7 @@ SnapTranslator.dict.fr = {
'select':
's\u00E9lectionner',
'all':
'tout',
'tous',
'none':
'aucun',

Wyświetl plik

@ -422,10 +422,10 @@ SnapTranslator.dict.gl = {
'cambiar á cor do lapis a %n',
'set pen color to %n':
'fixar a cor do lapis a %n',
'change pen %hsva by %n':
'cambiar %hsva do lapis a %n',
'set pen %hsva to %n':
'fixar %hsva do lapis a %n',
'change pen %clrdim by %n':
'cambiar %clrdim do lapis a %n',
'set pen %clrdim to %n':
'fixar %clrdim do lapis a %n',
'change pen shade by %n':
'cambiar á intensidade do lapis en %n',
'set pen shade to %n':
@ -436,10 +436,10 @@ SnapTranslator.dict.gl = {
'fixar o tamaño do lapis en %n',
'set background color to %clr':
'fixar a cor do fondo a %clr',
'change background %hsva by %n':
'cambiar %hsva do fondo en %n',
'set background %hsva to %n':
'fixar %hsva do fondo a %n',
'change background %clrdim by %n':
'cambiar %clrdim do fondo en %n',
'set background %clrdim to %n':
'fixar %clrdim do fondo a %n',
'stamp':
'selar',
'fill':
@ -448,8 +448,8 @@ SnapTranslator.dict.gl = {
// control:
'when %greenflag clicked':
'ao facer clic en %greenflag',
'when %keyHat key pressed':
'ao premer a tecla %keyHat',
'when %keyHat key pressed %keyName':
'ao premer a tecla %keyHat %keyName',
'when I am %interaction':
'ao %interaction nesta personaxe',
'clicked':
@ -464,12 +464,14 @@ SnapTranslator.dict.gl = {
'separar o rato',
'when %b':
'cando %b',
'when I receive %msgHat':
'ao recibir %msgHat',
'broadcast %msg':
'enviar a todos %msg',
'broadcast %msg and wait':
'enviar a todos %msg e agardar',
'when I receive %msgHat %message':
'ao recibir %msgHat %message',
'broadcast %msg %receive':
'enviar %msg %receive',
'broadcast %msg %receive and wait':
'enviar %msg %receive e agardar',
'to':
'a',
'Message name':
'Nome da mensaxe',
'message':

Wyświetl plik

@ -494,14 +494,14 @@ SnapTranslator.dict.he = {
ט_למטה?',
'set background color to %clr':
'קבע_צבע_רקע %clr',
'change pen %hsva by %n':
'שנה_עט_ב %hsva %n',
'change background %hsva by %n':
'שנה_רקע_ב %hsva %n',
'set pen %hsva to %n':
'קבע_עט_ל %hsva %n',
'set background %hsva to %n':
'קבע_רקע_ל %hsva %n',
'change pen %clrdim by %n':
'שנה_עט_ב %clrdim %n',
'change background %clrdim by %n':
'שנה_רקע_ב %clrdim %n',
'set pen %clrdim to %n':
'קבע_עט_ל %clrdim %n',
'set background %clrdim to %n':
'קבע_רקע_ל %clrdim %n',
'pen %pen':
'עט %pen',
'fill':
@ -517,8 +517,8 @@ SnapTranslator.dict.he = {
// control:
'when %greenflag clicked':
'נלחץ %greenflag כאשר_כפתור',
'when %keyHat key pressed':
'נלחץ %keyHat כאשר_כפתור',
'when %keyHat key pressed %keyName':
'נלחץ %keyHat כאשר_כפתור %keyName',
'when I am %interaction':
'כאשר_אני %interaction',
'clicked':
@ -533,12 +533,12 @@ SnapTranslator.dict.he = {
'עכבר-יוצא',
'when %b':
'%b כאשר',
'when I receive %msgHat':
'%msgHat כאשר_אני_מקבל',
'broadcast %msg':
'שדר_הודעה %msg',
'broadcast %msg and wait':
'והמתן %msg שדר_הודעה',
'when I receive %msgHat %message':
'%message %msgHat כאשר_אני_מקבל',
'broadcast %msg %receive':
'שדר_הודעה %msg %receive',
'broadcast %msg %receive and wait':
'והמתן %msg %receive שדר_הודעה',
'Message name':
'שם ההודעה',
'message':

Wyświetl plik

@ -466,14 +466,14 @@ SnapTranslator.dict.hi = {
'पेन रंग सेट करें %clr',
'set background color to %clr':
'पकरने के लिए पृष्ठभूमि रंग सेट %clr',
'change pen %hsva by %n':
'कलम बदल दो %hsva से %n',
'change background %hsva by %n':
'पृष्ठभूमि का रंग बदलें %hsva से %n',
'set pen %hsva to %n':
' पेन सेट %hsva सेवा मेरे %n',
'set background %hsva to %n':
'पृष्ठभूमि सेट %hsva सेवा मेरे %n',
'change pen %clrdim by %n':
'कलम बदल दो %clrdim से %n',
'change background %clrdim by %n':
'पृष्ठभूमि का रंग बदलें %clrdim से %n',
'set pen %clrdim to %n':
' पेन सेट %clrdim सेवा मेरे %n',
'set background %clrdim to %n':
'पृष्ठभूमि सेट %clrdim सेवा मेरे %n',
'pen %pen':
'कलम %pen',
'change pen size by %n':
@ -496,8 +496,8 @@ SnapTranslator.dict.hi = {
// control:
'when %greenflag clicked':
'जब %greenflag क्लिक किया',
'when %keyHat key pressed':
'जब %keyHat दबाई जाती है',
'when %keyHat key pressed %keyName':
'जब %keyHat दबाई जाती है %keyName',
'when I am %interaction':
'जब मैं %interaction werde',
'clicked':
@ -518,12 +518,12 @@ SnapTranslator.dict.hi = {
'रोका हुआ',
'when %b':
'जब %b',
'when I receive %msgHat':
'जब मैं प्राप्त करता हूँ %msgHat ',
'broadcast %msg':
'प्रसारण %msg',
'broadcast %msg and wait':
'प्रसारण %msg और रुको',
'when I receive %msgHat %message':
'जब मैं प्राप्त करता हूँ %msgHat %message',
'broadcast %msg %receive':
'प्रसारण %msg %receive',
'broadcast %msg %receive and wait':
'प्रसारण %msg %receive और रुको',
'send %msg to %spr':
'भेजने %msg को %spr',
'Message name':

Wyświetl plik

@ -417,8 +417,8 @@ SnapTranslator.dict.hr = {
// control:
'when %greenflag clicked':
'kad kliknem na %greenflag',
'when %keyHat key pressed':
'kad pritisnem tipku %keyHat',
'when %keyHat key pressed %keyName':
'kad pritisnem tipku %keyHat %keyName',
'when I am %interaction':
'kad me %interaction',
'clicked':
@ -431,12 +431,12 @@ SnapTranslator.dict.hr = {
'mi\u0161 posjeti',
'mouse-departed':
'mi\u0161 napusti',
'when I receive %msgHat':
'kad spazim doga\u0111aj %msgHat',
'broadcast %msg':
'objavljujem doga\u0111aj %msg',
'broadcast %msg and wait':
'objavljujem doga\u0111aj %msg i \u010Dekam',
'when I receive %msgHat %message':
'kad spazim doga\u0111aj %msgHat %message',
'broadcast %msg %receive':
'objavljujem doga\u0111aj %msg %receive',
'broadcast %msg %receive and wait':
'objavljujem doga\u0111aj %msg %receive i \u010Dekam',
'Message name':
'Ime doga\u0111aja',
'message':

Plik diff jest za duży Load Diff

Wyświetl plik

@ -425,8 +425,8 @@ SnapTranslator.dict.ia = {
// control:
'when %greenflag clicked':
'cuando %greenflag clic',
'when %keyHat key pressed':
'cuando %keyHat clave pressa',
'when %keyHat key pressed %keyName':
'cuando %keyHat clave pressa %keyName',
'when I am %interaction':
'cuando io es %interaction',
'clicked':
@ -439,12 +439,14 @@ SnapTranslator.dict.ia = {
'mure entra',
'mouse-departed':
'mure parti', // 'quita'
'when I receive %msgHat':
'cuando io recipe %msgHat',
'broadcast %msg':
'mitte %msg a omne',
'broadcast %msg and wait':
'mitte %msg a omni e attende',
'when I receive %msgHat %message':
'cuando io recipe %msgHat %message',
'broadcast %msg %receive':
'mitte %msg %receive',
'broadcast %msg %receive and wait':
'mitte %msg %receive e attende',
'to':
'a',
'Message name':
'Nomine de message',
'message':

Wyświetl plik

@ -417,8 +417,8 @@ SnapTranslator.dict.id = {
// control:
'when %greenflag clicked':
'ketika %greenflag diklik',
'when %keyHat key pressed':
'ketika %keyHat ditekan',
'when %keyHat key pressed %keyName':
'ketika %keyHat ditekan %keyName',
'when I am %interaction':
'ketika aku %interaction',
'clicked':
@ -433,12 +433,12 @@ SnapTranslator.dict.id = {
'ditinggalkan tetikus',
'when %b':
'ketika %b',
'when I receive %msgHat':
'ketika aku menerima %msgHat',
'broadcast %msg':
'beritakan %msg',
'broadcast %msg and wait':
'beritakan %msg dan tunggu',
'when I receive %msgHat %message':
'ketika aku menerima %msgHat %message',
'broadcast %msg %receive':
'beritakan %msg %receive',
'broadcast %msg %receive and wait':
'beritakan %msg %receive dan tunggu',
'Message name':
'Nama pesan',
'message':

Wyświetl plik

@ -6,7 +6,7 @@
written by Jens nig
Copyright (C) 2012 by Jens nig
Copyright (C) 2021 by Jens nig
This file is part of Snap!.
@ -185,7 +185,7 @@ SnapTranslator.dict.it = {
'translator_e-mail':
's_federici@yahoo.com, albertofirpo12@gmail.com, zairik@gmail.com', // optional
'last_changed':
'2020-11-19', // this, too, will appear in the Translators tab
'2021-12-26', // this, too, will appear in the Translators tab
// GUI
// control bar:
@ -468,14 +468,14 @@ SnapTranslator.dict.it = {
'usa penna di colore %clr',
'set background color to %clr':
'porta colore sfondo a %clr',
'change pen %hsva by %n':
'cambia %hsva della penna di %n',
'change background %hsva by %n':
'cambia %hsva sfondo di %n',
'set pen %hsva to %n':
'porta %hsva della penna a %n',
'set background %hsva to %n':
'porta %hsva sfondo a %n',
'change pen %clrdim by %n':
'cambia %clrdim della penna di %n',
'change background %clrdim by %n':
'cambia %clrdim sfondo di %n',
'set pen %clrdim to %n':
'porta %clrdim della penna a %n',
'set background %clrdim to %n':
'porta %clrdim sfondo a %n',
'pen %pen':
'%pen della penna',
'change pen size by %n':
@ -498,8 +498,10 @@ SnapTranslator.dict.it = {
// control:
'when %greenflag clicked':
'quando si clicca su %greenflag',
'when %keyHat key pressed':
'quando si preme il tasto %keyHat',
'when %keyHat key pressed %keyName':
'quando si preme il tasto %keyHat %keyName',
'key':
'tasto',
'when I am %interaction':
'quando sono %interaction',
'clicked':
@ -520,14 +522,14 @@ SnapTranslator.dict.it = {
'fermo',
'when %b':
'quando %b',
'when I receive %msgHat':
'quando ricevo %msgHat',
'broadcast %msg':
'invia a tutti %msg',
'broadcast %msg and wait':
'invia a tutti %msg e attendi',
'send %msg to %spr':
'invia %msg a %spr',
'when I receive %msgHat %message':
'quando ricevo %msgHat %message',
'broadcast %msg %receive':
'invia %msg %receive',
'broadcast %msg %receive and wait':
'invia %msg %receive e attendi',
'to':
'a',
'Message name':
'Nome messaggio',
'message':
@ -592,7 +594,15 @@ SnapTranslator.dict.it = {
'me stesso',
'delete this clone':
'elimina questo clone',
'tell %spr to %cmdRing %inputs':
'switch to scene %scn %send':
'passa alla scena %scn %send',
'and send':
'e invia',
'next':
'successiva',
'previous':
'precedente',
'tell %spr to %cmdRing %inputs':
'chiedi a %spr di eseguire %cmdRing %inputs',
'ask %spr for %repRing %inputs':
'chiedi a %spr il valore di %repRing %inputs',
@ -622,6 +632,8 @@ SnapTranslator.dict.it = {
'%rel da %dst',
'distance':
'distanza',
'ray length':
'lunghezza raggio',
'%asp at %loc' :
'valore di %asp alla posizione %loc',
'r-g-b-a':
@ -712,6 +724,14 @@ SnapTranslator.dict.it = {
'frame',
'log pen vectors':
'log vettori della penna',
'%block of block %repRing':
'%block blocco %repRing',
'definition':
'definizione',
'custom?':
'\u00E8 personalizzato',
'global?':
'\u00E8 globale',
// operators:
'%n mod %n':
@ -796,6 +816,20 @@ SnapTranslator.dict.it = {
'tutto meno il primo elemento di %l',
'length of %l':
'lunghezza di %l',
'%la of %l':
'%la di %l',
'rank':
'rango',
'dimensions':
'dimensione',
'flatten':
'appiattimento',
'columns':
'colonne',
'reverse':
'inversa',
'lines':
'linee',
'%l contains %s':
'%l contiene %s',
'thing':
@ -830,6 +864,8 @@ SnapTranslator.dict.it = {
'posizione',
'append %lists':
'unisci %lists',
'reshape %l to %nums':
'riorganizza %l su %nums',
'add %s to %l':
'aggiungi %s a %l',
'delete %ida of %l':
@ -897,7 +933,19 @@ SnapTranslator.dict.it = {
'save global custom block\ndefinitions as XML':
'salva le definizioni dei nuovi blocchi globali\nin formato XML',
'Unused blocks...':
'Blocchi inutilizzati...',
'Blocchi inutilizzati...',
'Hide blocks...':
'Nascondi blocchi...',
'New category...':
'Nuova categoria...',
'Remove a category...':
'Rimuovi una categoria...',
'Scenes...':
'Scene...',
'New scene':
'Nuova scena',
'Add scene...':
'Aggiungi scena...',
'find unused global custom blocks\nand remove their definitions':
'trova i nuobi blocchi inutilizzati\ne rimuove le loro definizioni',
'Remove unused blocks':
@ -930,6 +978,12 @@ SnapTranslator.dict.it = {
'Seleziona un costume dalla libreria dei media',
'Select a sound from the media library':
'Seleziona un suono dalla libreria dei media',
'Undelete sprites...':
'Ripristina sprite...',
'Bring back deleted sprites':
'Ripristina gli sprite rimossi',
'trash is empty':
'il cestino \u00E8 vuoto',
//Libraries
'Import library':
@ -1044,14 +1098,20 @@ SnapTranslator.dict.it = {
'abilitare per mostrare sempre i tipi degli slot\nnella finestra di creazione degli input',
'uncheck to use the input\ndialog in short form':
'disabilitare per non mostrare automaticamente i tipi degli slot\nnella finestra di creazione degli input',
'Virtual keyboard':
'Tastiera virtuale',
'uncheck to disable\nvirtual keyboard support\nfor mobile devices':
'disabilitare per non usare il supporto\ndella tastiera virtuale con i dispositivi mobili',
'check to enable\nvirtual keyboard support\nfor mobile devices':
'abilitare per usare il supporto della\ntastiera virtuale con i dispositivi mobili',
'JavaScript extensions':
'Estensioni JavaScript',
'check to support\nnative JavaScript functions':
'abilitare per supportare\nfunzioni JavaScript native',
'uncheck to disable support for\nnative JavaScript functions':
'disabilitare per rimuovere il supporto\nalle funzioni JavaScript native',
'JavaScript extensions for Snap!\nare turned off':
'Le estensioni JavaScript per Snap!\nsono disabilitate',
'Extension blocks':
'Blocchi estensione',
'uncheck to hide extension\nprimitives in the palette':
'disabilitare per nascondere le primitive\ndelle estensioni nell\u0027elenco dei blocchi',
'check to show extension\nprimitives in the palette':
'abilitare per mostrare le primitive\ndelle estensioni nell\u0027elenco dei blocchi',
'Input sliders':
'Usa cursore per gli input',
'uncheck to disable\ninput sliders for\nentry fields':
@ -1106,12 +1166,6 @@ SnapTranslator.dict.it = {
'disabilitare per\npermettere di interrompere gli script',
'check to disallow\nscript reentrance':
'abilitare per\nimpedire di interrompere gli script',
'Prefer smooth animations':
'Animazioni a framerate fisso',
'uncheck for greater speed\nat variable frame rates':
'disabilitare per massima velocità\na framerate variabile',
'check for smooth, predictable\nanimations across computers':
'abilitare per avere animazioni\nfluide su tutti i computer',
'Flat line ends':
'Estremit\u00E0 delle linee squadrata',
'check for flat ends of lines':
@ -1131,10 +1185,39 @@ SnapTranslator.dict.it = {
'Log pen vectors':
'Log dei vettori della penna',
'uncheck to turn off\nlogging pen vectors':
'disattiva per non loggare\ni vettori della penna',
'disabilitare per non loggare\ni vettori della penna',
'check to turn on\nlogging pen vectors':
'attiva per loggare\ni vettori della penna',
'abilitare per loggare\ni vettori della penna',
'Single palette':
'Elenco dei blocchi continuo',
'check to show all blocks in a single palette':
'abilitare per mostrare tutti\ni blocchi in un unico elenco',
'uncheck to show only the selected category\'s blocks':
'disabilitare per mostrare solo i blocchi\ndella categoria selezionata',
'Show categories':
'Mostra categorie',
'uncheck to hide\ncategory names\nin the palette':
'disabilitare per nascondere\ni nomi delle categorie\nnell\'elenco dei blocchi',
'check to show\ncategory names\nin the palette':
'abilitare per mostrare\ni nomi delle categorie\nnell\'elenco dei blocchi',
'Show buttons':
'Mostra pulsanti',
'uncheck to hide buttons\nin the palette':
'disabilitare per nascondere\ni pulsanti delle categorie',
'check to show buttons\nin the palette':
'abilitare per mostrare\ni pulsanti delle categorie',
'HSL pen color model':
'Modello HSL per i colori della penna',
'uncheck to switch pen colors\nand graphic effects to HSV':
'disabilitare per passare a colori della penna\ne effetti grafici HSV',
'check to switch pen colors\nand graphic effects to HSL':
'disabilitare per passare a colori della penna\ne effetti grafici HSL',
'Disable click-to-run':
'Disabilitare esecuzione con click',
'enable\ndirectly running blocks\nby clicking on them':
'abilitare per\neseguire direttamente i blocchi\ncliccandoli',
'check to disable\ndirectly running blocks\nby clicking on them':
'disabilitare per\nnon eseguire direttamente i blocchi\ncliccandoli',
// inputs
'with inputs':
@ -1153,10 +1236,28 @@ SnapTranslator.dict.it = {
// palette:
'find blocks':
'trova blocchi',
'hide primitives':
'nascondi primitive',
'show primitives':
'mostra primitive',
'hide blocks...':
'nascondi blocchi...',
'Hide blocks in palette':
'Nascondi i blocchi nell\'elenco dei blocchi',
'unused':
'non usati',
'make a category...':
'crea una categoria...',
'New Category':
'Nuova Categoria',
'Blocks category name:':
'Nome della nuova categoria di blocchi:',
'Category color':
'Colore della categoria',
'red':
'rosso',
'green':
'verde',
'blue':
'blu',
'delete a category...':
'rimuovi una categoria...',
// blocks:
'help...':
@ -1215,6 +1316,12 @@ SnapTranslator.dict.it = {
'incluse le dipendenze',
'edit...':
'modifica...',
'translations...':
'traduzioni...',
'block variables...':
'variabili del blocco...',
'in palette':
'nell\'elenco dei blocchi',
// sprites
'edit':
@ -1500,8 +1607,12 @@ SnapTranslator.dict.it = {
// new project
'New Project':
'Nuovo Progetto',
'Unsaved Changes!':
'Ci sono modifiche non salvate!',
'Replace the current project with a new one?':
'Vuoi sostituire il progetto attuale con uno nuovo?',
'Backup failed.\nThis cannot be undone, proceed anyway?':
'Backup fallito.\nQuesta operazione non può essere annullata, vuoi procedere?',
// save project
'Save Project As...':
@ -1720,6 +1831,8 @@ SnapTranslator.dict.it = {
'saturazione',
'brightness':
'luminosit\u00E0',
'lightness':
'luminosit\u00E0',
'transparency':
'trasparenza',
'ghost':
@ -1734,7 +1847,9 @@ SnapTranslator.dict.it = {
// keys
'space':
'spazio',
'up arrow':
'enter':
'invio',
'up arrow':
'freccia su',
'down arrow':
'freccia gi\u00F9',
@ -1981,4 +2096,3 @@ SnapTranslator.dict.it = {
'uncheck to\ndisinherit':
'disabilita per non ereditare'
};

Wyświetl plik

@ -416,16 +416,16 @@ SnapTranslator.dict.ja = {
// control:
'when %greenflag clicked':
'%greenflag が押されたとき',
'when %keyHat key pressed':
'%keyHat が押されたとき',
'when I am clicked':
'自分がクリックされたとき',
'when I receive %msgHat':
'%msgHat を受け取ったとき',
'broadcast %msg':
'%msg を送る',
'broadcast %msg and wait':
'%msg を送って待つ',
'when %keyHat key pressed %keyName':
'%keyHat %keyName が押されたとき',
'when I am %interaction':
'%interaction 自分がクリックされたとき',
'when I receive %msgHat %message':
'%msgHat %message を受け取ったとき',
'broadcast %msg %receive':
'%msg %receive を送る',
'broadcast %msg %receive and wait':
'%msg %receive を送って待つ',
'Message name':
'メッセージ名',
'wait %n secs':

Wyświetl plik

@ -416,16 +416,16 @@ SnapTranslator.dict.ja_HIRA = {
// control:
'when %greenflag clicked':
'%greenflag がおされたとき',
'when %keyHat key pressed':
'%keyHat がおされたとき',
'when I am clicked':
'じぶんがクリックされたとき',
'when I receive %msgHat':
'%msgHat をうけとったとき',
'broadcast %msg':
'%msg をおくる',
'broadcast %msg and wait':
'%msg をおくってまつ',
'when %keyHat key pressed %keyName':
'%keyHat %keyName がおされたとき',
'when I am %interaction':
'%interaction じぶんがクリックされたとき',
'when I receive %msgHat %message':
'%msgHat %message をうけとったとき',
'broadcast %msg %receive':
'%msg %receive をおくる',
'broadcast %msg %receive and wait':
'%msg %receive をおくってまつ',
'Message name':
'メッセージめい',
'wait %n secs':

Wyświetl plik

@ -407,16 +407,16 @@ SnapTranslator.dict.kn = {
// control:
'when %greenflag clicked':
'\u0CAF\u0CBE\u0CB5\u0CBE\u0C97\u0CB2\u0CBE\u0CA6\u0CB0\u0CC2 %greenflag \u0C92\u0CA4\u0CCD\u0CA4\u0CBF\u0CA6\u0CBE\u0C97',
'when %keyHat key pressed':
'\u0CAF\u0CBE\u0CB5\u0CBE\u0C97\u0CB2\u0CBE\u0CA6\u0CB0\u0CC2 %keyHat \u0C95\u0CC0\u0020\u0C92\u0CA4\u0CCD\u0CA4\u0CBF\u0CA6\u0CBE\u0C97',
'when I am clicked':
'\u0CAF\u0CBE\u0CB5\u0CBE\u0C97\u0CB2\u0CBE\u0CA6\u0CB0\u0CC2\u0020\u0CA8\u0CBE\u0CA8\u0CC1\u0020\u0C92\u0CA4\u0CCD\u0CA4\u0CBF\u0CA6\u0CBE\u0C97',
'when I receive %msgHat':
'\u0CAF\u0CBE\u0CB5\u0CBE\u0C97\u0CB2\u0CBE\u0CA6\u0CB0\u0CC1 %msgHat \u0CB8\u0CCD\u0CB5\u0CC0\u0C95\u0CB0\u0CBF\u0CB8\u0CBF\u0CA6\u0CBE\u0C97',
'broadcast %msg':
'\u0CAA\u0CCD\u0CB0\u0CB8\u0CB0\u0CBF\u0CB8\u0CC1 %msg',
'broadcast %msg and wait':
'\u0CAA\u0CCD\u0CB0\u0CB8\u0CB0\u0CBF\u0CB8\u0CC1 %msg \u0CAE\u0CA4\u0CCD\u0CA4\u0CC1\u0020\u0C95\u0CBE\u0CAF\u0CAC\u0CC7\u0C95\u0CC1',
'when %keyHat key pressed %keyName':
'\u0CAF\u0CBE\u0CB5\u0CBE\u0C97\u0CB2\u0CBE\u0CA6\u0CB0\u0CC2 %keyHat %keyName \u0C95\u0CC0\u0020\u0C92\u0CA4\u0CCD\u0CA4\u0CBF\u0CA6\u0CBE\u0C97',
'when I am %interaction':
'\u0CAF\u0CBE\u0CB5\u0CBE\u0C97\u0CB2\u0CBE\u0CA6\u0CB0\u0CC2\u0020\u0CA8\u0CBE\u0CA8\u0CC1\u0020\u0C92\u0CA4\u0CCD\u0CA4\u0CBF\u0CA6\u0CBE\u0C97 %interaction',
'when I receive %msgHat %message':
'\u0CAF\u0CBE\u0CB5\u0CBE\u0C97\u0CB2\u0CBE\u0CA6\u0CB0\u0CC1 %msgHat %message \u0CB8\u0CCD\u0CB5\u0CC0\u0C95\u0CB0\u0CBF\u0CB8\u0CBF\u0CA6\u0CBE\u0C97',
'broadcast %msg %receive':
'\u0CAA\u0CCD\u0CB0\u0CB8\u0CB0\u0CBF\u0CB8\u0CC1 %msg %receive',
'broadcast %msg %receive and wait':
'\u0CAA\u0CCD\u0CB0\u0CB8\u0CB0\u0CBF\u0CB8\u0CC1 %msg %receive \u0CAE\u0CA4\u0CCD\u0CA4\u0CC1\u0020\u0C95\u0CBE\u0CAF\u0CAC\u0CC7\u0C95\u0CC1',
'Message name':
'\u0CAE\u0CBE\u0CB9\u0CBF\u0CA4\u0CBF\u0CAF\u0020\u0CB9\u0CC6\u0CB8\u0CB0\u0CC1',
'message':

Wyświetl plik

@ -423,16 +423,16 @@ SnapTranslator.dict.ko = {
// control:
'when %greenflag clicked':
'%greenflag 클릭했을 때',
'when %keyHat key pressed':
'%keyHat 키를 눌렀을 때',
'when I am clicked':
'이 스프라이트를 클릭했을 때',
'when I receive %msgHat':
'%msgHat 을(를) 받았을 때',
'broadcast %msg':
'%msg 방송하기',
'broadcast %msg and wait':
'%msg 방송하고 기다리기',
'when %keyHat key pressed %keyName':
'%keyHat %keyName 키를 눌렀을 때',
'when I am %interaction':
'이 스프라이트를 클릭했을 때 %interaction',
'when I receive %msgHat %message':
'%msgHat %message 을(를) 받았을 때',
'broadcast %msg %receive':
'%msg %receive 방송하기',
'broadcast %msg %receive and wait':
'%msg %receive 방송하고 기다리기',
'Message name':
'메시지 이름',
'message':

Wyświetl plik

@ -414,16 +414,16 @@ SnapTranslator.dict.ml = {
// control:
'when %greenflag clicked':
'%greenflag ക്ലിക്ക് ചെയ്യുമ്പോള്‍',
'when %keyHat key pressed':
'%keyHat കീ അമര്‍ത്തുമ്പോള്‍',
'when I am clicked':
'Wenn ich angeklickt werde',
'when I receive %msgHat':
'ഞാന്‍ %msgHat സ്വീകരിക്കുമ്പോള്‍',
'broadcast %msg':
'%msg വിളംബരം ചെയ്യുക',
'broadcast %msg and wait':
'%msg വിളംബരം ചെയ്തു കാത്തിരിക്കുക',
'when %keyHat key pressed %keyName':
'%keyHat %keyName കീ അമര്‍ത്തുമ്പോള്‍',
'when I am %interaction':
'when I am %interaction',
'when I receive %msgHat %message':
'ഞാന്‍ %msgHat %message സ്വീകരിക്കുമ്പോള്‍',
'broadcast %msg %receive':
'%msg %receive വിളംബരം ചെയ്യുക',
'broadcast %msg %receive and wait':
'%msg %receive വിളംബരം ചെയ്തു കാത്തിരിക്കുക',
'Message name':
'സന്ദേശത്തിന്റെ പേര്',
'message':

Wyświetl plik

@ -463,14 +463,14 @@ SnapTranslator.dict.nl = {
'maak penkleur %clr',
'set background color to %clr':
'maak achtergrondkleur %clr',
'change pen %hsva by %n':
'verander pen %hsva met %n',
'set pen %hsva to %n':
'maak pen %hsva %n',
'change achtergrondkleur %hsva by %n':
'verander pen %hsva met %n',
'set achtergrondkleur %hsva to %n':
'maak pen %hsva %n',
'change pen %clrdim by %n':
'verander pen %clrdim met %n',
'set pen %clrdim to %n':
'maak pen %clrdim %n',
'change achtergrondkleur %clrdim by %n':
'verander pen %clrdim met %n',
'set achtergrondkleur %clrdim to %n':
'maak pen %clrdim %n',
'pen %pen':
'pen %pen',
'change pen size by %n':
@ -493,8 +493,8 @@ SnapTranslator.dict.nl = {
// control:
'when %greenflag clicked':
'wanneer %greenflag wordt aangeklikt',
'when %keyHat key pressed':
'wanneer %keyHat wordt ingedrukt',
'when %keyHat key pressed %keyName':
'wanneer %keyHat wordt ingedrukt %keyName',
'when I am %interaction':
'wanneer ik %interaction word',
'clicked':
@ -515,12 +515,14 @@ SnapTranslator.dict.nl = {
'gestopt',
'when %b':
'wanneer %b',
'when I receive %msgHat':
'wanneer ik %msgHat ontvang',
'broadcast %msg':
'zend signaal %msg',
'broadcast %msg and wait':
'zend signaal %msg en wacht',
'when I receive %msgHat %message':
'wanneer ik %msgHat ontvang %message',
'broadcast %msg %receive':
'zend signaal %msg %receive',
'broadcast %msg %receive and wait':
'zend signaal %msg %receive en wacht',
'to':
'naar',
'send %msg to %spr':
'zend %msg naar %spr',
'Message name':

Wyświetl plik

@ -468,14 +468,14 @@ SnapTranslator.dict.no = {
'sett pennfarge til %clr',
'set background color to %clr':
'sett bakgrunnsfarge til %clr',
'change pen %hsva by %n':
'endre penn %hsva med %n',
'change background %hsva by %n':
'endre bakgrunn %hsva med %n',
'set pen %hsva to %n':
'sett penn %hsva til %n',
'set background %hsva to %n':
'sett bakgrunn %hsva til %n',
'change pen %clrdim by %n':
'endre penn %clrdim med %n',
'change background %clrdim by %n':
'endre bakgrunn %clrdim med %n',
'set pen %clrdim to %n':
'sett penn %clrdim til %n',
'set background %clrdim to %n':
'sett bakgrunn %clrdim til %n',
'pen %pen':
'penn %pen',
'change pen size by %n':
@ -496,8 +496,8 @@ SnapTranslator.dict.no = {
// control:
'when %greenflag clicked':
'n\u00E5r %greenflag klikket',
'when %keyHat key pressed':
'n\u00E5r tast %keyHat trykket',
'when %keyHat key pressed %keyName':
'n\u00E5r tast %keyHat trykket %keyName',
'when I am %interaction':
'n\u00E5r jeg blir %interaction',
'clicked':
@ -518,12 +518,14 @@ SnapTranslator.dict.no = {
'stoppet',
'when %b':
'n\u00E5r %b',
'when I receive %msgHat':
'n\u00E5r jeg mottar %msgHat',
'broadcast %msg':
'kringkast %msg',
'broadcast %msg and wait':
'kringkast %msg og vent',
'when I receive %msgHat %message':
'n\u00E5r jeg mottar %msgHat %message',
'broadcast %msg %receive':
'kringkast %msg %receive',
'broadcast %msg %receive and wait':
'kringkast %msg %receive og vent',
'to':
'til',
'send %msg to %spr':
'send %msg til %spr',
'Message name':

Wyświetl plik

@ -472,14 +472,14 @@ SnapTranslator.dict.pl = {
'ustaw kolor pisaka %clr',
'set background color to %clr':
'ustaw kolor t\u0142a %clr',
'change pen %hsva by %n':
'zmie\u0144 pisak %hsva o %n',
'change background %hsva by %n':
'zmie\u0144 t\u0142o %hsva o %n',
'set pen %hsva to %n':
'ustaw pisak %hsva na %n',
'set background %hsva to %n':
'ustaw t\u0142o %hsva na %n',
'change pen %clrdim by %n':
'zmie\u0144 pisak %clrdim o %n',
'change background %clrdim by %n':
'zmie\u0144 t\u0142o %clrdim o %n',
'set pen %clrdim to %n':
'ustaw pisak %clrdim na %n',
'set background %clrdim to %n':
'ustaw t\u0142o %clrdim na %n',
'pen %pen':
'pisak %pen',
'change pen size by %n':
@ -502,8 +502,8 @@ SnapTranslator.dict.pl = {
// control:
'when %greenflag clicked':
'kiedy klikni\u0119to %greenflag',
'when %keyHat key pressed':
'kiedy klawisz %keyHat naci\u015Bni\u0119ty',
'when %keyHat key pressed %keyName':
'kiedy klawisz %keyHat naci\u015Bni\u0119ty %keyName',
'when I am %interaction':
'kiedy zostan\u0119 %interaction',
'clicked':
@ -524,12 +524,14 @@ SnapTranslator.dict.pl = {
'zatrzymany',
'when %b':
'kiedy %b',
'when I receive %msgHat':
'kiedy otrzymam %msgHat',
'broadcast %msg':
'nadaj %msg do wszystkich',
'broadcast %msg and wait':
'nadaj %msg do wszystkich i czekaj',
'when I receive %msgHat %message':
'kiedy otrzymam %msgHat %message',
'broadcast %msg %receive':
'nadaj %msg %receive',
'broadcast %msg %receive and wait':
'nadaj %msg %receive i czekaj',
'to':
'do',
'send %msg to %spr':
'nadaj %msg do %spr',
'Message name':
@ -561,7 +563,7 @@ SnapTranslator.dict.pl = {
'stop %stopChoices':
'zatrzymaj %stopChoices',
'all':
'wszystko',
'wszystkich',
'this script':
'ten skrypt',
'this block':

Wyświetl plik

@ -469,14 +469,14 @@ SnapTranslator.dict.pt = {
'altera a cor da tua caneta para %clr',
'set background color to %clr':
'altera a cor do fundo para %clr',
'change pen %hsva by %n':
'adiciona a %hsva da tua caneta o valor %n',
'change background %hsva by %n':
'adiciona a %hsva do fundo o valor %n',
'set pen %hsva to %n':
'altera %hsva da tua caneta para %n',
'set background %hsva to %n':
'altera %hsva do fundo para %n',
'change pen %clrdim by %n':
'adiciona a %clrdim da tua caneta o valor %n',
'change background %clrdim by %n':
'adiciona a %clrdim do fundo o valor %n',
'set pen %clrdim to %n':
'altera %clrdim da tua caneta para %n',
'set background %clrdim to %n':
'altera %clrdim do fundo para %n',
'pen %pen':
'%pen da tua caneta',
'change pen size by %n':
@ -497,8 +497,8 @@ SnapTranslator.dict.pt = {
// controlo:
'when %greenflag clicked':
'Quando alguém clicar em %greenflag',
'when %keyHat key pressed':
'Quando alguém pressionar a tecla %keyHat',
'when %keyHat key pressed %keyName':
'Quando alguém pressionar a tecla %keyHat %keyName',
'when I am %interaction':
'Quando o rato %interaction',
'clicked':
@ -519,12 +519,14 @@ SnapTranslator.dict.pt = {
'parar',
'when %b':
'Quando %b',
'when I receive %msgHat':
'Quando receberes a mensagem %msgHat',
'broadcast %msg':
'difunde a mensagem %msg',
'broadcast %msg and wait':
'difunde a mensagem %msg e espera',
'when I receive %msgHat %message':
'Quando receberes a mensagem %msgHat %message',
'broadcast %msg %receive':
'difunde a mensagem %msg %receive',
'broadcast %msg %receive and wait':
'difunde a mensagem %msg %receive e espera',
'to':
'a',
'send %msg to %spr':
'envia a mensagem %msg a %spr',
'Message name':

Wyświetl plik

@ -4,7 +4,7 @@
Brazilian Portuguese translation for SNAP!
translated by Aldo von Wangenheim
translated by Aldo von Wangenheim, later updated by Cassiano D'Andrea
Copyright (C) 2014 by Aldo von Wangenheim
@ -181,11 +181,11 @@ SnapTranslator.dict.pt_BR = {
'language_name':
'Português do Brasil',
'language_translator':
'Aldo von Wangenheim',
"Aldo von Wangenheim, Cassiano D'Andrea",
'translator_e-mail':
'awangenh@inf.ufsc.br',
'awangenh@inf.ufsc.br, cassiano.dandrea@tagview.com.br',
'last_changed':
'2014-04-20',
'2021-11-11',
// GUI
// control bar:
@ -230,9 +230,9 @@ SnapTranslator.dict.pt_BR = {
// nomes:
'Sprite':
'Ator',
'ator',
'Stage':
'Palco',
'palco',
// estilos de rotação:
'don\'t rotate':
@ -301,11 +301,11 @@ SnapTranslator.dict.pt_BR = {
'point towards %dst':
'aponte para %dst',
'go to x: %n y: %n':
'vá para x: %n , y: %n ',
'vá para x: %n y: %n ',
'go to %dst':
'vá para %dst',
'glide %n secs to x: %n y: %n':
'deslize por %n segundos ate x: %n , y: %n ',
'deslize por %n segundos até x: %n y: %n ',
'change x by %n':
'adicione %n a x',
'set x to %n':
@ -377,22 +377,56 @@ SnapTranslator.dict.pt_BR = {
'toque o som %snd até o fim',
'stop all sounds':
'pare todos os sons',
'play sound %snd at %rate Hz':
'toque o som %snd em %rate Hz',
'%aa of sound %snd':
'%aa do som %snd',
'new sound %l rate %rate Hz':
'nova %l com taxa de som de %rate Hz',
'rest for %n beats':
'silêncio por %n tempos',
'play note %n for %n beats':
'toque a nota %n durante %n tempos',
'silêncio por %n batidas',
'play note %note for %n beats':
'toque a nota %note durante %n batidas',
'change tempo by %n':
'adicione %n tempos ao andamento',
'adicione %n tempos/bpm ao andamento',
'set tempo to %n bpm':
'altere o andamento para %n tempos',
'mude o andamento para %n tempos/bpm',
'tempo':
'andamento',
'set instrument to %inst':
'mude o instrumento para %inst',
'change volume by %n':
'adicione %n ao volume',
'set volume to %n %':
'mude o volume para %n %',
'change balance by %n':
'adicione %n ao balanço',
'set balance to %n':
'mude o balanço para %n',
'balance':
'balanço',
'volume':
'volume',
'play frequency %n Hz':
'reproduzir frequência de %n Hz',
'stop frequency':
'parar a frequência',
// %inst values for (set instrument to %inst):
'(1) sine':
'(1) \u223F\u223F (onda senoidal)',
'(2) square':
'(2) \u238D\u238D (onda quadrada)',
'(3) sawtooth':
'(3) \u2A58\u2A58 (onda dentada)',
'(4) triangle':
'(4) \u22C0\u22C0 (onda triangular)',
// Caneta:
'clear':
'apague tudo',
'pen down':
'use a caneta',
'abaixe a caneta',
'pen up':
'levante a caneta',
'set pen color to %clr':
@ -411,20 +445,40 @@ SnapTranslator.dict.pt_BR = {
'mude a espessura da caneta para %n',
'stamp':
'carimbe',
'fill':
'preencha',
'pen down?':
'caneta abaixada?',
'change pen %clrdim by %n':
'adicione ao/à %clrdim da caneta o valor %n',
'set pen %clrdim to %n':
'mude o/a %clrdim da caneta para %n',
'write %s size %n':
'escreva %s com tamanho %n',
'pen %pen':
'%pen da caneta',
'paste on %spr':
'cole sobre %spr',
'cut from %spr':
'recorte de %spr',
// Eventos e Controle:
'when %greenflag clicked':
'quando clicar em %greenflag',
'when %keyHat key pressed':
'quando a tecla %keyHat for pressionada',
'when I am clicked':
'quando este ator for clicado',
'when I receive %msgHat':
'quando receber %msgHat',
'broadcast %msg':
'envie %msg a todos',
'broadcast %msg and wait':
'envie %msg a todos e espere',
'when %keyHat key pressed %keyName':
'quando a tecla %keyHat for pressionada %keyName',
'when I am %interaction':
'quando eu for %interaction',
'when %b':
'quando %b',
'when I receive %msgHat %message':
'quando receber %msgHat %message',
'broadcast %msg %receive':
'envie %msg %receive',
'broadcast %msg %receive and wait':
'envie %msg %receive e aguarde',
'to':
'a',
'Message name':
'nome da mensagem',
'message':
@ -432,19 +486,23 @@ SnapTranslator.dict.pt_BR = {
'any message':
'qualquer mensagem',
'wait %n secs':
'espere %n segundos',
'aguarde %n segundos',
'wait until %b':
'espere até que %b',
'aguarde até que %b',
'forever %loop':
'sempre %loop',
'repeat %n %loop':
'repita %n vezes %loop',
'repeat until %b %loop':
'repita até que %b %loop',
'for %upvar = %n to %n %cla':
'repita de %upvar = %n a %n %cla',
'if %b %c':
'se %b então %c',
'if %b %c else %c':
'se %b então %c senão %c',
'if %b then %s else %s':
'se %b então %s senão %s',
'report %s':
'reporte %s',
'stop %stopChoices':
@ -469,6 +527,10 @@ SnapTranslator.dict.pt_BR = {
'inicie execução de %cmdRing %inputs',
'call %repRing %inputs':
'chame %repRing %inputs',
'tell %spr to %cmdRing %inputs':
'diga a %spr que %cmdRing %inputs',
'ask %spr for %repRing %inputs':
'pergunte a %spr por %repRing %inputs',
'run %cmdRing w/continuation':
'execute %cmdRing com continuação',
'call %cmdRing w/continuation':
@ -479,10 +541,14 @@ SnapTranslator.dict.pt_BR = {
'quando este ator começar como clone',
'create a clone of %cln':
'crie clone de %cln',
'a new clone of %cln':
'um novo clone de %cln',
'myself':
'este ator',
'delete this clone':
'apague este clone',
'send %msg to %spr':
'enviar %msg a %spr',
// Sensores:
'touching %col ?':
@ -492,9 +558,9 @@ SnapTranslator.dict.pt_BR = {
'color %clr is touching %clr ?':
'a cor %clr está tocando na cor %clr',
'ask %s and wait':
'pergunte %s e espere a resposta',
'pergunte %s e aguarde a resposta',
'what\'s your name?':
'qual o seu nome?',
'qual é o seu nome?',
'answer':
'resposta',
'mouse x':
@ -508,9 +574,9 @@ SnapTranslator.dict.pt_BR = {
'distance to %dst':
'distância até %dst',
'reset timer':
'zere o cronómetro',
'zere o cronômetro',
'timer':
'valor do cronómetro',
'valor do cronômetro',
'%att of %spr':
'%att de %spr',
'http:// %s':
@ -535,7 +601,7 @@ SnapTranslator.dict.pt_BR = {
'%fun of %n':
'%fun de %n',
'pick random %n to %n':
'escolha um valor ao acaso entre %n e %n',
'escolha um valor aleatório entre %n e %n',
'%b and %b':
'%b e %b',
'%b or %b':
@ -590,16 +656,20 @@ SnapTranslator.dict.pt_BR = {
'esconda variável %var',
'script variables %scriptVars':
'crie as variáveis de roteiro %scriptVars',
'inherit %shd':
'herde %shd',
// listas:
'list %exp':
'uma lista com %exp',
'lista %exp',
'numbers from %n to %n':
'números entre %n e %n',
'%s in front of %l':
'%s inicia %l',
'%s em frente a %l',
'item %idx of %l':
'%idx de %l',
'item %idx de %l',
'all but first of %l':
'todos elementos de %l menos o primeiro',
'todos os itens de %l menos o primeiro',
'length of %l':
'tamanho de %l',
'%l contains %s':
@ -614,6 +684,24 @@ SnapTranslator.dict.pt_BR = {
'insira %s na posição %idx em %l',
'replace item %idx of %l with %s':
'substitua o item %idx de %l por %s',
'index of %s in %l':
'índice do item %s em %l',
'is %l empty?':
'%l vazia?',
'map %repRing over %l':
'mapear %repRing sobre %l',
'keep items %predRing from %l':
'manter/filtrar os itens que satisfaçam %predRing de %l',
'find first item %predRing in %l':
'encontrar primeiro item que satisfaça %predRing em %l',
'combine %l using %repRing':
'combinar/reduzir os itens de %l com %repRing',
'for each %upvar in %l %cla':
'repita para cada %upvar de %l %cla',
'append %lists':
'concatene %lists',
'reshape %l to %nums':
'altere as dimensões de %l para %nums',
// Outros
'Make a block':
@ -659,6 +747,8 @@ SnapTranslator.dict.pt_BR = {
'Exportar este projeto em modo texto…',
'Export project...':
'Exportar este projeto…',
'Export summary...':
'Exportar resumo...',
'show project data as XML\nin a new browser window':
'Mostrar os dados no\nformato XML numa nova janela do navegador.',
'Export blocks...':
@ -679,12 +769,30 @@ SnapTranslator.dict.pt_BR = {
'Entrar na sua conta…',
'Signup...':
'Registar uma nova conta…',
'Reset Password...':
'Redefinir senha...',
'Resend Verification Email...':
'Reenviar e-mail de verificação...',
'Logout':
'Encerrar sessão',
'Change Password...':
'Alterar senha',
'Open in Community Site':
'Abrir no site da comunidade',
// menu de preferências
'Language...':
'Língua…',
'Zoom blocks...':
'Zoom dos blocos…',
'Tamanho dos blocos…',
'Fade blocks...':
'Nível de transparência dos blocos...',
'Stage size...':
'Tamanho do palco...',
'Microphone resolution...':
'Resolução do microfone...',
'JavaScript extensions':
'Extensões do JavaScript',
'Blurred shadows':
'Sombras borradas',
'uncheck to use solid drop\nshadows and highlights':
@ -714,7 +822,7 @@ SnapTranslator.dict.pt_BR = {
'Long form input dialog':
'Forma longa da caixa de diálogo dos parâmetros',
'Plain prototype labels':
'Use texto simples para protótipos',
'Textos simples nos protótipos dos blocos',
'uncheck to always show (+) symbols\nin block prototype labels':
'Desmarque para mostrar sempre os símbolos (+)\nno texto dos protótipos dos blocos',
'check to hide (+) symbols\nin block prototype labels':
@ -756,17 +864,43 @@ SnapTranslator.dict.pt_BR = {
'check to enable\nIDE animations':
'Marque para ativar\nas animações da interface de usuário.',
'Thread safe scripts':
'Roteiros seguros face a threads',
'Roteiros seguros relativos a threads',
'uncheck to allow\nscript reentrance':
'Desmarque para permitir\nreentrância nos roteiros.',
'check to disallow\nscript reentrance':
'Marque para não permitir\nreentrância nos roteiros.',
'Prefer smooth animations':
'Prefira animações suaves',
'Flat line ends':
'Extremos de linhas retos',
'uncheck for round ends of lines':
'desmarque para desenhar\nlinhas com extremos arredondados',
'check for flat ends of lines':
'marque para desenhar\nlinhas com extremos retos',
'uncheck for greater speed\nat variable frame rates':
'Desmarque para aumentar a velocidade\npermitindo ritmos variáveis das tramas nas animações.',
'check for smooth, predictable\nanimations across computers':
'Marque para obter animações mais suaves\ne previsíveis de computador para computador.',
'Visible stepping':
'Depuração passo a passo',
'uncheck to turn off\nvisible stepping':
'desmarque para desativar\na depuração passo a passo',
'check to turn on\n visible stepping (slow)':
'marque para ativar\na depuração passo a passo (lento)',
'Log pen vectors':
'Registrar os vetores da caneta',
'log pen vectors':
'registro dos vetores da caneta',
'Hyper blocks support':
'Suporte a hiper-blocos',
'uncheck to disable\nusing operators on lists and tables':
'desmarque para desabilitar\no uso de operadores em listas e tabelas',
'check to enable\nusing operators on lists and tables':
'marque para habilitar\no uso de operadores em listas e tabelas',
'Turbo mode':
'Modo turbo',
'turbo mode':
'modo turbo',
// Entradas
'with inputs':
@ -990,6 +1124,10 @@ SnapTranslator.dict.pt_BR = {
'Quer mesmo remover este bloco e '
+ 'todas as suas aplicações?',
// export project as... dialog
'Export Project As...':
'Exportar projeto como...',
// Caixa de diálogo de parâmetros
'Create input name':
'Criar parâmetro',
@ -1026,7 +1164,7 @@ SnapTranslator.dict.pt_BR = {
'Single input.':
'Parâmetro único.',
'Default Value:':
'Valor em caso de omissão:',
'Valor em caso de omissão (default):',
'Multiple inputs (value is list of inputs)':
'Múltiplos argumentos (o valor do parâmetro é a lista dos argumentos).',
'Upvar - make internal variable visible to caller':
@ -1083,13 +1221,15 @@ SnapTranslator.dict.pt_BR = {
// drop downs
// direcções
'(90) right':
'90° (direita)',
'90° (direita ou leste)',
'(-90) left':
'-90° (esquerda)',
'-90° (esquerda ou oeste)',
'(0) up':
'0° (acima)',
'0° (cima ou norte)',
'(180) down':
'180° (abaixo)',
'180° (baixo ou sul)',
'random':
'aleatória',
// detecção de colisões
'mouse-pointer':
@ -1120,6 +1260,8 @@ SnapTranslator.dict.pt_BR = {
'seta para a direita',
'left arrow':
'seta para a esquerda',
'any key':
'qualquer tecla',
'a':
'a',
'b':
@ -1193,6 +1335,25 @@ SnapTranslator.dict.pt_BR = {
'9':
'9',
// %interaction values for (when I am %interaction):
// In portuguese read as "quando eu for %interaction"
'clicked':
'clicado',
'pressed':
'pressionado',
'dropped':
'arrastado e solto',
'mouse-entered':
'tocado com o mouse',
'mouse-departed':
'deixado de ser tocado com o mouse',
'scrolled-up':
'girado com a roda do mouse para baixo',
'scrolled-down':
'girado com a roda do mouse para cima',
'stopped':
'parado',
// messagens
'new...':
'Nova…',
@ -1200,8 +1361,10 @@ SnapTranslator.dict.pt_BR = {
// funções matemáticas
'abs':
'valor absoluto',
'ceiling':
'arredondamento para cima (teto)',
'floor':
'arredondamento para baixo',
'arredondamento para baixo (piso)',
'sqrt':
'raiz quadrada',
'sin':
@ -1246,12 +1409,16 @@ SnapTranslator.dict.pt_BR = {
'repórter',
'predicate':
'predicado',
'costume':
'fantasia',
'sound':
'som',
// índices de listas
'last':
'último item',
'any':
'um item ao acaso',
'qualquer (aleatório)',
// em falta no ficheiro lang-de.js
'costume name':
@ -1351,7 +1518,7 @@ SnapTranslator.dict.pt_BR = {
'uncheck to disable\nsprite composition':
'Desmarque para desativar\na composição de atores.',
'Codification support':
'Suportar produção de código',
'Suporte a produção de código',
'check for block\nto text mapping features':
'Assinalar para funcionalidades\nde mapeamento entre blocos e texto.',
'Save to disk':
@ -1375,15 +1542,203 @@ SnapTranslator.dict.pt_BR = {
'add a new Turtle sprite':
'Adicionar um novo ator.',
'Flat design':
'Visual plano',
'Visual achatado',
'check for alternative\nGUI design':
'Marque para um design alternativo\nda interface gráfica de usuário.',
'Rasterize SVGs':
'Transformar desenhos vetorias (SVG) em mapas de bits',
'Transformar desenhos vetoriais (SVG) em mapas de bits',
'check to rasterize\nSVGs on import':
'Marque para transformar os arquivos vetoriais SVG\nem mapas de bits durante a importação.',
'comment pic...':
'fotografia do comentário…',
'open a new window\nwith a picture of this comment':
'Abrir uma nova janela com\numa fotografia deste comentário.'
'Abrir uma nova janela com\numa foto deste comentário.',
// %get values for (my %get):
'neighbors':
'vizinhos',
'self':
'eu mesmo',
'other sprites':
'outras sprites',
'clones':
'clones',
'other clones':
'outros clones',
'parts':
'partes',
'anchor':
'âncoras',
'stage':
'palco',
'children':
'filhos',
'parent':
'pai',
'temporary?':
'temporário?',
'name':
'nome',
'costumes':
'fantasias',
'sounds':
'sons',
'dangling?':
'penso?',
'draggable?':
'arrastável?',
'rotation style':
'estilo de rotação',
'rotation x':
'rotação x',
'rotation y':
'rotação y',
'center x':
'centro x',
'center y':
'centro y',
// %dates values for (current %dates):
'year':
'ano',
'month':
'mês',
'date':
'dia',
'day of week':
'daa da semana',
'hour':
'hora',
'minute':
'minuto',
'second':
'segundo',
'time in milliseconds':
'tempo en milisegundos',
// Traduções adicionais:
'saturation':
'saturação',
'brightness':
'brilho',
'transparency':
'transparência',
'hue':
'tonalidade',
'random position':
'posição aleatória',
'center':
'centro',
'width':
'largura',
'height':
'altura',
'name':
'nome',
'%img of costume %cst':
'%img da fantasia %cst',
'current':
'atual',
'stretch %cst x: %n y: %n %':
'estique a fantasia %cst em x: %n y: %n %',
'new costume %l width %dim height %dim':
'nova fantasia %l com largura %dim e altura %dim',
'color':
'cor',
'fisheye':
'olho de peixe',
'whirl':
'redemoinho',
'pixelate':
'pixelado',
'mosaic':
'mosaico',
'negative':
'negativo',
'%eff effect':
'efeito %eff',
'shown?':
'visível?',
'go to %layer layer':
'vá para camada %layer',
'back':
'traseira',
'front':
'dianteira',
'distance':
'distância',
'ray length':
'comprimento do raio',
'%rel to %dst':
'%rel até %dst',
'%asp at %loc' :
'%asp em %loc',
'top':
'superior',
'bottom':
'inferior',
'left':
'esquerda',
'right':
'direita',
'balance':
'balanço',
'volume':
'volume',
'my %get':
'meu(s)/minha(s) %get',
'object %self':
'Objeto %self',
'microphone %audio':
'%audio do microfone',
'frequency':
'frequência',
'duration':
'duração',
'number of channels':
'número de canais',
'sample rate':
'taxa de amostragem',
'samples':
'amostras',
'spectrum':
'espectro',
'resolution':
'resolução',
'note':
'nota',
'video %vid on %self':
'%vid do vídeo do(e) %self',
'motion':
'movimento',
'snap':
'captura instantânea',
'set video transparency to %n':
'mude a transparência do vídeo para %n',
'is %setting on?':
'parâmetro %setting ativo?',
'set %setting to %b':
'mude o parâmetro %setting para %b',
'flat line ends':
'extremos de linhas retos',
'current %dates':
'%dates atual',
'length':
'comprimento',
'rank':
'ranking',
'dimensions':
'dimensões',
'flatten':
'achatamento',
'lines':
'linhas',
'columns':
'colunas',
'reverse':
'reverso',
'video capture':
'captura de vídeo',
'mirror video':
'espelhamento de vídeo',
};

Wyświetl plik

@ -413,8 +413,8 @@ SnapTranslator.dict.ro = {
// control:
'when %greenflag clicked':
'cand se apasa %greenflag',
'when %keyHat key pressed':
'cand se apasa tasta %keyHat',
'when %keyHat key pressed %keyName':
'cand se apasa tasta %keyHat %keyName',
'when I am %interaction':
'cand sunt %interaction',
'clicked':
@ -427,12 +427,12 @@ SnapTranslator.dict.ro = {
'in contact cu mouse-ul',
'mouse-departed':
'indepratat de langa mouse',
'when I receive %msgHat':
'cand primesc %msgHat',
'broadcast %msg':
'trimite mesajul %msg tuturor',
'broadcast %msg and wait':
'trimite mesajul %msg tuturor si asteapta',
'when I receive %msgHat %message':
'cand primesc %msgHat %message',
'broadcast %msg %receive':
'trimite mesajul %msg %receive tuturor',
'broadcast %msg %receive and wait':
'trimite mesajul %msg %receive tuturor si asteapta',
'Message name':
'Mesaj',
'message':

Wyświetl plik

@ -469,14 +469,14 @@ SnapTranslator.dict.ru = {
'установить цвет пера %clr',
'set background color to %clr':
'установить фоновый цвет %clr',
'change pen %hsva by %n':
'изменить %hsva пера на %n',
'change background %hsva by %n':
'изменить %hsva фона на %n',
'set pen %hsva to %n':
'установить %hsva пера %n',
'set background %hsva to %n':
'установить %hsva фона %n',
'change pen %clrdim by %n':
'изменить %clrdim пера на %n',
'change background %clrdim by %n':
'изменить %clrdim фона на %n',
'set pen %clrdim to %n':
'установить %clrdim пера %n',
'set background %clrdim to %n':
'установить %clrdim фона %n',
'pen %pen':
'%pen пера',
'change pen size by %n':
@ -499,8 +499,8 @@ SnapTranslator.dict.ru = {
// control:
'when %greenflag clicked':
'при нажатии на %greenflag',
'when %keyHat key pressed':
'при нажатии клавиши %keyHat',
'when %keyHat key pressed %keyName':
'при нажатии клавиши %keyHat %keyName',
'when I am %interaction':
'когда меня %interaction',
'clicked':
@ -521,12 +521,14 @@ SnapTranslator.dict.ru = {
'остановят',
'when %b':
'когда %b',
'when I receive %msgHat':
'когда я получу %msgHat',
'broadcast %msg':
'разослать %msg всем',
'broadcast %msg and wait':
'разослать %msg всем и ждать',
'when I receive %msgHat %message':
'когда я получу %msgHat %message',
'broadcast %msg %receive':
'разослать %msg %receive',
'broadcast %msg %receive and wait':
'разослать %msg %receive и ждать',
'to':
'адресату',
'send %msg to %spr':
'отправить %msg адресату %spr',
'Message name':

Wyświetl plik

@ -416,8 +416,8 @@ SnapTranslator.dict.si = {
// control:
'when %greenflag clicked':
'ko kliknemo na %greenflag',
'when %keyHat key pressed':
'ko pritisnemo na tipko %keyHat ',
'when %keyHat key pressed %keyName':
'ko pritisnemo na tipko %keyHat %keyName',
'when I am %interaction':
'Ko je %interaction',
'clicked':
@ -432,12 +432,12 @@ SnapTranslator.dict.si = {
'mi\u0161ka se ne dotika ve\u010D',
'when %b':
'Ko je %b',
'when I receive %msgHat':
'ko sprejmem %msgHat',
'broadcast %msg':
'po\u0161lji %msg vsem',
'broadcast %msg and wait':
'po\u0161lji vsem %msg in po\u010Dakaj',
'when I receive %msgHat %message':
'ko sprejmem %msgHat %message',
'broadcast %msg %receive':
'po\u0161lji %msg %receive vsem',
'broadcast %msg %receive and wait':
'po\u0161lji vsem %msg %receive in po\u010Dakaj',
'Message name':
'Obvestilo',
'message':

Wyświetl plik

@ -469,14 +469,14 @@ SnapTranslator.dict.sk = {
'nastavi\u0165 farbu pera na %clr',
'set background color to %clr':
'nastav pozadie na %clr',
'change pen %hsva by %n':
'zme\u0148 pero %hsva o %n',
'change background %hsva by %n':
'zme\u0148 pozadie %hsva o %n',
'set pen %hsva to %n':
'nastav pero %hsva na %n',
'set background %hsva to %n':
'nastav pozadie %hsva na %n',
'change pen %clrdim by %n':
'zme\u0148 pero %clrdim o %n',
'change background %clrdim by %n':
'zme\u0148 pozadie %clrdim o %n',
'set pen %clrdim to %n':
'nastav pero %clrdim na %n',
'set background %clrdim to %n':
'nastav pozadie %clrdim na %n',
'pen %pen':
'pero %pen',
'change pen size by %n':
@ -497,8 +497,8 @@ SnapTranslator.dict.sk = {
// control:
'when %greenflag clicked':
'Po kliknut\u00ED na %greenflag',
'when %keyHat key pressed':
'po stla\u010Den\u00ED kl\u00E1vesy %keyHat',
'when %keyHat key pressed %keyName':
'po stla\u010Den\u00ED kl\u00E1vesy %keyHat %keyName',
'when I am %interaction':
'ke\u010F %interaction',
'clicked':
@ -519,12 +519,12 @@ SnapTranslator.dict.sk = {
'zastaven\u00FD',
'when %b':
'Ke\u010F %b',
'when I receive %msgHat':
'po prijat\u00ED spr\u00E1vy %msgHat',
'broadcast %msg':
'posla\u0165 v\u0161etk\u00FDm %msg',
'broadcast %msg and wait':
'posla\u0165 v\u0161etk\u00FDm %msg a \u010Daka\u0165',
'when I receive %msgHat %message':
'po prijat\u00ED spr\u00E1vy %msgHat %message',
'broadcast %msg %receive':
'posla\u0165 %msg %receive',
'broadcast %msg %receive and wait':
'posla\u0165 %msg %receive a \u010Daka\u0165',
'Message name':
'n\u00E1zov spr\u00E1vy',
'message':

Wyświetl plik

@ -426,10 +426,10 @@ SnapTranslator.dict.sv = {
'n\u00E4r jag klickas p\u00E5',
'when I receive %msg':
'n\u00E4r jag tar emot meddelande %msg',
'broadcast %msg':
'skicka meddelande %msg',
'broadcast %msg and wait':
'skicka meddelande %msg och v\u00E4nta',
'broadcast %msg %receive':
'skicka meddelande %msg %receive',
'broadcast %msg %receive and wait':
'skicka meddelande %msg %receive och v\u00E4nta',
'Message name':
'Meddelandets namn',
'wait %n secs':
@ -1261,10 +1261,10 @@ SnapTranslator.dict.sv = {
// missing labels from initial translation added below
'add a new sprite':
'ny sprite',
'when %keyHat key pressed':
'n\u00E4r tangent %keyHat trycks ned',
'when I receive %msgHat':
'n\u00E4r jag tar emot %msgHat',
'when %keyHat key pressed %keyName':
'n\u00E4r tangent %keyHat trycks ned %keyName',
'when I receive %msgHat %message':
'n\u00E4r jag tar emot %msgHat %message',
'message':
'meddelande',
'any message':

Wyświetl plik

@ -414,16 +414,16 @@ SnapTranslator.dict.ta = {
// control:
'when %greenflag clicked':
'%greenflag அழுத்தும்பொழுது',
'when %keyHat key pressed':
'%keyHat கீ அழுத்தும்பொழுது',
'when I am clicked':
'நான் சொடுக்கும் போது',
'when I receive %msgHat':
'%msgHat பெறுகையில்',
'broadcast %msg':
'%msg செலித்தி',
'broadcast %msg and wait':
'%msg செலித்தி காத்திருக்கவும்',
'when %keyHat key pressed %keyName':
'%keyHat %keyName கீ அழுத்தும்பொழுது',
'when I am %interaction':
'%interaction நான் சொடுக்கும் போது',
'when I receive %msgHat %message':
'%msgHat %message பெறுகையில்',
'broadcast %msg %receive':
'%msg %receive செலித்தி',
'broadcast %msg %receive and wait':
'%msg %receive செலித்தி காத்திருக்கவும்',
'Message name':
'செய்தி பெயர்',
'message':

Wyświetl plik

@ -415,16 +415,16 @@ SnapTranslator.dict.te = {
// control:
'when %greenflag clicked':
'%greenflag ఒత్తినప్పుడ',
'when %keyHat key pressed':
'%keyHat కీ ఒత్తినప్పుడ',
'when I am clicked':
'Wenn ich angeklickt werde',
'when I receive %msgHat':
'%msgHat నేను స్వీకరించినప్పుడు',
'broadcast %msg':
'ప్రసార %msg',
'broadcast %msg and wait':
'%msg ని ప్రసారం చేసి, వేచివుండు',
'when %keyHat key pressed %keyName':
'%keyHat %keyName కీ ఒత్తినప్పుడ',
'when I am %interaction':
'when I am %interaction',
'when I receive %msgHat %message':
'%msgHat %message నేను స్వీకరించినప్పుడు',
'broadcast %msg %receive':
'ప్రసార %msg %receive',
'broadcast %msg %receive and wait':
'%msg %receive ని ప్రసారం చేసి, వేచివుండు',
'Message name':
'సందేశం పేర',
'message':

Wyświetl plik

@ -469,14 +469,14 @@ SnapTranslator.dict.tr = {
'kalemin rengini %clr yap',
'set background color to %clr':
'arka plan rengini %clr yap',
'change pen %hsva by %n':
'Kalemin %hsva %n değiştir',
'change background %hsva by %n':
'arka plan %hsva %n değiştir',
'set pen %hsva to %n':
'Kalemin %hsva %n yap',
'set background %hsva to %n':
'arka plan %hsva %n yap',
'change pen %clrdim by %n':
'Kalemin %clrdim %n değiştir',
'change background %clrdim by %n':
'arka plan %clrdim %n değiştir',
'set pen %clrdim to %n':
'Kalemin %clrdim %n yap',
'set background %clrdim to %n':
'arka plan %clrdim %n yap',
'pen %pen':
'kalemin %pen',
'change pen size by %n':
@ -496,8 +496,8 @@ SnapTranslator.dict.tr = {
// control:
'when %greenflag clicked':
'%greenflag tıklanınca',
'when %keyHat key pressed':
'%keyHat tuşuna basılınca',
'when %keyHat key pressed %keyName':
'%keyHat tuşuna basılınca %keyName',
'when I am %interaction':
'kukla %interaction zaman','clicked':
'tıklandığı',
@ -517,12 +517,12 @@ SnapTranslator.dict.tr = {
'durdurulduğu',
'when %b':
'%b olunca',
'when I receive %msgHat':
'%msgHat haberi gelince',
'broadcast %msg':
'%msg yayımla',
'broadcast %msg and wait':
'%msg yayımla ve bekle',
'when I receive %msgHat %message':
'%msgHat haberi gelince %message',
'broadcast %msg %receive':
'%msg %receive yayımla',
'broadcast %msg %receive and wait':
'%msg %receive yayımla ve bekle',
'send %msg to %spr':
'%msg mesajını %spr yolla',
'Message name':

Wyświetl plik

@ -482,10 +482,10 @@ SnapTranslator.dict.ua = {
'штамп',
'fill':
'заливка',
'change pen %hsva by %n':
'змінити властивість %hsva на %n',
'set pen %hsva to %n':
'встановити властивість %hsva як %n',
'change pen %clrdim by %n':
'змінити властивість %clrdim на %n',
'set pen %clrdim to %n':
'встановити властивість %clrdim як %n',
'pen %pen':
'олівець %pen',
'write %s size %n':
@ -496,8 +496,8 @@ SnapTranslator.dict.ua = {
// control:
'when %greenflag clicked':
'коли натиснуто %greenflag',
'when %keyHat key pressed':
'коли натиснуто клавішу %keyHat',
'when %keyHat key pressed %keyName':
'коли натиснуто клавішу %keyHat %keyName',
'when I am %interaction':
'коли мене %interaction',
'clicked':
@ -518,12 +518,12 @@ SnapTranslator.dict.ua = {
'зупинка',
'when %b':
'коли %b',
'when I receive %msgHat':
'коли я отримаю %msgHat',
'broadcast %msg':
'надіслати %msg всім',
'broadcast %msg and wait':
'надіслати %msg всім і чекати',
'when I receive %msgHat %message':
'коли я отримаю %msgHat %message',
'broadcast %msg %receive':
'надіслати %msg %receive',
'broadcast %msg %receive and wait':
'надіслати %msg %receive і чекати',
'Message name':
'назва повідомлення',
'message':

Plik diff jest za duży Load Diff

Wyświetl plik

@ -415,16 +415,16 @@ SnapTranslator.dict.zh_TW = {
// control:
'when %greenflag clicked':
'當 %greenflag 被點擊',
'when %keyHat key pressed':
'當按下 %keyHat',
'when I am clicked':
'當角色被點擊',
'when I receive %msgHat':
'當接收到 %msgHat',
'broadcast %msg':
'廣播 %msg ',
'broadcast %msg and wait':
'廣播 %msg 並等待',
'when %keyHat key pressed %keyName':
'當按下 %keyHat %keyName',
'when I am %interaction':
'當角色被點擊 %interaction',
'when I receive %msgHat %message':
'當接收到 %msgHat %message',
'broadcast %msg %receive':
'廣播 %msg %receive',
'broadcast %msg %receive and wait':
'廣播 %msg %receive 並等待',
'Message name':
'資訊名稱',
'wait %n secs':

51
manifest.json 100644
Wyświetl plik

@ -0,0 +1,51 @@
{
"name": "Snap!",
"short_name": "Snap!",
"icons": [{
"src": "img/snap-icon-72.png",
"sizes": "72x72",
"type": "image/png"
}, {
"src": "img/snap-icon-96.png",
"sizes": "96x96",
"type": "image/png"
}, {
"src": "img/snap-icon-120.png",
"sizes": "120x120",
"type": "image/png"
}, {
"src": "img/snap-icon-128.png",
"sizes": "128x128",
"type": "image/png"
}, {
"src": "img/snap-icon-144.png",
"sizes": "144x144",
"type": "image/png"
}, {
"src": "img/snap-icon-152.png",
"sizes": "152x152",
"type": "image/png"
}, {
"src": "img/snap-icon-192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "any maskable"
}, {
"src": "img/snap-icon-256.png",
"sizes": "256x256",
"type": "image/png"
}, {
"src": "img/snap-icon-384.png",
"sizes": "384x384",
"type": "image/png"
}, {
"src": "img/snap-icon-512.png",
"sizes": "512x512",
"type": "image/png"
}],
"lang": "en-US",
"start_url": "./snap.html",
"display": "standalone",
"background_color": "white",
"theme_color": "white"
}

Wyświetl plik

@ -1,34 +1,47 @@
<!DOCTYPE html>
<html>
<head>
<title>Snap! 7.1.3 - Build Your Own Blocks</title>
<link rel="icon" href="src/favicon.ico" type="image/x-icon">
<link rel="manifest" href="manifest.json">
<link rel="apple-touch-icon" href="img/snap-icon-152.png">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Snap! 6.9.0 Build Your Own Blocks</title>
<link rel="icon" href="src/favicon.ico">
<script src="src/morphic.js?version=2021-02-10"></script>
<meta name="theme-color" content="white"/>
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-title" content="Snap!">
<meta name="msapplication-TileImage" content="img/snap-icon-144.png">
<meta name="msapplication-TileColor" content="#FFFFFF">
<script src="src/morphic.js?version=2022-01-28"></script>
<script src="src/symbols.js?version=2021-03-03"></script>
<script src="src/widgets.js?version=2021-01-05"></script>
<script src="src/blocks.js?version=2021-06-11"></script>
<script src="src/threads.js?version=2021-06-10"></script>
<script src="src/objects.js?version=2021-06-09"></script>
<script src="src/gui.js?version=2021-06-14"></script>
<script src="src/paint.js?version=2020-05-17"></script>
<script src="src/lists.js?version=2021-03-15"></script>
<script src="src/byob.js?version=2021-06-11"></script>
<script src="src/tables.js?version=2021-03-05"></script>
<script src="src/sketch.js?version=2020-07-13"></script>
<script src="src/widgets.js?version=2021-17-09"></script>
<script src="src/blocks.js?version=2022-01-30"></script>
<script src="src/threads.js?version=2022-01-31"></script>
<script src="src/objects.js?version=2022-02-07"></script>
<script src="src/scenes.js?version=2021-11-24"></script>
<script src="src/gui.js?version=2022-02-08"></script>
<script src="src/paint.js?version=2021-07-05"></script>
<script src="src/lists.js?version=2022-02-07"></script>
<script src="src/byob.js?version=2022-01-07"></script>
<script src="src/tables.js?version=2022-01-28"></script>
<script src="src/sketch.js?version=2021-11-03"></script>
<script src="src/video.js?version=2019-06-27"></script>
<script src="src/maps.js?version=2020-03-25"></script>
<script src="src/xml.js?version=2020-04-27"></script>
<script src="src/store.js?version=2021-06-10"></script>
<script src="src/locale.js?version=2021-06-11"></script>
<script src="src/maps.js?version=2021-06-15"></script>
<script src="src/extensions.js?version=2022-02-08"></script>
<script src="src/xml.js?version=2021-07-05"></script>
<script src="src/store.js?version=2022-01-02"></script>
<script src="src/locale.js?version=2022-01-31"></script>
<script src="src/cloud.js?version=2021-02-04"></script>
<script src="src/api.js?version=2021-01-25"></script>
<script src="src/api.js?version=2022-01-03"></script>
<script src="src/sha512.js?version=2019-06-27"></script>
<script src="src/FileSaver.min.js?version=2019-06-27"></script>
<script>
var world;
window.onload = function () {
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('sw.js');
}
world = new WorldMorph(document.getElementById('world'));
new IDE_Morph().openIn(world);
loop();

Wyświetl plik

@ -7,7 +7,7 @@
written by Jens Mönig
jens@moenig.org
Copyright (C) 2021 by Jens Mönig
Copyright (C) 2022 by Jens Mönig
This file is part of Snap!.
@ -27,186 +27,26 @@
prerequisites:
--------------
needs gui.js, lists.js and morphic.js
needs gui.js, lists.js, objects.js, threads.js and morphic.js
documentation
-------------
the experimental Snap! API is a set of methods for an IDE_Morph containing
a Snap! project. These methods are maintained to work with future versions
of Snap! They can be used to trigger scripts, get feedback from running
scripts, and access the project's global variables. Currently the API
consists of the following methods:
Broadcast Messages (and optionally wait)
- IDE_Morph.prototype.broadcast()
Listen to Messages
- IDE_Morph.prototype.addMessageListenerForAll()
- IDE_Morph.prototype.addMessageListener()
- IDE_Morph.prototype.getMessages()
Access Global Variables
- IDE_Morph.prototype.getVarNames()
- IDE_Morph.prototype.getVar()
- IDE_Morph.prototype.setVar()
Create and Modify Lists
- IDE_Morph.prototype.newList()
Access the Serialized Project
- IDE_Morph.prototype.getProjectXML()
- IDE_Morph.prototype.loadProjectXML(projectXML)
- IDE_Morph.prototype.unsavedChanges()
Getting hold of an ide can usually be achieved by
evaluating:
var ide = world.children[0];
IDE_Morph.prototype.broadcast()
===============================
The broadcast() method triggers all scripts whose hat block listens to
the specified message. An optional callback can be added to be run
after all triggered scripts have terminated.
syntax:
-------
ide.broadcast(message [, callback]);
parameters:
-----------
message
string, the message to be sent to all listeners
callback | optional
function to execute after all scripts terminate, no arguments
return value:
-------------
undefined
IDE_Morph.prototype.addMessageListenerForAll()
==============================================
The addMessageListenerForAll() method sets up a function that will be
called whenever a message is broadcast. The function takes one argument,
the message being broadcast, and can be used to react to any message.
Multiple message listeners can be set up, they all the executed in the
order in which they were added.
syntax:
-------
ide.addMessageListenerForAll(callback);
parameters:
-----------
callback
function to execute whenever a message is sent,
takes one argument: The message string
return value:
-------------
undefined
IDE_Morph.prototype.addMessageListener()
========================================
The addMessageListener() method sets up a function that will be called
whenever the specified message is broadcast. Multiple message listeners
can be set up per message, they all get executed in the order in which
they were added.
syntax:
-------
ide.addMessageListener(message, callback);
parameters:
-----------
message
string, the message to which the listener will react.
If the message is an empty string the callback will
be executed at any broadcast, passing the message as
argument
callback
function to execute whenever the specified message is sent,
takes no argument, except when the message to listen to is
the empty string, then it takes the message as argument
return value:
-------------
undefined
IDE_Morph.prototype.getMessages()
=================================
The getMessage() method returns a new Array that contains all the message
strings that occur in the project, both in hat blocks and in broadcast
blocks.
syntax:
-------
ide.getMessages();
return value:
-------------
an Array of strings, or an empty Array
IDE_Morph.prototype.getVarNames()
=================================
The getVarNames() method returns a new Array that contains all the global
variable names in the project.
syntax:
-------
ide.getVarNames();
return value:
-------------
an Array of strings, or an empty Array
IDE_Morph.prototype.getVar()
=============================
The getVar() method returns the value of the global variable indicated by
the specified name.
syntax:
-------
ide.getVar(name);
return value:
-------------
whatever value the variable holds.
IDE_Morph.prototype.setVar()
============================
The setVar() methods assigns a value to the a global variable specified
by name.
syntax:
=======
ide.setVar(name, value);
return value:
=============
undefined
along with this file you should have received a copy of the Snap! API
documentation. If not, see
https://github.com/jmoenig/Snap/blob/master/API.md
or https://snap.berkeley.edu/snap/API.md
*/
/*global modules, IDE_Morph, isString, Map, List, world, isNil*/
/*global modules, IDE_Morph, isString, Map, List, world, isNil, Project,
detect, isSnapObject, VariableFrame*/
/*jshint esversion: 6*/
// Global stuff ////////////////////////////////////////////////////////
modules.api = '2021-January-25';
modules.api = '2022-January-03';
// IDE_Morph external communication API - experimental
/*
@ -229,6 +69,46 @@ window.onmessage = function (event) {
}
};
IDE_Morph.prototype.getScenes = function () {
// return an array of all scenenames
return this.scenes.itemsArray().map(each => each.name);
};
IDE_Morph.prototype.getCurrentScene = function () {
// return the name of the currently active scene
return this.scene.name;
};
IDE_Morph.prototype.switchTo = function (sceneName) {
var scene = detect(this.scenes.itemsArray(), scn => scn.name === sceneName);
if (scene === null) {
throw new Error('cannot find scene ' + sceneName);
}
this.switchToScene(scene);
};
IDE_Morph.prototype.isRunning = function () {
// return true if the active scene is currently running a script
return this.stage.threads.processes.length > 0;
};
IDE_Morph.prototype.stop = function () {
// stop all currently running processes in the active scene
// no matter what, without firing a stop event
var stage = this.stage;
stage.keysPressed = {};
stage.threads.stopAll();
stage.stopAllActiveSounds();
stage.children.forEach(morph => {
if (morph.stopTalking) {
morph.stopTalking();
}
});
stage.removeAllClones();
stage.stopProjection();
this.controlBar.pauseButton.refresh();
};
IDE_Morph.prototype.broadcast = function(message, callback) {
// same as using the broadcast block - launch all scripts
// in the current project reacting to the specified message,
@ -255,16 +135,39 @@ IDE_Morph.prototype.broadcast = function(message, callback) {
throw new Error('message must be a String');
}
this.stage.lastMessage = message;
rcvrs.forEach(sprite => {
sprite.allHatBlocksFor(message).forEach(block => {
procs.push(this.stage.threads.startProcess(
block,
sprite,
this.stage.isThreadSafe,
false,
callback instanceof Function ? wait : null
));
});
rcvrs.forEach(morph => {
if (isSnapObject(morph)) {
morph.allHatBlocksFor(message).forEach(block => {
var varName, varFrame;
if (block.selector === 'receiveMessage') {
varName = block.inputs()[1].evaluate()[0];
if (varName) {
varFrame = new VariableFrame();
varFrame.addVar(varName, message);
}
procs.push(this.stage.threads.startProcess(
block,
morph,
this.stage.isThreadSafe,
// commented out for now to enable tail recursion:
// || // make "any msg" threadsafe
// block.inputs()[0].evaluate() instanceof Array,
null, // exportResult (bool)
callback instanceof Function ? wait : null,
null, // isClicked
null, // rightAway
null, // atomic
varFrame
));
} else {
procs.push(this.stage.threads.startProcess(
block,
morph,
this.stage.isThreadSafe
));
}
});
}
});
(this.stage.messageCallbacks[''] || []).forEach(
callback => callback(message)
@ -335,7 +238,7 @@ IDE_Morph.prototype.newList = function (array) {
};
IDE_Morph.prototype.getProjectXML = function () {
return this.serializer.serialize(this.stage);
return this.serializer.serialize(new Project(this.scenes, this.scene));
};
IDE_Morph.prototype.loadProjectXML = function (projectXML) {
@ -347,5 +250,5 @@ IDE_Morph.prototype.loadProjectXML = function (projectXML) {
};
IDE_Morph.prototype.unsavedChanges = function () {
return this.hasUnsavedEdits;
return this.hasUnsavedEdits();
};

Some files were not shown because too many files have changed in this diff Show More