snap7
Michael 2022-07-09 20:00:24 +02:00
commit a2488194d6
122 zmienionych plików z 14371 dodań i 3638 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