diff --git a/history.txt b/history.txt
index 5ce6a2c5..eb45ef45 100755
--- a/history.txt
+++ b/history.txt
@@ -1846,3 +1846,7 @@ ______
* Blocks: Undrop Comments feature
* Blocks: Undrop Commands feature
* German translation update (for Undrop feature)
+
+130805
+------
+* Polish translation, yay!! Thanks, Witek Kranas!
diff --git a/lang-pl.js b/lang-pl.js
new file mode 100644
index 00000000..669a22b9
--- /dev/null
+++ b/lang-pl.js
@@ -0,0 +1,1225 @@
+/*
+
+ lang-pl.js
+
+ Polskie tłumaczenie SNAP!
+
+ Podziękowania dla Jensa Möniga
+
+ za przygotowanie mechanizmu tłumaczenia
+
+ This file is part of Snap!.
+
+ Snap! is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as
+ published by the Free Software Foundation, either version 3 of
+ the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+
+
+
+ Note to Translators:
+ --------------------
+ At this stage of development, Snap! can be translated to any LTR language
+ maintaining the current order of inputs (formal parameters in blocks).
+
+ Translating Snap! is easy:
+
+
+ 1. Download
+
+ Download the sources and extract them into a local folder on your
+ computer:
+
+
+
+ Use the German translation file (named 'lang-de.js') as template for your
+ own translations. Start with editing the original file, because that way
+ you will be able to immediately check the results in your browsers while
+ you're working on your translation (keep the local copy of snap.html open
+ in your web browser, and refresh it as you progress with your
+ translation).
+
+
+ 2. Edit
+
+ Edit the translation file with a regular text editor, or with your
+ favorite JavaScript editor.
+
+ In the first non-commented line (the one right below this
+ note) replace "de" with the two-letter ISO 639-1 code for your language,
+ e.g.
+
+ fr - French => SnapTranslator.dict.fr = {
+ it - Italian => SnapTranslator.dict.it = {
+ pl - Polish => SnapTranslator.dict.pl = {
+ pt - Portuguese => SnapTranslator.dict.pt = {
+ es - Spanish => SnapTranslator.dict.es = {
+ el - Greek => => SnapTranslator.dict.el = {
+
+ etc. (see )
+
+
+ 3. Translate
+
+ Then work through the dictionary, replacing the German strings against
+ your translations. The dictionary is a straight-forward JavaScript ad-hoc
+ object, for review purposes it should be formatted as follows:
+
+ {
+ 'English string':
+ 'Translation string',
+ 'last key':
+ } 'last value'
+
+ and you only edit the indented value strings. Note that each key-value
+ pair needs to be delimited by a comma, but that there shouldn't be a comma
+ after the last pair (again, just overwrite the template file and you'll be
+ fine).
+
+ If something doesn't work, or if you're unsure about the formalities you
+ should check your file with
+
+
+
+ This will inform you about any missed commas etc.
+
+
+ 4. Accented characters
+
+ Depending on which text editor and which file encoding you use you can
+ directly enter special characters (e.g. Umlaut, accented characters) on
+ your keyboard. However, I've noticed that some browsers may not display
+ special characters correctly, even if other browsers do. So it's best to
+ check your results in several browsers. If you want to be on the safe
+ side, it's even better to escape these characters using Unicode.
+
+ see:
+
+
+ 5. Block specs:
+
+ At this time your translation of block specs will only work
+ correctly, if the order of formal parameters and their types
+ are unchanged. Placeholders for inputs (formal parameters) are
+ indicated by a preceding % prefix and followed by a type
+ abbreviation.
+
+ For example:
+
+ 'say %s for %n secs'
+
+ can currently not be changed into
+
+ 'say %n secs long %s'
+
+ and still work as intended.
+
+ Similarly
+
+ 'point towards %dst'
+
+ cannot be changed into
+
+ 'point towards %cst'
+
+ without breaking its functionality.
+
+
+ 6. Submit
+
+ When you're done, rename the edited file by replacing the "de" part of the
+ filename with the two-letter ISO 639-1 code for your language, e.g.
+
+ fr - French => lang-fr.js
+ it - Italian => lang-it.js
+ pl - Polish => lang-pl.js
+ pt - Portuguese => lang-pt.js
+ es - Spanish => lang-es.js
+ el - Greek => => lang-el.js
+
+ and send it to me for inclusion in the official Snap! distribution.
+ Once your translation has been included, Your name will the shown in the
+ "Translators" tab in the "About Snap!" dialog box, and you will be able to
+ directly launch a translated version of Snap! in your browser by appending
+
+ lang:xx
+
+ to the URL, xx representing your translations two-letter code.
+
+
+ 7. Known issues
+
+ In some browsers accents or ornaments located in typographic ascenders
+ above the cap height are currently (partially) cut-off.
+
+ Enjoy!
+ -Jens
+*/
+
+/*global SnapTranslator*/
+
+SnapTranslator.dict.pl = {
+
+/*
+ Special characters: (see )
+ Ą, ą \u0104, \u0105
+ Ć, ć \u0106, \u0107
+ Ę, ę \u0118, \u0119
+ Ł, ł \u0141, \u0142
+ Ń, ń \u0143, \u0144
+ Ś, ś \u015A, \u015B
+ Ó, ó \u00D3, \u00F3
+ Ź, ź \u0179, \u017A
+ Ż, ż \u017B, \u017C
+
+*/
+
+ // translations meta information
+ 'language_name':
+ 'Polski', // the name as it should appear in the language menu
+ 'language_translator':
+ 'Witek Kranas', // your name for the Translators tab
+ 'translator_e-mail':
+ 'witek@oeiizk.waw.pl', // optional
+ 'last_changed':
+ '2013-08-05', // this, too, will appear in the Translators tab
+
+ // GUI
+ // control bar:
+ 'untitled':
+ 'bez nazwy',
+ 'development mode':
+ 'tryb budowania',
+
+ // categories:
+ 'Motion':
+ 'Ruch',
+ 'Looks':
+ 'Wygl\u0105d',
+ 'Sound':
+ 'D\u017Awi\u0119k',
+ 'Pen':
+ 'Pisak',
+ 'Control':
+ 'Kontrola',
+ 'Sensing':
+ 'Czujniki',
+ 'Operators':
+ 'Wyra\u017Cenia',
+ 'Variables':
+ 'Dane',
+ 'Lists':
+ 'Listy',
+ 'Other':
+ 'Inne',
+
+ // editor:
+ 'draggable':
+ 'przeci\u0105ganie',
+
+ // tabs:
+ 'Scripts':
+ 'Skrypty',
+ 'Costumes':
+ 'Kostiumy',
+ 'Sounds':
+ 'D\u017Awi\u0119ki',
+
+ // names:
+ 'Sprite':
+ 'Duszek',
+ 'Stage':
+ 'Scena',
+
+ // rotation styles:
+ 'don\'t rotate':
+ 'nie obracaj',
+ 'can rotate':
+ 'dowolny obrót',
+ 'only face left/right':
+ 'tylko lewo/prawo',
+
+ // new sprite button:
+ 'add a new sprite':
+ 'dodaj nowego duszka',
+
+ // tab help
+ 'costumes tab help':
+ 'Importuj obrazy z innej strony\n'
+ + 'lub z komputera przeci\u0105gaj\u0105c tu',
+ 'import a sound from your computer\nby dragging it into here':
+ 'Importuj d\u017Awi\u0119k z komputera\nprzeci\u0105gaj\u0105c tu',
+
+ // primitive blocks:
+
+ /*
+ Attention Translators:
+ ----------------------
+ At this time your translation of block specs will only work
+ correctly, if the order of formal parameters and their types
+ are unchanged. Placeholders for inputs (formal parameters) are
+ indicated by a preceding % prefix and followed by a type
+ abbreviation.
+
+ For example:
+
+ 'say %s for %n secs'
+
+ can currently not be changed into
+
+ 'say %n secs long %s'
+
+ and still work as intended.
+
+ Similarly
+
+ 'point towards %dst'
+
+ cannot be changed into
+
+ 'point towards %cst'
+
+ without breaking its functionality.
+ */
+
+ // motion:
+ 'Stage selected:\nno motion primitives':
+ 'Wybrana scena\nnie ma blok\u00F3w ruchu',
+
+ 'move %n steps':
+ 'przesu\u0144 o %n krok\u00F3w',
+ 'turn %clockwise %n degrees':
+ 'obr\u00F3\u0107 %clockwise o %n stopni',
+ 'turn %counterclockwise %n degrees':
+ 'obr\u00F3\u0107 %counterclockwise o %n stopni',
+ 'point in direction %dir':
+ 'ustaw kierunek na %dir',
+ 'point towards %dst':
+ 'ustaw w stron\u0119 %dst',
+ 'go to x: %n y: %n':
+ 'id\u017A do x: %n y: %n',
+ 'go to %dst':
+ 'id\u017A do %dst',
+ 'glide %n secs to x: %n y: %n':
+ 'le\u0107 przez %n s do x: %n y: %n',
+ 'change x by %n':
+ 'zmie\u0144 x o %n',
+ 'set x to %n':
+ 'ustaw x na %n',
+ 'change y by %n':
+ 'zmie\u0144 y o %n',
+ 'set y to %n':
+ 'ustaw y na %n',
+ 'if on edge, bounce':
+ 'je\u017Celi na brzegu, odbij si\u0119',
+ 'x position':
+ 'pozycja X',
+ 'y position':
+ 'pozycja Y',
+ 'direction':
+ 'kierunek',
+
+ // wyglad:
+ 'switch to costume %cst':
+ 'zmie\u0144 kostium na %cst',
+ 'next costume':
+ 'nast\u0118pny kostium',
+ 'costume #':
+ 'kostium nr ',
+ 'say %s for %n secs':
+ 'powiedz %s przez %n s',
+ 'say %s':
+ 'powiedz %s',
+ 'think %s for %n secs':
+ 'pomy\u015Bl %s przez %n s',
+ 'think %s':
+ 'pomy\u015Bl %s',
+ 'Hello!':
+ 'Hallo!',
+ 'Hmm...':
+ 'Hmm...',
+ 'change %eff effect by %n':
+ 'zmie\u0144 efekt %eff o %n',
+ 'set %eff effect to %n':
+ 'ustaw efekt %eff na %n',
+ 'clear graphic effects':
+ 'wyczy\u015B\u0107 efekty graficzne',
+ 'change size by %n':
+ 'zmie\u0144 rozmiar o %n',
+ 'set size to %n %':
+ 'ustaw rozmiar na %n %',
+ 'size':
+ 'rozmiar',
+ 'show':
+ 'poka\u017C',
+ 'hide':
+ 'ukryj',
+ 'go to front':
+ 'na wierzch',
+ 'go back %n layers':
+ 'wr\u00F3\u0107 o %n poziom\u00F3w',
+
+ 'development mode \ndebugging primitives:':
+ 'tryb budowania \ndebugowanie procedur pierwotnych',
+ 'console log %mult%s':
+ 'log konsoli: %mult%s',
+ 'alert %mult%s':
+ 'alert: %mult%s',
+
+ // dzwiek:
+ 'play sound %snd':
+ 'zagraj d\u017Awi\u0119k %snd',
+ 'play sound %snd until done':
+ 'zagraj d\u017Awi\u0119k %snd i czekaj',
+ 'stop all sounds':
+ 'zatrzymaj wszystkie d\u017Awi\u0119ki',
+ 'rest for %n beats':
+ 'pauzuj przez %n takt\u00F3w',
+ 'play note %n for %n beats':
+ 'zagraj nut\u0119 %n przez %n takt\u00F3w',
+ 'change tempo by %n':
+ 'zmie\u0144 tempo o %n',
+ 'set tempo to %n bpm':
+ 'ustaw tempo na %n takt\u00F3w na min.',
+ 'tempo':
+ 'tempo',
+
+ // pisak:
+ 'clear':
+ 'wyczy\u015B\u0107',
+ 'pen down':
+ 'przy\u0142\u00F3\u017C pisak',
+ 'pen up':
+ 'podnie\u015B pisak',
+ 'set pen color to %clr':
+ 'ustaw kolor piaka na %clr',
+ 'change pen color by %n':
+ 'zmie\u0144 kolor pisaka o %n',
+ 'set pen color to %n':
+ 'ustaw kolor pisaka na %n',
+ 'change pen shade by %n':
+ 'zmie\u0144 odcie\u0144 pisaka o %n',
+ 'set pen shade to %n':
+ 'ustaw odcie\u0144 pisaka na %n',
+ 'change pen size by %n':
+ 'zmie\u0144 rozmiar pisaka o %n',
+ 'set pen size to %n':
+ 'ustaw rozmiar pisaka na %n',
+ 'stamp':
+ 'stempluj',
+
+ // control:
+ 'when %greenflag clicked':
+ 'kiedy klikni\u0119to %greenflag',
+ 'when %keyHat key pressed':
+ 'kiedy klawisz %keyHat naci\u015Bni\u0119ty',
+ 'when I am clicked':
+ 'kiedy duszek klikni\u0119ty',
+ 'when I receive %msgHat':
+ 'kiedy otrzymam %msgHat',
+ 'broadcast %msg':
+ 'nadaj %msg do wszystkich',
+ 'broadcast %msg and wait':
+ 'nadaj %msg do wszystkich i czekaj',
+ 'Message name':
+ 'nazwa wiadomo\u015Bci',
+ 'message':
+ 'wiadomo\u015B\u0107',
+ 'any message':
+ 'dowolna wiadomo\u015B\u0107',
+ 'wait %n secs':
+ 'czekaj %n s',
+ 'wait until %b':
+ 'czekaj a\u017C %b',
+ 'forever %c':
+ 'zawsze %c',
+ 'repeat %n %c':
+ 'powt\u00F3rz %n razy %c',
+ 'repeat until %b %c':
+ 'powtarzaj a\u017C %b %c',
+ 'if %b %c':
+ 'je\u017Celi %b to %c',
+ 'if %b %c else %c':
+ 'je\u017Celi %b to %c w przeciwnym razie %c',
+ 'report %s':
+ 'zwr\u00F3\u0107 %s',
+ 'stop block':
+ 'zatrzymaj ten blok',
+ 'stop script':
+ 'zatrzymaj ten skrypt',
+ 'stop all %stop':
+ 'zatrzymaj wszystko %stop',
+ 'pause all %pause':
+ 'pauzuj wszystko %pause',
+ 'run %cmdRing %inputs':
+ 'uruchom %cmdRing z %inputs',
+ 'launch %cmdRing %inputs':
+ 'zacznij %cmdRing %inputs',
+ 'call %repRing %inputs':
+ 'wywo\u0142aj %repRing z %inputs',
+ 'run %cmdRing w/continuation':
+ 'uruchom %cmdRing z kontynuacj\u0105',
+ 'call %cmdRing w/continuation':
+ 'wywo\u0142aj %cmdRing z kontynuacj\u0105',
+ 'warp %c':
+ 'warp %c',
+ 'when I start as a clone':
+ 'kiedy zaczynam jako klon',
+ 'create a clone of %cln':
+ 'sklonuj %cln',
+ 'myself':
+ 'ja',
+ 'delete this clone':
+ 'usu\u0144 tego klona',
+
+ // sensing:
+ 'touching %col ?':
+ 'dotyka %col ?',
+ 'touching %clr ?':
+ 'dotyka koloru %clr ?',
+ 'color %clr is touching %clr ?':
+ 'czy kolor %clr dotyka %clr ?',
+ 'ask %s and wait':
+ 'zapytaj %s i czekaj',
+ 'what\'s your name?':
+ 'Jak masz na imi\u0119?',
+ 'answer':
+ 'odpowied\u017A',
+ 'mouse x':
+ 'x myszy',
+ 'mouse y':
+ 'y myszy',
+ 'mouse down?':
+ 'przycisk myszy naci\u015Bni\u0119ty',
+ 'key %key pressed?':
+ 'klawisz %key naci\u015Bni\u0119ty?',
+ 'distance to %dst':
+ 'odleg\u0142o\u015B\u0107 do %dst',
+ 'reset timer':
+ 'kasuj zegar',
+ 'timer':
+ 'czasomierz',
+ '%att of %spr':
+ '%att z %spr',
+ 'http:// %s':
+ 'http:// %s',
+ 'turbo mode?':
+ 'tryb turbo?',
+ 'set turbo mode to %b':
+ 'ustaw tryb turbo na %b',
+
+ 'filtered for %clr':
+ 'przefiltrowane dla %clr',
+ 'stack size':
+ 'rozmiar stosu',
+ 'frames':
+ 'klatki',
+
+ // operators:
+ '%n mod %n':
+ '%n modulo %n',
+ 'round %n':
+ 'zaokr\u0105glij %n',
+ '%fun of %n':
+ '%fun z %n',
+ 'pick random %n to %n':
+ 'losuj od %n do %n',
+ '%b and %b':
+ '%b i %b',
+ '%b or %b':
+ '%b lub %b',
+ 'not %b':
+ 'nie %b',
+ 'true':
+ 'prawda',
+ 'false':
+ 'fa\u0142sz',
+ 'join %words':
+ 'po\u0142\u0105cz %words',
+ 'hello':
+ 'Hallo',
+ 'world':
+ 's\u0142owo',
+ 'letter %n of %s':
+ 'litera %n z %s',
+ 'length of %s':
+ 'd\u0142ugo\u015B\u0107 %s',
+ 'unicode of %s':
+ 'Unicode z %s',
+ 'unicode %n as letter':
+ 'Unicode %n jako litera',
+ 'is %s a %typ ?':
+ 'jest %s typu %typ ?',
+ 'is %s identical to %s ?':
+ 'jest %s identyczne z %s ?',
+
+ 'type of %s':
+ 'typ %s',
+
+ // variables:
+ 'Make a variable':
+ 'Stw\u00F3rz zmienn\u0105',
+ 'Variable name':
+ 'nazwa zmiennej',
+ 'Script variable name':
+ 'nazwa zmiennej skryptu',
+ 'Delete a variable':
+ 'usu\u0144 zmienn\u0105',
+
+ 'set %var to %s':
+ 'ustaw %var na %s',
+ 'change %var by %n':
+ 'zmie\u0144 %var o %n',
+ 'show variable %var':
+ 'poka\u017C zmienn\u0105 %var',
+ 'hide variable %var':
+ 'ukryj zmienn\u0105 %var',
+ 'script variables %scriptVars':
+ 'zmienne skryptu %scriptVars',
+
+ // lists:
+ 'list %exp':
+ 'lista %exp',
+ '%s in front of %l':
+ 'wstaw %s przed %l',
+ 'item %idx of %l':
+ 'element %idx z %l',
+ 'all but first of %l':
+ 'bez pierwszego z %l',
+ 'length of %l':
+ 'd\u0142ugo\u015B\u0107 %l',
+ '%l contains %s':
+ '%l zawiera %s',
+ 'thing':
+ 'co\u015B',
+ 'add %s to %l':
+ 'dodaj %s do %l',
+ 'delete %ida of %l':
+ 'usu\u0144 %ida z %l',
+ 'insert %s at %idx of %l':
+ 'wstaw %s na pozycji %idx do %l',
+ 'replace item %idx of %l with %s':
+ 'zamie\u0144 element %idx z %l na %s',
+
+ // other
+ 'Make a block':
+ 'nowy blok',
+
+ // menus
+ // snap menu
+ 'About...':
+ 'O Snap!...',
+ 'Reference manual':
+ 'Podr\u0119cznik',
+ 'Snap! website':
+ 'Strona Snap!',
+ 'Download source':
+ 'Pobierz \u017Ar\u00F3d\u0142o',
+ 'Switch back to user mode':
+ 'Prze\u0142\u0105cz do trybu u\u017Cytkownika',
+ 'disable deep-Morphic\ncontext menus\nand show user-friendly ones':
+ 'disable Morphic',
+ 'Switch to dev mode':
+ 'do trybu budowania',
+ 'enable Morphic\ncontext menus\nand inspectors,\nnot user-friendly!':
+ 'enable Morphic',
+
+ // project menu
+ 'Project notes...':
+ 'O projekcie...',
+ 'New':
+ 'Nowy',
+ 'Open...':
+ 'Otw\u00F3rz...',
+ 'Save':
+ 'Zapisz',
+ 'Save As...':
+ 'Zapisz jako...',
+ 'Import...':
+ 'Importuj...',
+ 'file menu import hint':
+ '\u0142aduje wyeksportowany projekt\n'
+ + 'biblitek\u0119 '
+ + 'kostium lub d\u017Awi\u0119k',
+ 'Export project as plain text...':
+ 'Eksportuj projekt jako tekst...',
+ 'Export project...':
+ 'Eksportuj projekt...',
+ 'show project data as XML\nin a new browser window':
+ 'poka\u017C projekt jako XML\nin w nowej karcie',
+ 'Export blocks...':
+ 'Eksportuj bloki...',
+ 'show global custom block definitions as XML\nin a new browser window':
+ 'poka\u017C definicje blok\u00F3w jako XML/min w nowej karcie',
+ 'Import tools':
+ 'Importuj narz\u0119dzia',
+ 'load the official library of\npowerful blocks':
+ 'za\u0142aduj oficjaln\u0105 bibliotek\u0119 blok\u00F3w',
+ 'Libraries...':
+ 'Biblioteka...',
+ 'Import library':
+ 'Importuj bibliotek\u0119',
+
+ // cloud menu
+ 'Login...':
+ 'Logowanie...',
+ 'Signup...':
+ 'Rejestracja...',
+
+ // settings menu
+ 'Language...':
+ 'J\u0119zyk...',
+ 'Zoom blocks...':
+ 'Powi\u0119ksz bloki...',
+ 'Blurred shadows':
+ 'Rozmyte cienie',
+ 'uncheck to use solid drop\nshadows and highlights':
+ 'Odznacz, aby uzyska\u0107\nmocne cienie i granice',
+ 'check to use blurred drop\nshadows and highlights':
+ 'Zaznacz, aby uzyska\u0107\rozmyte cienie i granice',
+ 'Zebra coloring':
+ 'Kolorowanie zebr\u0105',
+ 'check to enable alternating\ncolors for nested blocks':
+ 'zaznacz, aby pozowli\u0107 na zmian\u0119\nbarw zagnie\u017Cd\u017Conych blok\u00F3w',
+ 'uncheck to disable alternating\ncolors for nested block':
+ 'odznacz, aby nie pozowli\u0107 na zmian\u0119\nbarw zagnie\u017Cd\u017Conych blok\u00F3w',
+ 'Dynamic input labels':
+ 'Dynamiczne opisy parametr\u00F3w',
+ 'uncheck to disable dynamic\nlabels for variadic inputs':
+ 'odznacz to disable dynamic\nlabels for variadic inputs',
+ 'check to enable dynamic\nlabels for variadic inputs':
+ 'zaznacz to enable dynamic\nlabels for variadic inputs',
+ 'Prefer empty slot drops':
+ 'Preferuj empty slot drops',
+ 'settings menu prefer empty slots hint':
+ 'menu ustawie\u0144 prefer empty slots hint',
+ 'uncheck to allow dropped\nreporters to kick out others':
+ 'odznacz to allow dropped\nreporters to kick out others',
+ 'Long form input dialog':
+ 'D\u0142uga forma dialogu wej\u015Bcia',
+ 'check to always show slot\ntypes in the input dialog':
+ 'zaznacz to always show slot\ntypes in the input dialog',
+ 'uncheck to use the input\ndialog in short form':
+ 'odznacz to use the input\ndialog in short form',
+ 'Virtual keyboard':
+ 'Witualna klawiatura',
+ 'uncheck to disable\nvirtual keyboard support\nfor mobile devices':
+ 'odznacz, aby nie u\u017Cywa\u0107 klawiatury\nwirtualnej dla urzdze\u0144 mobilnych',
+ 'check to enable\nvirtual keyboard support\nfor mobile devices':
+ 'zaznacz, aby u\u017Cywa\u0107 klawiatury\nwirtualnej dla urzdze\u0144 mobilnych',
+ 'uncheck to disable\ninput sliders for\nentry fields':
+ 'odznacz, aby nie pozwoli\u0107 na suwaki w polach wej\u015Bciowych',
+ 'check to enable\ninput sliders for\nentry fields':
+ 'zaznacz, aby pozwoli\u0107 na suwaki w polach wej\u015Bciowych',
+ 'Clicking sound':
+ 'D\u017Awi\u0119k klikni\u0119cia',
+ 'uncheck to turn\nblock clicking\nsound off':
+ 'odznacz, aby wy\u0142\u0105czy\u0107 \nd\u017Awi\u0119k klikni\u0119cia',
+ 'check to turn\nblock clicking\nsound on':
+ 'zaznacz, aby w\u0142\u0105czy\u0107 \nd\u017Awi\u0119k klikni\u0119cia',
+ 'Animations':
+ 'Animacje',
+ 'uncheck to disable\nIDE animations':
+ 'odznacz, aby nie pozwoli\u0107\nna animacje IDE',
+ 'Turbo mode':
+ 'Tryb turbo',
+ 'check to prioritize\nscript execution':
+ 'zaznacz, aby nada\u0107 priorytet\nwykonaniu skryptu',
+ 'uncheck to run scripts\nat normal speed':
+ 'odznacz, aby wykona\u0107 skrypt\nz normaln\u0105 szybko\u015Bci\u0105',
+ 'check to enable\nIDE animations':
+ 'zaznacz, aby pozwoli\u0107\nna animacje IDE',
+ 'Thread safe scripts':
+ 'Omijaj bezpieczne skrypty',
+ 'uncheck to allow\nscript reentrance':
+ 'odznacz, aby pozwoli\u0107\nna restartowanie skryptu',
+ 'check to disallow\nscript reentrance':
+ 'zaznacz, aby nie pozwoli\u0107\nna restartowanie skryptu',
+ 'Prefer smooth animations':
+ 'Preferuj g\u0142adkie animacje',
+ 'uncheck for greater speed\nat variable frame rates':
+ 'odznacz, aby pozwoli\u0107na\nwi\u0119ksz pr\u0119dko\u015B\u0107 ramek animacji',
+ 'check for smooth, predictable\nanimations across computers':
+ 'zaznacz, aby zapewni\u0107na\njednakowe, g\u0142adkie animacje',
+
+ // inputs
+ 'with inputs':
+ 'z parametrami',
+ 'input names:':
+ 'nazwy parametr\u00F3w:',
+ 'Input Names:':
+ 'Nazwy Parametr\u00F3w:',
+ 'input list:':
+ 'parametr - lista:',
+
+ // context menus:
+ 'help':
+ 'pomoc',
+
+ // palette:
+ 'hide primitives':
+ 'ukryj pierwotne',
+ 'show primitives':
+ 'poka\u017C pierwotne',
+
+ // blocks:
+ 'help...':
+ 'pomoc...',
+ 'relabel...':
+ 'przemianuj...',
+ 'duplicate':
+ 'powiel',
+ 'make a copy\nand pick it up':
+ 'wykonaj i we\u017A kopi\u0119',
+ 'only duplicate this block':
+ 'powiel tylko ten blok',
+ 'delete':
+ 'usu\u0144',
+ 'script pic...':
+ 'obrazek skryptu...',
+ 'open a new window\nwith a picture of this script':
+ 'otw\u00F3rz nowe okno\nz obrazkiem tego skryptu',
+ 'ringify':
+ 'obwiednia',
+ 'unringify':
+ 'bez obwiedni',
+
+ // custom blocks:
+ 'delete block definition...':
+ 'usu\u0144 definicj\u0119 bloku',
+ 'edit...':
+ 'edytuj...',
+
+ // sprites:
+ 'edit':
+ 'edytuj',
+ 'export...':
+ 'eksportuj...',
+
+ // stage:
+ 'show all':
+ 'poka\u017C wszystko',
+ 'pic...':
+ 'obrazek...',
+ 'open a new window\nwith a picture of the stage':
+ 'otw\u00F3rz w nowym oknie\nz obrazkiem sceny',
+
+ // scripting area
+ 'clean up':
+ 'wyczy\u015B\u0107',
+ 'arrange scripts\nvertically':
+ 'ustaw skrypty pionowo',
+ 'add comment':
+ 'dodaj komentarz',
+ 'undrop':
+ 'odklej',
+ 'undo the last\nblock drop\nin this pane':
+ 'cofnij ostatnie upuszczenie\nbloku na tej planszy',
+ 'scripts pic...':
+ 'obrazek skryptu...',
+ 'open a new window\nwith a picture of all scripts':
+ 'otw\u00F3rz nowe okno\nz obrazkami wszystkich skrypt\u00F3w',
+ 'make a block...':
+ 'buduj nowy blok...',
+
+ // costumes
+ 'rename':
+ 'zmie\u0144 nazw\u0119',
+ 'export':
+ 'eksportuj',
+ 'rename costume':
+ 'zmie\u0144 nazw\u0119 kostiumu',
+
+ // sounds
+ 'Play sound':
+ 'Zagraj d\u017Cwi\u0119k',
+ 'Stop sound':
+ 'Zatrzymaj d\u017Cwi\u0119k',
+ 'Stop':
+ 'Stop',
+ 'Play':
+ 'Graj',
+ 'rename sound':
+ 'zmie\u0144 nazw\u0119 d\u017Cwi\u0119ku',
+
+ // dialogs
+ // buttons
+ 'OK':
+ 'OK',
+ 'Ok':
+ 'Ok',
+ 'Cancel':
+ 'Poniechaj',
+ 'Yes':
+ 'Tak',
+ 'No':
+ 'Nie',
+
+ // help
+ 'Help':
+ 'Pomoc',
+
+ // zoom blocks
+ 'Zoom blocks':
+ 'Zoom blok\u00F3w',
+ 'build':
+ 'buduj',
+ 'your own':
+ 'swoje',
+ 'blocks':
+ 'bloki',
+ 'normal (1x)':
+ 'normalne (1x)',
+ 'demo (1.2x)':
+ 'demo (1.2x)',
+ 'presentation (1.4x)':
+ 'prezentacja (1.4x)',
+ 'big (2x)':
+ 'du\u017Ce (2x)',
+ 'huge (4x)':
+ 'ogromne (4x)',
+ 'giant (8x)':
+ 'gigantyczne (8x)',
+ 'monstrous (10x)':
+ 'monstrualne (10x)',
+
+ // Project Manager
+ 'Untitled':
+ 'Bez nazwy',
+ 'Open Project':
+ 'Otw\u00F3rz projekt',
+ '(empty)':
+ '(puste)',
+ 'Saved!':
+ 'Zapisane!',
+ 'Delete Project':
+ 'Usu\u0144 projekt',
+ 'Are you sure you want to delete':
+ 'Czy napewno chcesz usun\u0105\u0107?',
+ 'rename...':
+ 'przemianuj',
+
+ // costume editor
+ 'Costume Editor':
+ 'Edytor kostium\u00F3w',
+ 'click or drag crosshairs to move the rotation center':
+ 'Kliknij lub przeci\u0105gnij krzy\u017Cyk, aby ustawi\u0107 centrum obrotu',
+
+ // project notes
+ 'Project Notes':
+ 'Opis projektu',
+
+ // new project
+ 'New Project':
+ 'Nowy projekt',
+ 'Replace the current project with a new one?':
+ 'Zast\u0105pi\u0107 aktualny projekt przez nowy?',
+
+ // save project
+ 'Save Project As...':
+ 'Zapisz projekt jako...',
+
+ // export blocks
+ 'Export blocks':
+ 'Eksportuj bloki',
+ 'Import blocks':
+ 'Importuj bloki',
+ 'this project doesn\'t have any\ncustom global blocks yet':
+ 'ten projekt nie ma jeszcze\nw\u0142asnych globalnych blok\u00F3w',
+ 'select':
+ 'wybierz',
+ 'all':
+ 'wszystko',
+ 'none':
+ 'nic',
+
+ // variable dialog
+ 'for all sprites':
+ 'dla wszystkich duszk\u00F3w',
+ 'for this sprite only':
+ 'tylko dla tego duszka',
+
+ // block dialog
+ 'Change block':
+ 'Zmie\u0144 blok',
+ 'Command':
+ 'Komenda',
+ 'Reporter':
+ 'Funkcja',
+ 'Predicate':
+ 'Predykat',
+
+ // block editor
+ 'Block Editor':
+ 'Edytor blok\u00F3w',
+ 'Apply':
+ 'Zastosuj',
+
+ // block deletion dialog
+ 'Delete Custom Block':
+ 'Usu\u0144 w\u0142asny blok',
+ 'block deletion dialog text':
+ 'czy ten blok ze wszystkimi wyst\u0105pieniami\n' +
+ 'rzeczywi\u015Bcie usun\u0105\u0107?',
+
+ // input dialog
+ 'Create input name':
+ 'Utw\u00F3rz nazw\u0119 parametru',
+ 'Edit input name':
+ 'Edytuj nazw\u0119 parametru',
+ 'Edit label fragment':
+ 'Edytuj opis parametru',
+ 'Title text':
+ 'Tekst tutu\u0142owy',
+ 'Input name':
+ 'Nazwa',
+ 'Delete':
+ 'Usu\u0144',
+ 'Object':
+ 'Obiekt',
+ 'Number':
+ 'Liczba',
+ 'Text':
+ 'Tekst',
+ 'List':
+ 'Lista',
+ 'Any type':
+ 'Dowolnego rodzaju',
+ 'Boolean (T/F)':
+ 'Logiczny (P/F)',
+ 'Command\n(inline)':
+ 'Komenda',
+ 'Command\n(C-shape)':
+ 'Komenda\n(C-Form)',
+ 'Any\n(unevaluated)':
+ 'Dowolny\n(nieokre\u015Blony)',
+ 'Boolean\n(unevaluated)':
+ 'Logiczny\n(nieokre\u015Blony)',
+ 'Single input.':
+ 'Jeden parametr.',
+ 'Default Value:':
+ 'Warto\u015B\u0107 standardowa:',
+ 'Multiple inputs (value is list of inputs)':
+ 'Wiele parametr\u00F3w (jako lista)',
+ 'Upvar - make internal variable visible to caller':
+ 'Wewn\u0119trzna zmienna widoczna dla wywo\u0142ania',
+
+ // About Snap
+ 'About Snap':
+ 'O Snap',
+ 'Back...':
+ 'Wstecz...',
+ 'License...':
+ 'Licencja...',
+ 'Modules...':
+ 'Modu\u0142y...',
+ 'Credits...':
+ 'Podzi\u0119kowania...',
+ 'Translators...':
+ 'T\u0142umacze',
+ 'License':
+ 'Licencja',
+ 'current module versions:':
+ 'aktualna wersja modu\u0142\u00F3w',
+ 'Contributors':
+ 'Wsp\u00F3\u0142pracownicy',
+ 'Translations':
+ 'T\u0142umaczenia',
+
+ // variable watchers
+ 'normal':
+ 'normalny',
+ 'large':
+ 'wielki',
+ 'slider':
+ 'suwak',
+ 'slider min...':
+ 'minimum suwaka...',
+ 'slider max...':
+ 'maksimum suwaka...',
+ 'import...':
+ 'importuj...',
+ 'Slider minimum value':
+ 'Minimalna warto\u015B\u0107 suwaka',
+ 'Slider maximum value':
+ 'Maksymalna warto\u015B\u0107 suwaka',
+
+ // list watchers
+ 'length: ':
+ 'du\u0142go\u015B\u0107: ',
+
+ // coments
+ 'add comment here...':
+ 'dodaj komentarz tutaj...',
+
+ // drow downs
+ // directions
+ '(90) right':
+ '(90) prawo',
+ '(-90) left':
+ '(-90) lewo',
+ '(0) up':
+ '(0) g\u00F3ra',
+ '(180) down':
+ '(180) d\u00F3\u0142',
+
+ // collision detection
+ 'mouse-pointer':
+ 'Wska\u017Anik myszy',
+ 'edge':
+ 'Kraw\u0119dzie',
+ 'pen trails':
+ '\u015Alady pisaka',
+
+ // costumes
+ 'Turtle':
+ 'Duszek',
+ 'Empty':
+ 'Pusty',
+
+ // graphical effects
+ 'ghost':
+ 'duch',
+
+ // keys
+ 'space':
+ 'spacja',
+ 'up arrow':
+ 'strz\u0142aka w g\u00F3r\u0119',
+ 'down arrow':
+ 'strz\u0142aka w d\u00F3\u0142',
+ 'right arrow':
+ 'strz\u0142aka w prawo',
+ 'left arrow':
+ 'strz\u0142aka w lewo',
+ 'a':
+ 'a',
+ 'b':
+ 'b',
+ 'c':
+ 'c',
+ 'd':
+ 'd',
+ 'e':
+ 'e',
+ 'f':
+ 'f',
+ 'g':
+ 'g',
+ 'h':
+ 'h',
+ 'i':
+ 'i',
+ 'j':
+ 'j',
+ 'k':
+ 'k',
+ 'l':
+ 'l',
+ 'm':
+ 'm',
+ 'n':
+ 'n',
+ 'o':
+ 'o',
+ 'p':
+ 'p',
+ 'q':
+ 'q',
+ 'r':
+ 'r',
+ 's':
+ 's',
+ 't':
+ 't',
+ 'u':
+ 'u',
+ 'v':
+ 'v',
+ 'w':
+ 'w',
+ 'x':
+ 'x',
+ 'y':
+ 'y',
+ 'z':
+ 'z',
+ '0':
+ '0',
+ '1':
+ '1',
+ '2':
+ '2',
+ '3':
+ '3',
+ '4':
+ '4',
+ '5':
+ '5',
+ '6':
+ '6',
+ '7':
+ '7',
+ '8':
+ '8',
+ '9':
+ '9',
+
+ // messages
+ 'new...':
+ 'nowy...',
+
+ // math functions
+ 'abs':
+ 'modu\u0142',
+ 'floor':
+ 'pod\u0142oga',
+ 'sqrt':
+ 'pierwiastek kwadratowy',
+ 'sin':
+ 'sin',
+ 'cos':
+ 'cos',
+ 'tan':
+ 'tg',
+ 'asin':
+ 'arcsin',
+ 'acos':
+ 'arccos',
+ 'atan':
+ 'arctg',
+ 'ln':
+ 'ln',
+ 'e^':
+ 'e^',
+
+ // data types
+ 'number':
+ 'liczba',
+ 'text':
+ 'tekst',
+ 'Boolean':
+ 'logiczna',
+ 'list':
+ 'lista',
+ 'command':
+ 'komenda',
+ 'reporter':
+ 'funkcja',
+ 'predicate':
+ 'predykat',
+
+ // list indices
+ 'last':
+ 'ostatni',
+ 'any':
+ 'dowolny'
+};
diff --git a/locale.js b/locale.js
index 6ea74d5b..3a73fd41 100644
--- a/locale.js
+++ b/locale.js
@@ -42,7 +42,7 @@
/*global modules, contains*/
-modules.locale = '2013-August-02';
+modules.locale = '2013-August-06';
// Global stuff
@@ -303,3 +303,14 @@ SnapTranslator.dict.nl = {
'last_changed':
'2013-07-24'
};
+
+SnapTranslator.dict.pl = {
+ 'language_name':
+ 'Polski',
+ 'language_translator':
+ 'Witek Kranas',
+ 'translator_e-mail':
+ 'witek@oeiizk.waw.pl',
+ 'last_changed':
+ '2013-08-05'
+};
diff --git a/objects.js b/objects.js
index c843de9f..fad1b6ac 100644
--- a/objects.js
+++ b/objects.js
@@ -123,7 +123,7 @@ PrototypeHatBlockMorph*/
// Global stuff ////////////////////////////////////////////////////////
-modules.objects = '2013-July-31';
+modules.objects = '2013-August-06';
var SpriteMorph;
var StageMorph;
@@ -1169,6 +1169,9 @@ SpriteMorph.prototype.init = function (globals) {
this.idx = 0; // not to be serialized (!) - used for de-serialization
this.wasWarped = false; // not to be serialized, used for fast-tracking
+ this.parts = []; // sprite nesting
+ this.anchor = null; // sprite nesting
+
SpriteMorph.uber.init.call(this);
this.isDraggable = true;