diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 5008ddfc..00000000 Binary files a/.DS_Store and /dev/null differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..e43b0f98 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store diff --git a/README.md b/README.md index 8cb1ef72..8564d27d 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ - + Snap! Build Your Own Blocks -http://snap.berkeley.edu - -a visual, blocks based programming language -inspired by Scratch - -written by Jens Mönig and Brian Harvey -jens@moenig.org, bh@cs.berkeley.edu - +http://snap.berkeley.edu + +a visual, blocks based programming language +inspired by Scratch + +written by Jens Mönig and Brian Harvey +jens@moenig.org, bh@cs.berkeley.edu + Copyright (C) 2013 by Jens Mönig and Brian Harvey Snap! is free software: you can redistribute it and/or modify diff --git a/blocks.js b/blocks.js index 19035730..061e1769 100644 --- a/blocks.js +++ b/blocks.js @@ -6,12 +6,12 @@ based on morphic.js inspired by Scratch - written by Jens Mšnig + written by Jens Mönig jens@moenig.org - Copyright (C) 2013 by Jens Mšnig + Copyright (C) 2013 by Jens Mönig - This file is part of Snap!. + 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 @@ -1588,9 +1588,9 @@ SyntaxElementMorph.prototype.endLayout = function () { special form: upvar %upvar - same as %t (inline variable reporter template) - + special form: input name - + %inputName - variable blob (used in input type dialog) examples: @@ -4386,7 +4386,7 @@ ScriptsMorph.prototype.reactToDropOf = function (droppedMorph, hand) { Usually I am just a receptacle for inherited methods and attributes, however, if my 'type' attribute is set to one of the following values, I act as an iconic slot myself: - + 'list' - a list symbol */ diff --git a/byob.js b/byob.js index 2999dbd9..c21cf110 100644 --- a/byob.js +++ b/byob.js @@ -6,12 +6,12 @@ based on morphic.js, widgets.js blocks.js, threads.js and objects.js inspired by Scratch - written by Jens Mšnig + written by Jens Mönig jens@moenig.org - Copyright (C) 2013 by Jens Mšnig + Copyright (C) 2013 by Jens Mönig - This file is part of Snap!. + 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 @@ -57,7 +57,7 @@ ReporterBlockMorph*** CustomReporterBlockMorph JaggedBlockMorph - + StringMorph* BlockLabelFragmentMorph @@ -90,7 +90,7 @@ VariableDialogMorph BlockExportDialogMorph BlockImportDialogMorph - + */ /*global modules, CommandBlockMorph, SpriteMorph, TemplateSlotMorph, @@ -418,7 +418,7 @@ CustomCommandBlockMorph.prototype.refreshPrototype = function () { protoSpec = this.specFromFragments(); - // update the prototype's type + // update the prototype's type // and possibly exchange 'this' for 'myself' if (this instanceof CustomCommandBlockMorph && ((hat.type === 'reporter') || (hat.type === 'predicate'))) { @@ -1302,7 +1302,7 @@ BlockDialogMorph.prototype.fixLayout = function () { + this.padding ); } - } else if (this.head) { // when changing an existing prototype + } else if (this.head) { // when changing an existing prototype if (this.types) { this.types.fixLayout(); this.silentSetWidth( @@ -2125,7 +2125,7 @@ InputSlotDialogMorph.uber = DialogBoxMorph.prototype; // InputSlotDialogMorph preferences settings: -// if "isLaunchingExpanded" is true I always open in the long form +// if "isLaunchingExpanded" is true I always open in the long form InputSlotDialogMorph.prototype.isLaunchingExpanded = false; // InputSlotDialogMorph instance creation: @@ -2486,13 +2486,13 @@ InputSlotDialogMorph.prototype.addSlotTypeButton = function ( its right. Note that you can make the slot picture interactive (turn it into a ToggleElementMorph by changing the - + element.fullImage() - + line to just - + element - + I've opted for the simpler representation because it reduces the duration of time it takes for the InputSlotDialog to load and show. But in the future computers and browsers may be diff --git a/cloud.js b/cloud.js index 3faf327c..ccd93454 100644 --- a/cloud.js +++ b/cloud.js @@ -4,11 +4,11 @@ a backend API for SNAP! - written by Jens Mšnig + written by Jens Mönig - Copyright (C) 2013 by Jens Mšnig + Copyright (C) 2013 by Jens Mönig - This file is part of Snap!. + 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 diff --git a/contributing to BYOB4.txt b/contributing to BYOB4.txt index 988a660d..88138464 100755 --- a/contributing to BYOB4.txt +++ b/contributing to BYOB4.txt @@ -2,54 +2,54 @@ Contributing to BYOB4 / Snap! by Jens Mönig last changed: 12/09/14 -***************************** - +***************************** + Attached is the current development code base for BYOB4 a.k.a. Snap. It consists of several JavaScript, HTML and text files, and while some of it may be functional most parts will be in flux and subject to frequent, even fundamental modifications. This document lays out a few simple guidelines ensuring that collaborative code -contribution works out. - - -Working with changesets ------------------------ +contribution works out. + + +Working with changesets +----------------------- You'll often want to change or add code in existing JS files. Please don't. Instead -use a changeset. The way I always do it myself is to copy the empty - - changeset.js - -file and rename it to something like - - JensChangesToMorphic.js - +use a changeset. The way I always do it myself is to copy the empty + + changeset.js + +file and rename it to something like + + JensChangesToMorphic.js + Into this file I write all the functions I want to add to Morphic. If I want to change a function in Morphic.js I copy it to the changeset and edit it there. Then -I always validate the changeset with - - JSLint.com - -Please check your code frequently with JSLint! - -For our Snap code set JSLint's settings to: - - assume a browser - tolerate missing 'use strict' pragma - - [4] indentation - [78] maximum line length +I always validate the changeset with + + JSLint.com + +Please check your code frequently with JSLint! + +For our Snap code set JSLint's settings to: + + assume a browser + tolerate missing 'use strict' pragma + + [4] indentation + [78] maximum line length If you're working on the core Morphic library you can also - tolerate eval + tolerate eval tolerate unfiltered for in - + although you'll probably not ever going to need either EVAL or FORIN in your -changesets anyway. - +changesets anyway. + There are, of course, other tools - like JSHint and Firebug - that help you debug your code. Feel free to use whichever suits you best, but let's all agree on JSLint's (nitpicky!) formatting rules so we get code that's well readable and -easily shareable among ourselves. +easily shareable among ourselves. Coding style @@ -112,62 +112,62 @@ Avoid - create a new constructor instead -Testing your code ------------------- +Testing your code +------------------ (don't worry, I'm not talking about formal UnitTest Suites or other BDSM software -fetishes, just about playing with what you're creating while you're doing it) - +fetishes, just about playing with what you're creating while you're doing it) + To test your changesets just add another line in the html stub file with your changeset. Make sure to put your changeset /after/ Morphic.js and Blocks.js and -whichever libraries are already included, so it'll actually get used. - -In your changeset override the world's - - customMorphs - +whichever libraries are already included, so it'll actually get used. + +In your changeset override the world's + + customMorphs + function so it returns a list of instances of your Morphs. For "Blocks.js" that -code is: - - var BlockMorph; - var ScriptsMorph; - - WorldMorph.prototype.customMorphs = function () { - var sm = new ScriptsMorph(); - sm.setExtent(new Point(800, 600)); - return [ - new BlockMorph(), - sm - ]; - }; - +code is: + + var BlockMorph; + var ScriptsMorph; + + WorldMorph.prototype.customMorphs = function () { + var sm = new ScriptsMorph(); + sm.setExtent(new Point(800, 600)); + return [ + new BlockMorph(), + sm + ]; + }; + Just modify this code so it returns your list of sample Morphs instead of -BlockMorph and ScriptsMorph instances. - +BlockMorph and ScriptsMorph instances. + Once you've added this code to your changeset you can open your sample html file -in your browser, and you'll find your sample Morphs in the World's DEMO menu. - - -Inspectors ----------- +in your browser, and you'll find your sample Morphs in the World's DEMO menu. + + +Inspectors +---------- To actually test play with your Morphs you can right-click on them and open an inspector on them. You can open more than one inspector on each object. The inspector pretty much works the same as in Smalltalk. It even has an evaluation pane at the bottom, in which you can type in any JS code, mark it with your mouse (or select all with ctrl-a), righ-click on the selection and either "do it", "show -it" or "inspect it" (again, like in Squeak). - +it" or "inspect it" (again, like in Squeak). + Needless to say, in the evaluation pane "this" always refers to the inspected -object. - - -Source Code Mgmt ------------------ +object. + + +Source Code Mgmt +----------------- The good thing about changesets is that you can continue working on them regardless of new dev releases that happen in the meantime. When you feel you've got something that's finished just send me your changeset, and I'll work all the changesets into the Snap codebase and release another dev version. That way there will always (and -frequently) be a harmonized common code base. - -Thanks! - +frequently) be a harmonized common code base. + +Thanks! + --Jens diff --git a/gui.js b/gui.js index 184bbd04..07d4f070 100644 --- a/gui.js +++ b/gui.js @@ -6,12 +6,12 @@ based on morphic.js, blocks.js, threads.js and objects.js inspired by Scratch - written by Jens Mšnig + written by Jens Mönig jens@moenig.org - Copyright (C) 2013 by Jens Mšnig + Copyright (C) 2013 by Jens Mönig - This file is part of Snap!. + 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 @@ -269,7 +269,7 @@ IDE_Morph.prototype.openIn = function (world) { ); } else if (location.hash.substr(0, 6) === '#lang:') { this.setLanguage(location.hash.substr(6)); - this.newProject(); + this.loadNewProject = true; } else if (location.hash.substr(0, 7) === '#signup') { this.createCloudAccount(); } @@ -1227,7 +1227,7 @@ IDE_Morph.prototype.createCorral = function () { // IDE_Morph layout IDE_Morph.prototype.fixLayout = function (situation) { - // situation is a string, i.e. + // situation is a string, i.e. // 'selectSprite' or 'refreshPalette' or 'tabEditor' var padding = 5; @@ -2177,7 +2177,9 @@ IDE_Morph.prototype.newProject = function () { if (this.stage) { this.stage.destroy(); } - location.hash = ''; + if (location.hash.substr(0, 6) !== '#lang:') { + location.hash = ''; + } this.globalVariables = new VariableFrame(); this.currentSprite = new SpriteMorph(this.globalVariables); this.sprites = new List([this.currentSprite]); @@ -2788,21 +2790,27 @@ IDE_Morph.prototype.setLanguage = function (lang) { IDE_Morph.prototype.reflectLanguage = function (lang) { var projectData; SnapTranslator.language = lang; - if (Process.prototype.isCatchingErrors) { - try { + if (!this.loadNewProject) { + if (Process.prototype.isCatchingErrors) { + try { + projectData = this.serializer.serialize(this.stage); + } catch (err) { + this.showMessage('Serialization failed: ' + err); + } + } else { projectData = this.serializer.serialize(this.stage); - } catch (err) { - this.showMessage('Serialization failed: ' + err); } - } else { - projectData = this.serializer.serialize(this.stage); } SpriteMorph.prototype.initBlocks(); this.spriteBar.tabBar.tabTo('scripts'); this.createCategories(); this.createCorralBar(); this.fixLayout(); - this.openProjectString(projectData); + if (this.loadNewProject){ + this.newProject(); + } else { + this.openProjectString(projectData); + } }; // IDE_Morph blocks scaling @@ -4478,8 +4486,8 @@ SpriteIconMorph.prototype.copySound = function (sound) { /* I am a selectable element in the SpriteEditor's "Costumes" tab, keeping - a self-updating thumbnail of the costume I'm respresenting, and a - self-updating label of the costume's name (in case it is changed + a self-updating thumbnail of the costume I'm respresenting, and a + self-updating label of the costume's name (in case it is changed elsewhere) */ @@ -5300,4 +5308,4 @@ JukeboxMorph.prototype.reactToDropOf = function (icon) { }); this.sprite.sounds.add(costume, idx); this.updateList(); -}; \ No newline at end of file +}; diff --git a/history.txt b/history.txt index c4b9796f..9dc8a97f 100755 --- a/history.txt +++ b/history.txt @@ -1,377 +1,377 @@ -BYOB4 (Snap) history ---------------------- -110511 ------- -* Scrolling by dragging -* Scrolling by dragging velocity - -110516 ------- -* Autoscrolling - -110518 ------- -* Textures - -110524 ------- -* CommandSlotMorphs (%c) - -110527 ------- -* Templates -* Padding for ScrollFrames - -110530 ------- -* C-slots only attach to blocks' tops (no longer also to bottoms) - -110531 ------- -* ReporterBlockMorphs - -110628 ------- -* World menu in every Morph's developersMenu -* changed the standard to "sharp shadows" because of Firefox5 bug - -110630 ------- -* StringMorphs and TextMorph notify their parents of layout changes -* TypeInSlotMorphs (round - %n - and rectangular - %s -) - -110705 ------- -* block specs - -110706 ------- -* BooleanSlotMorphs (%b) -* Color mixing -* contrast setting for SyntaxElementMorphs -* exit confirmation - -110707 ------- -* BlockMorph color changing -* entry field tabbing (Firefox and Opera only) -* label multi-line wrapping for command blocks - -110708 ------- -* extrapolate blockSpec upon label part drop - -110711 ------- -* optional intra-block-label word wrap (flag) layout setting - -110712 ------- -* rectangular reporter layout -* label mutli-line wrapping for reporters -* user-definable label line breaks (%br) -* font size customizable for individual menus -* ArrowMorphs - -110714 ------- -* optional drop-down menu for type-in slots -* read-only menus for type-in slots (%inst, %var, %lst, %obj, %eff, - %dir, %cst, %snd, %key, %idx, %msg, %att, %fun, %typ) -* global pixel color sensing -* renamed TypeInSlotMorph to InputSlotMorph - -110718 ------- -* ColorSlotMorphs (%clr) -* collision detection groundwork - -110719 ------- -* high-level documentation and code comments -* optional blurred slot shades (off by default) - -110720 ------- -* HatBlocks - -110721 ------- -* scrollBarSize can now optionally be specified individually -* block highlighting -* specs for any-unevaluated and Boolean-unevaluated inputs - -110722 ------- -* stringField settable as numeric, supresses textual input -* editable numeric input slots supress textual type-in -* evaluation helper methods and properties -* collision detection - -110726 ------- -* MultiArgMorphs (%mult%x) - -110727 ------- -* Morphic: fullBounds() now ignores hidden submorphs -* MultiArgMorphs: Optional label and minimum inputs settings, '%inputs' -* Morphic: simplified BoxMorph rendering -* Same-colored (white), semi-transparent reporter drop feedbacks - -110804 ------- -* evaluator: ThreadManager, Process, StackFrame, VariableFrame - -110810 ------- -* nasciturus: objects, gui - -110811 ------- -* Morphic: broken rect fix for float-positioned Morphs -* Blocks: straight bottom edges for stop-blocks -* PenMorph: round line ends - -110816 ------- -* Morphic: SpeechBubbleMorphs and bubble help for menus/buttons - -110817 ------- -* Threads: evaluating reporters -* showValue bubbles - -110818 ------- -* optimizations for menu bubble help and Blocks layout - -110823 ------- -* Sprite-scoped variables - -110824 ------- -* numerical virtual keyboard (pop-up-sliders - taken out again) -* sliders now work with negative floor numbers -* mouse wheel scroll events (thanks, Nathan!) - -110826 ------- -* TemplateSlotMorphs (%t, %mult%t, %scriptVars) -* script variables -* lockable inputs - -110911 ------- -* Morphic: PenMorph.setHeading() fixed - -110912 ------- -* Threads: renamed StackFrame to Context -* Blocks: persistent input default values - -110913 ------- -* basic Lambda primitives -* basic Lambda visualization (showBubble) - -110914 ------- -* c-slots in primitives are now static by default -* basic THE BLOCK, CALL and REPORT - -110919 ------- -* formal parameters -* recursion -* closures - -110922 ------- -* implicit parameters - -110923 ------- -* error catching for block evaluation - -110926 ------- -* basic message broadcasting -* thread forking (LAUNCH block) - -110927 ------- -* WAIT block - -110928 ------- -* GLIDE block - -111006 ------- -* force yield after timeout - -111007 ------- -* swooshy hat block tops (instead of circle segments) - -111009 ------- -* call/cc - -111010 ------- -* hybrid scope - -111012 ------- -* autolambdafying CSlotMorphs (C-shaped) and CommandSlotMorphs (inline) -* Morphic: right mouse click emulation for Mac - -111017 ------- -* another take on continuations - -111019 ------- -* Morphic: scrolling speedup - -111020 ------- -* unevaluated FunctionSlotMorphs (%f) -* autolambdafying ReporterSlotMorphs (%r, %p) - -111021 ------- -* GUI: CellMorphs (for stage watchers) - -111025 ------- -* GUI: WatcherMorphs -* SHOW VARIABLE, HIDE VARIABLE blocks - -111026 ------- -* Blocks: empty choice for input drop down menus -* automatic positioning of new watchers -* watchers on temporary variables are deleted by HIDE VARIABLE block (not hidden) -* HIDE VARIABLE with empty input deletes all watchers on temporary vars - -111027 ------- -* more extensive Error catching -* slider for numerical text entries in "mobile mode" -* bigger blocks in "mobile mode" - -111031 ------- -* new: widgets.js -* PushButtons - -111102 ------- -* Morphic: StringMorph shadows - -111103 ------- -* widgets: ToggleMorphs (check boxes and radio buttons) -* non-variable watchers -* checkbox toggling for variable watchers - -111108 ------- -* Lists - -111109 ------- -* ListWatchers (basics) - -111111 ------- -* Morphic: visibleBounds() bug fix - -111114 ------- -* Morphic: fullImageClassic() for ListWatcherMorphs -* Threads: MultiArgMorph now use Lists instead of JS-Arrays -* List Blocks -* GUI: adding/removing variables doesn't make the palette jump to the top -* Blocks: list type slots - -111115 ------- -* Morphic: more tolerant grabbing -* Lists: synchronized Watcher updating (speed-up) - -111116 ------- -* Lists: conservative watcher updating (speed-up) -* GUI: logo pane and 'about' box - -111118 ------- -* Lists: watcher shows list range (speed-up, stability) - -111121 ------- -* Atomicity (WARP) -* REPEAT UNTIL -* WAIT UNTIL - -111123 ------- -* hybrid lists (arrayed and linked) -* CONS and CDR - -111124 ------- -* layout optimization for dropped and snapping blocks (thanks, John!) -* Equality testing for lists (thanks, Brian!) - -111128 ------- -* layout optimization merged into Morphic.js -> trackChanges - -111129 ------- -* Widgets: DialogBoxMorph basics - -111130 ------- -* Widgets: AlignmentMorphs -* keyboard events for DialogBoxMorphs - -111202 ------- -* Widgets: InputFieldMorphs -* Prompters based on DialogBoxes -* Renaming of input templates -* Morphic keyboard enhancements - -111205 ------- -* new primitives: MOUSE X, MOUSE Y, TIMER, RESET TIMER - -111207 ------- -* byob.js (CustomBlockDefinition, CustomCommandBlockMorph) - -111209 ------- -* BlockEditor basics for CustomCommandBlocks - -111212 ------- -* BlockDialogMorph (basics) -* CustomReporterBlockMorph - -111213 ------- -* call/cc for lambdas and custom blocks - -111214 ------- +BYOB4 (Snap) history +--------------------- +110511 +------ +* Scrolling by dragging +* Scrolling by dragging velocity + +110516 +------ +* Autoscrolling + +110518 +------ +* Textures + +110524 +------ +* CommandSlotMorphs (%c) + +110527 +------ +* Templates +* Padding for ScrollFrames + +110530 +------ +* C-slots only attach to blocks' tops (no longer also to bottoms) + +110531 +------ +* ReporterBlockMorphs + +110628 +------ +* World menu in every Morph's developersMenu +* changed the standard to "sharp shadows" because of Firefox5 bug + +110630 +------ +* StringMorphs and TextMorph notify their parents of layout changes +* TypeInSlotMorphs (round - %n - and rectangular - %s -) + +110705 +------ +* block specs + +110706 +------ +* BooleanSlotMorphs (%b) +* Color mixing +* contrast setting for SyntaxElementMorphs +* exit confirmation + +110707 +------ +* BlockMorph color changing +* entry field tabbing (Firefox and Opera only) +* label multi-line wrapping for command blocks + +110708 +------ +* extrapolate blockSpec upon label part drop + +110711 +------ +* optional intra-block-label word wrap (flag) layout setting + +110712 +------ +* rectangular reporter layout +* label mutli-line wrapping for reporters +* user-definable label line breaks (%br) +* font size customizable for individual menus +* ArrowMorphs + +110714 +------ +* optional drop-down menu for type-in slots +* read-only menus for type-in slots (%inst, %var, %lst, %obj, %eff, + %dir, %cst, %snd, %key, %idx, %msg, %att, %fun, %typ) +* global pixel color sensing +* renamed TypeInSlotMorph to InputSlotMorph + +110718 +------ +* ColorSlotMorphs (%clr) +* collision detection groundwork + +110719 +------ +* high-level documentation and code comments +* optional blurred slot shades (off by default) + +110720 +------ +* HatBlocks + +110721 +------ +* scrollBarSize can now optionally be specified individually +* block highlighting +* specs for any-unevaluated and Boolean-unevaluated inputs + +110722 +------ +* stringField settable as numeric, supresses textual input +* editable numeric input slots supress textual type-in +* evaluation helper methods and properties +* collision detection + +110726 +------ +* MultiArgMorphs (%mult%x) + +110727 +------ +* Morphic: fullBounds() now ignores hidden submorphs +* MultiArgMorphs: Optional label and minimum inputs settings, '%inputs' +* Morphic: simplified BoxMorph rendering +* Same-colored (white), semi-transparent reporter drop feedbacks + +110804 +------ +* evaluator: ThreadManager, Process, StackFrame, VariableFrame + +110810 +------ +* nasciturus: objects, gui + +110811 +------ +* Morphic: broken rect fix for float-positioned Morphs +* Blocks: straight bottom edges for stop-blocks +* PenMorph: round line ends + +110816 +------ +* Morphic: SpeechBubbleMorphs and bubble help for menus/buttons + +110817 +------ +* Threads: evaluating reporters +* showValue bubbles + +110818 +------ +* optimizations for menu bubble help and Blocks layout + +110823 +------ +* Sprite-scoped variables + +110824 +------ +* numerical virtual keyboard (pop-up-sliders - taken out again) +* sliders now work with negative floor numbers +* mouse wheel scroll events (thanks, Nathan!) + +110826 +------ +* TemplateSlotMorphs (%t, %mult%t, %scriptVars) +* script variables +* lockable inputs + +110911 +------ +* Morphic: PenMorph.setHeading() fixed + +110912 +------ +* Threads: renamed StackFrame to Context +* Blocks: persistent input default values + +110913 +------ +* basic Lambda primitives +* basic Lambda visualization (showBubble) + +110914 +------ +* c-slots in primitives are now static by default +* basic THE BLOCK, CALL and REPORT + +110919 +------ +* formal parameters +* recursion +* closures + +110922 +------ +* implicit parameters + +110923 +------ +* error catching for block evaluation + +110926 +------ +* basic message broadcasting +* thread forking (LAUNCH block) + +110927 +------ +* WAIT block + +110928 +------ +* GLIDE block + +111006 +------ +* force yield after timeout + +111007 +------ +* swooshy hat block tops (instead of circle segments) + +111009 +------ +* call/cc + +111010 +------ +* hybrid scope + +111012 +------ +* autolambdafying CSlotMorphs (C-shaped) and CommandSlotMorphs (inline) +* Morphic: right mouse click emulation for Mac + +111017 +------ +* another take on continuations + +111019 +------ +* Morphic: scrolling speedup + +111020 +------ +* unevaluated FunctionSlotMorphs (%f) +* autolambdafying ReporterSlotMorphs (%r, %p) + +111021 +------ +* GUI: CellMorphs (for stage watchers) + +111025 +------ +* GUI: WatcherMorphs +* SHOW VARIABLE, HIDE VARIABLE blocks + +111026 +------ +* Blocks: empty choice for input drop down menus +* automatic positioning of new watchers +* watchers on temporary variables are deleted by HIDE VARIABLE block (not hidden) +* HIDE VARIABLE with empty input deletes all watchers on temporary vars + +111027 +------ +* more extensive Error catching +* slider for numerical text entries in "mobile mode" +* bigger blocks in "mobile mode" + +111031 +------ +* new: widgets.js +* PushButtons + +111102 +------ +* Morphic: StringMorph shadows + +111103 +------ +* widgets: ToggleMorphs (check boxes and radio buttons) +* non-variable watchers +* checkbox toggling for variable watchers + +111108 +------ +* Lists + +111109 +------ +* ListWatchers (basics) + +111111 +------ +* Morphic: visibleBounds() bug fix + +111114 +------ +* Morphic: fullImageClassic() for ListWatcherMorphs +* Threads: MultiArgMorph now use Lists instead of JS-Arrays +* List Blocks +* GUI: adding/removing variables doesn't make the palette jump to the top +* Blocks: list type slots + +111115 +------ +* Morphic: more tolerant grabbing +* Lists: synchronized Watcher updating (speed-up) + +111116 +------ +* Lists: conservative watcher updating (speed-up) +* GUI: logo pane and 'about' box + +111118 +------ +* Lists: watcher shows list range (speed-up, stability) + +111121 +------ +* Atomicity (WARP) +* REPEAT UNTIL +* WAIT UNTIL + +111123 +------ +* hybrid lists (arrayed and linked) +* CONS and CDR + +111124 +------ +* layout optimization for dropped and snapping blocks (thanks, John!) +* Equality testing for lists (thanks, Brian!) + +111128 +------ +* layout optimization merged into Morphic.js -> trackChanges + +111129 +------ +* Widgets: DialogBoxMorph basics + +111130 +------ +* Widgets: AlignmentMorphs +* keyboard events for DialogBoxMorphs + +111202 +------ +* Widgets: InputFieldMorphs +* Prompters based on DialogBoxes +* Renaming of input templates +* Morphic keyboard enhancements + +111205 +------ +* new primitives: MOUSE X, MOUSE Y, TIMER, RESET TIMER + +111207 +------ +* byob.js (CustomBlockDefinition, CustomCommandBlockMorph) + +111209 +------ +* BlockEditor basics for CustomCommandBlocks + +111212 +------ +* BlockDialogMorph (basics) +* CustomReporterBlockMorph + +111213 +------ +* call/cc for lambdas and custom blocks + +111214 +------ * feature: deleting block instances and custom block definitions 120106 diff --git a/lang-cs.js b/lang-cs.js index dee3750e..7995417c 100644 --- a/lang-cs.js +++ b/lang-cs.js @@ -8,7 +8,7 @@ Copyright (C) 2012 by Michal Moc - This file is part of Snap!. + 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 @@ -265,21 +265,21 @@ SnapTranslator.dict.cs = { 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. diff --git a/lang-de.js b/lang-de.js index 230d2af4..b5eb86fb 100644 --- a/lang-de.js +++ b/lang-de.js @@ -4,11 +4,11 @@ German translation for SNAP! - written by Jens Mšnig + written by Jens Mönig - Copyright (C) 2013 by Jens Mšnig + Copyright (C) 2013 by Jens Mönig - This file is part of Snap!. + 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 @@ -171,10 +171,10 @@ SnapTranslator.dict.de = { /* Special characters: (see ) - €, Š \u00c4, \u00e4 - …, š \u00d6, \u00f6 - †, Ÿ \u00dc, \u00fc - § \u00df + Ä, ä \u00c4, \u00e4 + Ö, ö \u00d6, \u00f6 + Ü, ü \u00dc, \u00fc + ß \u00df */ // translations meta information @@ -265,21 +265,21 @@ SnapTranslator.dict.de = { 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. diff --git a/lang-eo.js b/lang-eo.js index 85eb11b2..453ff010 100644 --- a/lang-eo.js +++ b/lang-eo.js @@ -8,7 +8,7 @@ Copyright (C) 2012 by Jens Mönig - This file is part of Snap!. + 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 @@ -269,21 +269,21 @@ SnapTranslator.dict.eo = { 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. diff --git a/lang-es.js b/lang-es.js index 5bb7ef4b..893148a4 100644 --- a/lang-es.js +++ b/lang-es.js @@ -4,11 +4,11 @@ Spanish translation for SNAP! - written by Jens Mšnig + written by Jens Mönig - Copyright (C) 2013 by Jens Mšnig + Copyright (C) 2013 by Jens Mönig - This file is part of Snap!. + 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 @@ -171,10 +171,10 @@ SnapTranslator.dict.es = { /* Special characters: (see ) - €, Š \u00c4, \u00e4 - …, š \u00d6, \u00f6 - †, Ÿ \u00dc, \u00fc - § \u00df + Ä, ä \u00c4, \u00e4 + Ö, ö \u00d6, \u00f6 + Ü, ü \u00dc, \u00fc + ß \u00df */ // translations meta information @@ -265,21 +265,21 @@ SnapTranslator.dict.es = { 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. diff --git a/lang-fr.js b/lang-fr.js index 4ec2589a..15eebb85 100644 --- a/lang-fr.js +++ b/lang-fr.js @@ -8,7 +8,7 @@ Copyright (C) 2012 by Jens Mönig - This file is part of Snap!. + 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 @@ -227,7 +227,7 @@ SnapTranslator.dict.fr = { 'Costumes', 'Sounds': 'Sons', - + // names: 'Sprite': 'Lutin', @@ -264,21 +264,21 @@ SnapTranslator.dict.fr = { 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. diff --git a/lang-it.js b/lang-it.js index edccca3c..5b0b1b80 100644 --- a/lang-it.js +++ b/lang-it.js @@ -1,14 +1,14 @@ -/* - - lang-it.js - - Italian translation for SNAP! - - written by Jens Mönig - - Copyright (C) 2012 by Jens Mönig - - This file is part of Snap!. +/* + + lang-it.js + + Italian translation for SNAP! + + written by Jens Mönig + + Copyright (C) 2012 by Jens Mönig + + 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 @@ -22,7 +22,7 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . - + Note to Translators: @@ -164,7 +164,7 @@ -Jens */ -/*global SnapTranslator*/ +/*global SnapTranslator*/ SnapTranslator.dict.it = { @@ -265,21 +265,21 @@ SnapTranslator.dict.it = { 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. @@ -303,7 +303,7 @@ SnapTranslator.dict.it = { 'vai a x: %n y: %n', 'go to %dst': 'raggiungi %dst', - 'glide %n secs to x: %n y: %n': + 'glide %n secs to x: %n y: %n': 'scivola in %n secondi a x: %n y: %n', 'change x by %n': 'cambia x di %n', @@ -377,16 +377,16 @@ SnapTranslator.dict.it = { 'stop all sounds': 'arresta tutti i suoni', 'rest for %n beats': - 'fai una pausa di %n battute', - 'play note %n for %n beats': - 'suona nota %n per %n battute', - 'change tempo by %n': - 'cambia tempo di %n', - 'set tempo to %n bpm': - 'porta tempo a %n bpm', - 'tempo': - 'tempo', - + 'fai una pausa di %n battute', + 'play note %n for %n beats': + 'suona nota %n per %n battute', + 'change tempo by %n': + 'cambia tempo di %n', + 'set tempo to %n bpm': + 'porta tempo a %n bpm', + 'tempo': + 'tempo', + // pen: 'clear': 'pulisci', @@ -460,14 +460,14 @@ SnapTranslator.dict.it = { 'chiama %cmdRing con continuazione', 'warp %c': 'esegui in modalit\u00E0 turbo %c', - 'when I start as a clone': - 'quando vengo clonato', - 'create a clone of %cln': - 'crea un clone di %cln', - 'myself': - 'me stesso', - 'delete this clone': - 'elimina questo clone', + 'when I start as a clone': + 'quando vengo clonato', + 'create a clone of %cln': + 'crea un clone di %cln', + 'myself': + 'me stesso', + 'delete this clone': + 'elimina questo clone', // sensing: 'touching %col ?': @@ -496,14 +496,14 @@ SnapTranslator.dict.it = { 'azzera cronometro', 'timer': 'cronometro', - '%att of %spr': - '%att di %spr', - 'http:// %s': - 'leggi pagina web http:// %s', - 'turbo mode?': - 'modalit\u00E0 turbo attiva', - 'set turbo mode to %b': - 'porta modalit\u00E0 turbo a %b', + '%att of %spr': + '%att di %spr', + 'http:// %s': + 'leggi pagina web http:// %s', + 'turbo mode?': + 'modalit\u00E0 turbo attiva', + 'set turbo mode to %b': + 'porta modalit\u00E0 turbo a %b', 'filtered for %clr': 'selezionati per colore %clr', @@ -547,8 +547,8 @@ SnapTranslator.dict.it = { 'lettera del codice unicode %n', 'is %s a %typ ?': '%s \u00E8 di tipo %typ', - 'is %s identical to %s ?': - '%s \u00E8 identico a %s ?', + 'is %s identical to %s ?': + '%s \u00E8 identico a %s ?', 'type of %s': 'tipo di %s', @@ -644,22 +644,22 @@ SnapTranslator.dict.it = { 'Esporta blocchi...', 'show global custom block definitions as XML\nin a new browser window': 'mostra in formato XML le definizione dei nuovi blocchi\nin una nuova finestra del browser', - 'Import tools...': - 'Importa tools...', - 'load the official library of\npowerful blocks': - 'carica la libreria ufficiale di\nblocchi Snap', - - // cloud menu - 'Login...': - 'Accedi...', - 'Signup...': - 'Registrati...', + 'Import tools...': + 'Importa tools...', + 'load the official library of\npowerful blocks': + 'carica la libreria ufficiale di\nblocchi Snap', + + // cloud menu + 'Login...': + 'Accedi...', + 'Signup...': + 'Registrati...', // settings menu 'Language...': 'Lingua...', - 'Zoom blocks...': - 'Zoom dei blocchi...', + 'Zoom blocks...': + 'Zoom dei blocchi...', 'Blurred shadows': 'Ombreggiature attenuate', 'uncheck to use solid drop\nshadows and highlights': @@ -668,18 +668,18 @@ SnapTranslator.dict.it = { 'abilitare per visualizzare ombreggiature\ned evidenziature attenuate', 'Zebra coloring': 'Colorazione alternata', - 'check to enable alternating\ncolors for nested blocks': + 'check to enable alternating\ncolors for nested blocks': 'abilitare per visualizzare a colori\nalternati i blocchi annidati', - 'uncheck to disable alternating\ncolors for nested block': + 'uncheck to disable alternating\ncolors for nested block': 'disabilitare per non visualizzare a colori\nalternati i blocchi annidati', - - 'Dynamic input labels': - 'Etichette degli input dinamiche', - 'uncheck to disable dynamic\nlabels for variadic inputs': - 'disabilitare per non avere etichette\ndinamiche per input variabili', - 'check to enable dynamic\nlabels for variadic inputs': - 'abilitare per avere etichette\ndinamiche per input variabili', - + + 'Dynamic input labels': + 'Etichette degli input dinamiche', + 'uncheck to disable dynamic\nlabels for variadic inputs': + 'disabilitare per non avere etichette\ndinamiche per input variabili', + 'check to enable dynamic\nlabels for variadic inputs': + 'abilitare per avere etichette\ndinamiche per input variabili', + 'Prefer empty slot drops': 'Favorisci l\'aggancio a slot vuoti', 'settings menu prefer empty slots hint': @@ -691,49 +691,49 @@ SnapTranslator.dict.it = { 'check to always show slot\ntypes in the input dialog': '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', + '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', + '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', + 'abilitare per usare il supporto della\ntastiera virtuale con i dispositivi mobili', 'Input sliders': 'Usa slider per gli input', 'uncheck to disable\ninput sliders for\nentry fields': - 'disabilitare per non visualizzare gli slider\n per inserire valori numerici', + 'disabilitare per non visualizzare gli slider\n per inserire valori numerici', 'check to enable\ninput sliders for\nentry fields': - 'abilitare per visualizzare gli slider\n per inserire valori numerici', + 'abilitare per visualizzare gli slider\n per inserire valori numerici', 'Clicking sound': 'Click di aggancio dei blocchi', 'uncheck to turn\nblock clicking\nsound off': - 'disabilitare per non riprodurre il suono di aggancio dei blocchi', + 'disabilitare per non riprodurre il suono di aggancio dei blocchi', 'check to turn\nblock clicking\nsound on': - 'abilitare per riprodurre il suono di aggancio dei blocchi', - 'Animations': - 'Animazioni', - 'uncheck to disable\nIDE animations': - 'disabilitare per non consentire\nanimazioni dell\u0027IDE', - 'Turbo mode': - 'Modalit\u00E0 Turbo', - 'check to prioritize\nscript execution': - 'abilitare per dare priorit\u00E0\nall\u0027esecuzione degli script', - 'uncheck to run scripts\nat normal speed': - 'disabilitare per eseguire gli script\na velocità normale', - 'check to enable\nIDE animations': - 'abilitare per nconsentire\nanimazioni dell\u0027IDE', - 'Thread safe scripts': - 'Script thread safe', - 'uncheck to allow\nscript reentrancy': - 'disabilitare per permettere agli script di rientrare', - 'check to disallow\nscript reentrancy': - 'abilitare per impedire agli script di rientrare', - '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', + 'abilitare per riprodurre il suono di aggancio dei blocchi', + 'Animations': + 'Animazioni', + 'uncheck to disable\nIDE animations': + 'disabilitare per non consentire\nanimazioni dell\u0027IDE', + 'Turbo mode': + 'Modalit\u00E0 Turbo', + 'check to prioritize\nscript execution': + 'abilitare per dare priorit\u00E0\nall\u0027esecuzione degli script', + 'uncheck to run scripts\nat normal speed': + 'disabilitare per eseguire gli script\na velocità normale', + 'check to enable\nIDE animations': + 'abilitare per nconsentire\nanimazioni dell\u0027IDE', + 'Thread safe scripts': + 'Script thread safe', + 'uncheck to allow\nscript reentrancy': + 'disabilitare per permettere agli script di rientrare', + 'check to disallow\nscript reentrancy': + 'abilitare per impedire agli script di rientrare', + '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', // inputs 'with inputs': @@ -750,14 +750,14 @@ SnapTranslator.dict.it = { // blocks: 'help...': 'aiuto...', - 'relabel...': - 'rinomina...', + 'relabel...': + 'rinomina...', 'duplicate': 'duplica', 'make a copy\nand pick it up': 'crea una copia', - 'only duplicate this block': - 'duplica solo questo blocco', + 'only duplicate this block': + 'duplica solo questo blocco', 'delete': 'cancella', 'script pic...': @@ -766,8 +766,8 @@ SnapTranslator.dict.it = { 'apri una nuova finestra\ncon un\'immagine di questo script', 'ringify': 'inserisci in un anello', - 'unringify': - 'estrai dall\'anello', + 'unringify': + 'estrai dall\'anello', // custom blocks: 'delete block definition...': @@ -781,14 +781,14 @@ SnapTranslator.dict.it = { 'export...': 'esporta...', - // stage: - 'show all': - 'mostra tutti gli sprite', - 'pic...': - 'salva immagine dello Stage...', - 'open a new window\nwith a picture of the stage': - 'apre una nuova finestra con un\u0027immagine dello Stage', - + // stage: + 'show all': + 'mostra tutti gli sprite', + 'pic...': + 'salva immagine dello Stage...', + 'open a new window\nwith a picture of the stage': + 'apre una nuova finestra con un\u0027immagine dello Stage', + // scripting area 'clean up': 'riordina', @@ -804,8 +804,8 @@ SnapTranslator.dict.it = { 'rinomina', 'export': 'esporta', - 'rename costume': - 'rinomina costume', + 'rename costume': + 'rinomina costume', // sounds 'Play sound': @@ -816,8 +816,8 @@ SnapTranslator.dict.it = { 'Stop', 'Play': 'Play', - 'rename sound': - 'rinomina suono', + 'rename sound': + 'rinomina suono', // dialogs // buttons @@ -833,47 +833,47 @@ SnapTranslator.dict.it = { // help 'Help': 'Aiuto', - - // zoom blocks - 'Zoom blocks': - 'Zoom dei blocchi', - 'build': - 'costruisci', - 'your own': - 'i tuoi', - 'blocks': - 'blocchi', - 'normal (1x)': - 'normale (1x)', - 'demo (1.2x)': - 'Demo (1.2x)', - 'presentation (1.4x)': - 'presentazione(1.4x)', - 'big (2x)': - 'grandi (2x)', - 'huge (4x)': - 'molto grandi (4x)', - 'giant (8x)': - 'giganti (8x)', - 'monstrous (10x)': - 'grandissimi (10x)', - - // Project Manager - 'Untitled': - 'Senza Titolo', - 'Open Project': - 'Apri Progetto', - '(empty)': - '(vuoto)', - 'Saved!': - 'Salvato!', - 'Delete Project': - 'Elimina Progetto', - 'Are you sure you want to delete': - 'Sei sicuro di voler eliminare', - 'rename...': - 'rinomina...', - + + // zoom blocks + 'Zoom blocks': + 'Zoom dei blocchi', + 'build': + 'costruisci', + 'your own': + 'i tuoi', + 'blocks': + 'blocchi', + 'normal (1x)': + 'normale (1x)', + 'demo (1.2x)': + 'Demo (1.2x)', + 'presentation (1.4x)': + 'presentazione(1.4x)', + 'big (2x)': + 'grandi (2x)', + 'huge (4x)': + 'molto grandi (4x)', + 'giant (8x)': + 'giganti (8x)', + 'monstrous (10x)': + 'grandissimi (10x)', + + // Project Manager + 'Untitled': + 'Senza Titolo', + 'Open Project': + 'Apri Progetto', + '(empty)': + '(vuoto)', + 'Saved!': + 'Salvato!', + 'Delete Project': + 'Elimina Progetto', + 'Are you sure you want to delete': + 'Sei sicuro di voler eliminare', + 'rename...': + 'rinomina...', + // costume editor 'Costume Editor': 'Editor di Immagini', @@ -901,8 +901,8 @@ SnapTranslator.dict.it = { // export blocks 'Export blocks': 'Esporta blocchi', - 'Import blocks': - 'Importa blocchi', + 'Import blocks': + 'Importa blocchi', 'this project doesn\'t have any\ncustom global blocks yet': 'in questo progetto non sono stati ancora definiti dei nuovi blocchi', 'select': @@ -946,8 +946,8 @@ SnapTranslator.dict.it = { 'Crea parametro', 'Edit input name': 'Modifica parametro', - 'Edit label fragment': - 'Modifica porzione di etichetta', + 'Edit label fragment': + 'Modifica porzione di etichetta', 'Title text': 'Parole della definizione', 'Input name': @@ -1016,8 +1016,8 @@ SnapTranslator.dict.it = { 'Scegli il min del cursore...', 'slider max...': 'Scegli il max del cursore...', - 'import...': - 'importa...', + 'import...': + 'importa...', 'Slider minimum value': 'Valore minimo del cursore', 'Slider maximum value': @@ -1053,8 +1053,8 @@ SnapTranslator.dict.it = { // costumes 'Turtle': 'Tartaruga', - 'Empty': - 'Vuoto', + 'Empty': + 'Vuoto', // graphical effects 'ghost': @@ -1191,4 +1191,4 @@ SnapTranslator.dict.it = { 'ultimo', 'any': 'qualunque' -}; +}; diff --git a/lang-ja.js b/lang-ja.js index e4f6ba9f..06af9728 100755 --- a/lang-ja.js +++ b/lang-ja.js @@ -1,14 +1,14 @@ -/* - - lang-ja.js - - Japanese translation for SNAP! - - written by Jens Mönig - - Copyright (C) 2012 by Jens Mönig - - This file is part of Snap!. +/* + + lang-ja.js + + Japanese translation for SNAP! + + written by Jens Mönig + + Copyright (C) 2012 by Jens Mönig + + 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 @@ -22,7 +22,7 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . - + Note to Translators: @@ -164,7 +164,7 @@ -Jens */ -/*global SnapTranslator*/ +/*global SnapTranslator*/ SnapTranslator.dict.ja = { @@ -265,21 +265,21 @@ SnapTranslator.dict.ja = { 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. @@ -303,7 +303,7 @@ SnapTranslator.dict.ja = { 'x座標を %n ã€y座標を %n ã«ã™ã‚‹', 'go to %dst': '%dst ã¸è¡Œã', - 'glide %n secs to x: %n y: %n': + 'glide %n secs to x: %n y: %n': '%n ç§’ã§x座標を %n ã«ã€y座標を %n ã«å¤‰ãˆã‚‹', 'change x by %n': 'x座標を %n ãšã¤å¤‰ãˆã‚‹', @@ -376,16 +376,16 @@ SnapTranslator.dict.ja = { '終ã‚ã‚‹ã¾ã§ %snd ã®éŸ³ã‚’鳴らã™', 'stop all sounds': 'ã™ã¹ã¦ã®éŸ³ã‚’æ­¢ã‚ã‚‹', - 'rest for %n beats': - '%n æ‹ä¼‘ã‚€', - 'play note %n for %n beats': - '%n ã®éŸ³ç¬¦ã‚’ %n æ‹é³´ã‚‰ã™', - 'change tempo by %n': - 'テンãƒã‚’ %n ãšã¤å¤‰ãˆã‚‹', - 'set tempo to %n bpm': - 'テンãƒã‚’ %n BPMã«ã™ã‚‹', - 'tempo': - 'テンãƒ', + 'rest for %n beats': + '%n æ‹ä¼‘ã‚€', + 'play note %n for %n beats': + '%n ã®éŸ³ç¬¦ã‚’ %n æ‹é³´ã‚‰ã™', + 'change tempo by %n': + 'テンãƒã‚’ %n ãšã¤å¤‰ãˆã‚‹', + 'set tempo to %n bpm': + 'テンãƒã‚’ %n BPMã«ã™ã‚‹', + 'tempo': + 'テンãƒ', // pen: 'clear': @@ -460,14 +460,14 @@ SnapTranslator.dict.ja = { '継続付ãã§ %cmdRing を呼ã¶', 'warp %c': 'ワープã™ã‚‹ %c', - 'when I start as a clone': - 'クローンã•れãŸã¨ã', - 'create a clone of %cln': - '%cln ã®ã‚¯ãƒ­ãƒ¼ãƒ³ã‚’作る', - 'myself': - '自分自身', - 'delete this clone': - 'ã“ã®ã‚¯ãƒ­ãƒ¼ãƒ³ã‚’削除ã™ã‚‹', + 'when I start as a clone': + 'クローンã•れãŸã¨ã', + 'create a clone of %cln': + '%cln ã®ã‚¯ãƒ­ãƒ¼ãƒ³ã‚’作る', + 'myself': + '自分自身', + 'delete this clone': + 'ã“ã®ã‚¯ãƒ­ãƒ¼ãƒ³ã‚’削除ã™ã‚‹', // sensing: 'touching %col ?': @@ -498,11 +498,11 @@ SnapTranslator.dict.ja = { 'タイマー', 'http:// %s': 'http:// %s', - 'turbo mode?': - 'ターボモード?', - 'set turbo mode to %b': - 'ターボーモードを %b ã«ã™ã‚‹', - + 'turbo mode?': + 'ターボモード?', + 'set turbo mode to %b': + 'ターボーモードを %b ã«ã™ã‚‹', + 'filtered for %clr': '%clr 色を抽出', 'stack size': @@ -545,11 +545,11 @@ SnapTranslator.dict.ja = { 'Unicodeã§ %n ã®æ–‡å­—', 'is %s a %typ ?': '%s 㯠%typ åž‹', - 'is %s identical to %s ?': - '%s 㯠%s ã¨åŒä¸€', + 'is %s identical to %s ?': + '%s 㯠%s ã¨åŒä¸€', 'type of %s': - '%s ã®åž‹', + '%s ã®åž‹', // variables: 'Make a variable': @@ -629,9 +629,9 @@ SnapTranslator.dict.ja = { 'Import...': '読ã¿è¾¼ã¿...', 'file menu import hint': - 'ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ãƒ¬ãƒãƒ¼ã‚¿ãƒ¼ã‚’ドラッグ&ドロップã™ã‚‹ã¨ã\n' - + '空ã®ãƒ¬ãƒãƒ¼ã‚¿ãƒ¼ã«ãƒ•ォーカスã—ã¾ã™\n\n' - + 'ã„ãã¤ã‹ã®ãƒ–ラウザーã§ã¯ã‚µãƒãƒ¼ãƒˆã•れã¾ã›ã‚“', + 'ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ãƒ¬ãƒãƒ¼ã‚¿ãƒ¼ã‚’ドラッグ&ドロップã™ã‚‹ã¨ã\n' + + '空ã®ãƒ¬ãƒãƒ¼ã‚¿ãƒ¼ã«ãƒ•ォーカスã—ã¾ã™\n\n' + + 'ã„ãã¤ã‹ã®ãƒ–ラウザーã§ã¯ã‚µãƒãƒ¼ãƒˆã•れã¾ã›ã‚“', 'Export project as plain text ...': 'テキストファイルã¨ã—ã¦ãƒ—ロジェクトを書ã出ã™...', 'Export project...': @@ -642,21 +642,21 @@ SnapTranslator.dict.ja = { 'ブロックを書ã出ã™...', 'show global custom block definitions as XML\nin a new browser window': 'グローãƒãƒ«ã‚«ã‚¹ã‚¿ãƒ ãƒ–ロックã®å®šç¾©ã‚’XMLã¨ã—ã¦\nãƒ–ãƒ©ã‚¦ã‚¶ã®æ–°ã—ã„ウインドウã«è¡¨ç¤ºã™ã‚‹', - 'Import tools...': - 'ツールを読ã¿è¾¼ã‚€...', - 'load the official library of\npowerful blocks': - '強力ãªãƒ–ロックã®å…¬å¼\nライブラリを読ã¿è¾¼ã‚€', - - // cloud menu - 'Login...': - 'ログイン...', - 'Signup...': - 'サインアップ...', + 'Import tools...': + 'ツールを読ã¿è¾¼ã‚€...', + 'load the official library of\npowerful blocks': + '強力ãªãƒ–ロックã®å…¬å¼\nライブラリを読ã¿è¾¼ã‚€', + + // cloud menu + 'Login...': + 'ログイン...', + 'Signup...': + 'サインアップ...', // settings menu 'Language...': - '言語...', - 'Zoom blocks...': + '言語...', + 'Zoom blocks...': 'ブロックをズーム...', 'Blurred shadows': 'åŠé€æ˜Žã®å½±', @@ -665,17 +665,17 @@ SnapTranslator.dict.ja = { 'check to use blurred drop\nshadows and highlights': 'ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨åŠé€æ˜Žã®å½±ã¨\nãƒã‚¤ãƒ©ã‚¤ãƒˆã«ãªã‚Šã¾ã™', 'Zebra coloring': - '縞々ã§è¡¨ç¤º', - 'check to enable alternating\ncolors for nested blocks': + '縞々ã§è¡¨ç¤º', + 'check to enable alternating\ncolors for nested blocks': 'ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨å…¥ã‚Œå­ã«ãªã£ãŸ\nブロックを縞々ã§è¡¨ç¤ºã—ã¾ã™', - 'uncheck to disable alternating\ncolors for nested block': - 'ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨å…¥ã‚Œå­ã«ãªã£ãŸ\nブロックを普通ã«è¡¨ç¤ºã—ã¾ã™', - 'Dynamic input labels': - 'å‹•çš„ãªå…¥åŠ›ãƒ©ãƒ™ãƒ«', - 'uncheck to disable dynamic\nlabels for variadic inputs': - 'ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨å¯å¤‰å€‹å¼•æ•°ã®\n動的ラベルをä¸å¯ã«ã—ã¾ã™', - 'check to enable dynamic\nlabels for variadic inputs': - 'ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨å¯å¤‰å€‹å¼•æ•°ã®\n動的ラベルをå¯èƒ½ã«ã—ã¾ã™', + 'uncheck to disable alternating\ncolors for nested block': + 'ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨å…¥ã‚Œå­ã«ãªã£ãŸ\nブロックを普通ã«è¡¨ç¤ºã—ã¾ã™', + 'Dynamic input labels': + 'å‹•çš„ãªå…¥åŠ›ãƒ©ãƒ™ãƒ«', + 'uncheck to disable dynamic\nlabels for variadic inputs': + 'ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨å¯å¤‰å€‹å¼•æ•°ã®\n動的ラベルをä¸å¯ã«ã—ã¾ã™', + 'check to enable dynamic\nlabels for variadic inputs': + 'ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨å¯å¤‰å€‹å¼•æ•°ã®\n動的ラベルをå¯èƒ½ã«ã—ã¾ã™', 'Prefer empty slot drops': '空ã®ã‚¹ãƒ­ãƒƒãƒˆã®ãƒ‰ãƒ­ãƒƒãƒ—を許ã™', 'settings menu prefer empty slots hint': @@ -687,49 +687,49 @@ SnapTranslator.dict.ja = { 'check to always show slot\ntypes in the input dialog': 'ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨å¼•数ダイアログã«\n常ã«ã‚¹ãƒ­ãƒƒãƒˆã®åž‹ã‚’表示ã—ã¾ã™', 'uncheck to use the input\ndialog in short form': - 'ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨å¼•数ダイアログを短ã表示ã—ã¾ã™', + 'ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨å¼•数ダイアログを短ã表示ã—ã¾ã™', 'Virtual keyboard': '仮想キーボード', 'uncheck to disable\nvirtual keyboard support\nfor mobile devices': - 'ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨ãƒ¢ãƒã‚¤ãƒ«æ©Ÿå™¨ç”¨ã®\n仮想キーボードを無効ã«ã—ã¾ã™', + 'ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨ãƒ¢ãƒã‚¤ãƒ«æ©Ÿå™¨ç”¨ã®\n仮想キーボードを無効ã«ã—ã¾ã™', 'check to enable\nvirtual keyboard support\nfor mobile devices': - 'ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ãƒ¢ãƒã‚¤ãƒ«æ©Ÿå™¨ç”¨ã®\n仮想キーボードを有効ã«ã—ã¾ã™', + 'ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ãƒ¢ãƒã‚¤ãƒ«æ©Ÿå™¨ç”¨ã®\n仮想キーボードを有効ã«ã—ã¾ã™', 'Input sliders': '入力スライダー', 'uncheck to disable\ninput sliders for\nentry fields': - 'ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨å…¥åŠ›ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã®ã‚¹ãƒ©ã‚¤ãƒ€ãƒ¼ã‚’無効ã«ã—ã¾ã™', + 'ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨å…¥åŠ›ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã®ã‚¹ãƒ©ã‚¤ãƒ€ãƒ¼ã‚’無効ã«ã—ã¾ã™', 'check to enable\ninput sliders for\nentry fields': - 'ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨å…¥åŠ›ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã®ã‚¹ãƒ©ã‚¤ãƒ€ãƒ¼ã‚’有効ã«ã—ã¾ã™', + 'ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨å…¥åŠ›ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã®ã‚¹ãƒ©ã‚¤ãƒ€ãƒ¼ã‚’有効ã«ã—ã¾ã™', 'Clicking sound': 'クリック音', 'uncheck to turn\nblock clicking\nsound off': - 'ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨ãƒ–ロックã®\nクリック音を切りã¾ã™', + 'ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨ãƒ–ロックã®\nクリック音を切りã¾ã™', 'check to turn\nblock clicking\nsound on': - 'ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨ãƒ–ロックã®\nクリック音を入れã¾ã™', - 'Animations': - 'アニメーション', - 'uncheck to disable\nIDE animations': - 'ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨IDEã®\nアニメーションを切りã¾ã™', - 'check to prioritize\nscript execution': - 'ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã‚¹ã‚¯ãƒªãƒ—トã®\n処ç†ã‚’優先ã—ã¾ã™', - 'uncheck to run scripts\nat normal speed': - 'ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨ã‚¹ã‚¯ãƒªãƒ—トを\n通常ã®é€Ÿåº¦ã§å®Ÿè¡Œã—ã¾ã™', - 'check to enable\nIDE animations': - 'ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨IDEã®\nアニメーションを入れã¾ã™', - 'Turbo mode': - 'ターボモード', + 'ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨ãƒ–ロックã®\nクリック音を入れã¾ã™', + 'Animations': + 'アニメーション', + 'uncheck to disable\nIDE animations': + 'ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨IDEã®\nアニメーションを切りã¾ã™', + 'check to prioritize\nscript execution': + 'ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã‚¹ã‚¯ãƒªãƒ—トã®\n処ç†ã‚’優先ã—ã¾ã™', + 'uncheck to run scripts\nat normal speed': + 'ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨ã‚¹ã‚¯ãƒªãƒ—トを\n通常ã®é€Ÿåº¦ã§å®Ÿè¡Œã—ã¾ã™', + 'check to enable\nIDE animations': + 'ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨IDEã®\nアニメーションを入れã¾ã™', + 'Turbo mode': + 'ターボモード', 'Thread safe scripts': 'スクリプトをスレッドセーフã«ã™ã‚‹', 'uncheck to allow\nscript reentrancy': - 'ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨ã‚¹ã‚¯ãƒªãƒ—トを\nå†å…¥å¯èƒ½ã«ã—ã¾ã™', + 'ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨ã‚¹ã‚¯ãƒªãƒ—トを\nå†å…¥å¯èƒ½ã«ã—ã¾ã™', 'check to disallow\nscript reentrancy': - 'ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã‚¹ã‚¯ãƒªãƒ—トを\nå†å…¥ä¸èƒ½ã«ã—ã¾ã™', - 'Prefer smooth animations': - 'ãªã‚らã‹ãªã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã«ã™ã‚‹', - 'uncheck for greater speed\nat variable frame rates': - 'ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨ãƒ•レームレート\n当ãŸã‚Šã®é€Ÿåº¦ã‚’上ã’ã¾ã™', - 'check for smooth, predictable\nanimations across computers': - 'ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã‚³ãƒ³ãƒ”ューター間ã§\nãªã‚らã‹ã§äºˆæ¸¬å¯èƒ½ãªã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã«ã—ã¾ã™', + 'ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã‚¹ã‚¯ãƒªãƒ—トを\nå†å…¥ä¸èƒ½ã«ã—ã¾ã™', + 'Prefer smooth animations': + 'ãªã‚らã‹ãªã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã«ã™ã‚‹', + 'uncheck for greater speed\nat variable frame rates': + 'ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨ãƒ•レームレート\n当ãŸã‚Šã®é€Ÿåº¦ã‚’上ã’ã¾ã™', + 'check for smooth, predictable\nanimations across computers': + 'ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã‚³ãƒ³ãƒ”ューター間ã§\nãªã‚らã‹ã§äºˆæ¸¬å¯èƒ½ãªã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã«ã—ã¾ã™', // inputs 'with inputs': @@ -738,8 +738,8 @@ SnapTranslator.dict.ja = { '引数å:', 'Input Names:': '引数å:', - 'input list:': - '引数リスト:', + 'input list:': + '引数リスト:', // context menus: 'help': @@ -751,8 +751,8 @@ SnapTranslator.dict.ja = { 'duplicate': '複製', 'make a copy\nand pick it up': - 'コピーを作ã£ã¦\nãれを掴ã¿ã¾ã™', - 'only duplicate this block': + 'コピーを作ã£ã¦\nãれを掴ã¿ã¾ã™', + 'only duplicate this block': 'ã“ã®ãƒ–ロックをコピーã™ã‚‹ã ã‘', 'delete': '削除', @@ -762,8 +762,8 @@ SnapTranslator.dict.ja = { 'ã“ã®ã‚¹ã‚¯ãƒªãƒ—トã®ç”»åƒã‚’表示ã™ã‚‹æ–°ã—ã„ウィンドウを開ãã¾ã™', 'ringify': 'リング化', - 'unringify': - 'éžãƒªãƒ³ã‚°åŒ–', + 'unringify': + 'éžãƒªãƒ³ã‚°åŒ–', // custom blocks: 'delete block definition...': @@ -775,15 +775,15 @@ SnapTranslator.dict.ja = { 'edit': '編集', 'export...': - '書ã出ã—...', + '書ã出ã—...', - // stage: - 'show all': - 'ã™ã¹ã¦ã‚’表示', - 'pic...': - 'ç”»åƒ...', - 'open a new window\nwith a picture of the stage': - 'ã“ã®ã‚¹ãƒ†ãƒ¼ã‚¸ã®ç”»åƒã§\næ–°ã—ã„ウィンドウを開ã', + // stage: + 'show all': + 'ã™ã¹ã¦ã‚’表示', + 'pic...': + 'ç”»åƒ...', + 'open a new window\nwith a picture of the stage': + 'ã“ã®ã‚¹ãƒ†ãƒ¼ã‚¸ã®ç”»åƒã§\næ–°ã—ã„ウィンドウを開ã', // scripting area 'clean up': @@ -799,8 +799,8 @@ SnapTranslator.dict.ja = { 'rename': 'åå‰ã‚’変更', 'export': - '書ã出ã—', - 'rename costume': + '書ã出ã—', + 'rename costume': 'コスãƒãƒ¥ãƒ¼ãƒ ã®åå‰ã‚’変更', // sounds @@ -811,16 +811,16 @@ SnapTranslator.dict.ja = { 'Stop': 'åœæ­¢', 'Play': - 'å†ç”Ÿ', - 'rename sound': + 'å†ç”Ÿ', + 'rename sound': '音ã®åå‰ã‚’変更', // dialogs // buttons 'OK': 'OK', - 'Ok': - 'OK', + 'Ok': + 'OK', 'Cancel': 'キャンセル', 'Yes': @@ -831,48 +831,48 @@ SnapTranslator.dict.ja = { // help 'Help': 'ヘルプ', - - // zoom blocks - 'Zoom blocks': - 'ブロックをズーム', - 'build': - '作ã‚ã†', - 'your own': - 'ã‚ãªãŸè‡ªèº«ã®', - 'blocks': - 'ブロックを', - 'normal (1x)': - 'ノーマル (1x)', - 'demo (1.2x)': - 'デモ (1.2x)', - 'presentation (1.4x)': - 'プレゼンテーション (1.4x)', - 'big (2x)': - '大 (2x)', - 'huge (4x)': - '特大 (4x)', - 'giant (8x)': - '巨大 (8x)', - 'monstrous (10x)': - '超巨大 (10x)', - - // Project Manager - 'Untitled': - 'å称未設定', - 'Open Project': - 'プロジェクトを開ã', - 'Open': - 'é–‹ã', - '(empty)': - '(空)', - 'Saved!': - 'ä¿å­˜ã—ã¾ã—ãŸ!', - 'Delete Project': - 'プロジェクトを削除', - 'Are you sure you want to delete': - '本当ã«å‰Šé™¤ã—ã¾ã™ã‹', - 'rename...': - 'åå‰ã‚’変更...', + + // zoom blocks + 'Zoom blocks': + 'ブロックをズーム', + 'build': + '作ã‚ã†', + 'your own': + 'ã‚ãªãŸè‡ªèº«ã®', + 'blocks': + 'ブロックを', + 'normal (1x)': + 'ノーマル (1x)', + 'demo (1.2x)': + 'デモ (1.2x)', + 'presentation (1.4x)': + 'プレゼンテーション (1.4x)', + 'big (2x)': + '大 (2x)', + 'huge (4x)': + '特大 (4x)', + 'giant (8x)': + '巨大 (8x)', + 'monstrous (10x)': + '超巨大 (10x)', + + // Project Manager + 'Untitled': + 'å称未設定', + 'Open Project': + 'プロジェクトを開ã', + 'Open': + 'é–‹ã', + '(empty)': + '(空)', + 'Saved!': + 'ä¿å­˜ã—ã¾ã—ãŸ!', + 'Delete Project': + 'プロジェクトを削除', + 'Are you sure you want to delete': + '本当ã«å‰Šé™¤ã—ã¾ã™ã‹', + 'rename...': + 'åå‰ã‚’変更...', // costume editor 'Costume Editor': @@ -901,8 +901,8 @@ SnapTranslator.dict.ja = { // export blocks 'Export blocks': 'ブロックを書ã出ã—', - 'Import blocks': - 'ブロックを読ã¿è¾¼ã¿', + 'Import blocks': + 'ブロックを読ã¿è¾¼ã¿', 'this project doesn\'t have any\ncustom global blocks yet': 'ã“ã®ãƒ—ロジェクトã¯ã‚«ã‚¹ã‚¿ãƒ ã‚°ãƒ­ãƒ¼ãƒãƒ«ãƒ–ロックをæŒã£ã¦ã„ã¾ã›ã‚“', 'select': @@ -945,8 +945,8 @@ SnapTranslator.dict.ja = { '引数åを作æˆ', 'Edit input name': '引数åを編集', - 'Edit label fragment': - 'ãƒ©ãƒ™ãƒ«ã®æ–­ç‰‡ã‚’編集', + 'Edit label fragment': + 'ãƒ©ãƒ™ãƒ«ã®æ–­ç‰‡ã‚’編集', 'Title text': 'タイトルテキスト', 'Input name': @@ -981,7 +981,7 @@ SnapTranslator.dict.ja = { '複数ã®å¼•æ•° (値ã¯å¼•æ•°ã®ãƒªã‚¹ãƒˆ)', 'Upvar - make internal variable visible to caller': 'Upvar - 呼ã³å‡ºã—å…ƒã‹ã‚‰è¦‹ãˆã‚‹å†…部的ãªå¤‰æ•°', - + // About Snap 'About Snap': 'Snapã«ã¤ã„ã¦', @@ -1015,8 +1015,8 @@ SnapTranslator.dict.ja = { 'ã‚¹ãƒ©ã‚¤ãƒ€ãƒ¼ã®æœ€å°å€¤...', 'slider max...': 'ã‚¹ãƒ©ã‚¤ãƒ€ãƒ¼ã®æœ€å¤§å€¤...', - 'import...': - '読ã¿è¾¼ã¿...', + 'import...': + '読ã¿è¾¼ã¿...', 'Slider minimum value': 'ã‚¹ãƒ©ã‚¤ãƒ€ãƒ¼ã®æœ€å°å€¤', 'Slider maximum value': @@ -1038,7 +1038,7 @@ SnapTranslator.dict.ja = { '(-90) å·¦', '(0) up': '(0) 上', - '(180) down': + '(180) down': '(180) 下', // collision detection @@ -1052,8 +1052,8 @@ SnapTranslator.dict.ja = { // costumes 'Turtle': 'タートル', - 'Empty': - '空', + 'Empty': + '空', // graphical effects 'ghost': @@ -1189,62 +1189,62 @@ SnapTranslator.dict.ja = { 'last': '最後', 'any': - 'ä»»æ„', - - // missing entries - 'Reference manual': - 'リファレンスマニュアル', - 'Sign in': - 'サインイン', - 'User name:': - 'ユーザーå:', - 'Password:': - 'パスワード:', - 'stay signed in on this computer\nuntil logging out': - 'ログアウトã™ã‚‹ã¾ã§ã“ã®ã‚³ãƒ³ãƒ”ューターã«\nサインインã—ãŸã¾ã¾ã«ã™ã‚‹', - 'Sign up': - 'サインアップ', - 'User name:': - 'ユーザーå:', - 'Password:': - 'パスワード:', - 'Birth date:': - '誕生月:', - 'Birth date:': - 'å¹´:', - 'January': - '1月', - 'February': - '2月', - 'March': - '3月', - 'April': - '4月', - 'May': - '5月', - 'June': - '6月', - 'July': - '7月', - 'August': - '8月', - 'September': - '9月', - 'October': - '10月', - 'November': - '11月', - 'December': - '12月', - '1993 or before': - '1993年以å‰', - 'E-mail address:': - 'é›»å­ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹:', - 'Terms of Service...': - 'サービス利用è¦ç´„...', - 'Privacy...': - '個人情報...', - 'I have read and agree\nto the Terms of Service': - 'サービス利用è¦ç´„を読ã¿\nãれã«åŒæ„ã—ã¾ã™', - -}; + 'ä»»æ„', + + // missing entries + 'Reference manual': + 'リファレンスマニュアル', + 'Sign in': + 'サインイン', + 'User name:': + 'ユーザーå:', + 'Password:': + 'パスワード:', + 'stay signed in on this computer\nuntil logging out': + 'ログアウトã™ã‚‹ã¾ã§ã“ã®ã‚³ãƒ³ãƒ”ューターã«\nサインインã—ãŸã¾ã¾ã«ã™ã‚‹', + 'Sign up': + 'サインアップ', + 'User name:': + 'ユーザーå:', + 'Password:': + 'パスワード:', + 'Birth date:': + '誕生月:', + 'Birth date:': + 'å¹´:', + 'January': + '1月', + 'February': + '2月', + 'March': + '3月', + 'April': + '4月', + 'May': + '5月', + 'June': + '6月', + 'July': + '7月', + 'August': + '8月', + 'September': + '9月', + 'October': + '10月', + 'November': + '11月', + 'December': + '12月', + '1993 or before': + '1993年以å‰', + 'E-mail address:': + 'é›»å­ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹:', + 'Terms of Service...': + 'サービス利用è¦ç´„...', + 'Privacy...': + '個人情報...', + 'I have read and agree\nto the Terms of Service': + 'サービス利用è¦ç´„を読ã¿\nãれã«åŒæ„ã—ã¾ã™', + +}; diff --git a/lang-ja_HIRA.js b/lang-ja_HIRA.js index 30a46366..0bf85962 100755 --- a/lang-ja_HIRA.js +++ b/lang-ja_HIRA.js @@ -8,7 +8,7 @@ Copyright (C) 2012 by Jens Mönig - This file is part of Snap!. + 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 @@ -265,21 +265,21 @@ SnapTranslator.dict.ja_HIRA = { 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. @@ -981,7 +981,7 @@ SnapTranslator.dict.ja_HIRA = { 'ãµãã™ã†ã®ã²ãã™ã† (ã‚ãŸã„ã¯ã²ãã™ã†ã®ãƒªã‚¹ãƒˆ)', 'Upvar - make internal variable visible to caller': 'Upvar - よã³ã ã—ã‚‚ã¨ã‹ã‚‰ã¿ãˆã‚‹ãªã„ã¶ã¦ããªã¸ã‚“ã™ã†', - + // About Snap 'About Snap': 'Snapã«ã¤ã„ã¦', diff --git a/lang-ko.js b/lang-ko.js index f882c7a1..1c0f747e 100644 --- a/lang-ko.js +++ b/lang-ko.js @@ -1,14 +1,14 @@ -/* - - lang-ko.js - - Korean translation for SNAP! - - written by Jens Mönig - - Copyright (C) 2012 by Jens Mönig - - This file is part of Snap!. +/* + + lang-ko.js + + Korean translation for SNAP! + + written by Jens Mönig + + Copyright (C) 2012 by Jens Mönig + + 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 @@ -22,7 +22,7 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . - + Note to Translators: @@ -164,7 +164,7 @@ -Jens */ -/*global SnapTranslator*/ +/*global SnapTranslator*/ SnapTranslator.dict.ko = { @@ -265,21 +265,21 @@ SnapTranslator.dict.ko = { 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. @@ -303,7 +303,7 @@ SnapTranslator.dict.ko = { 'x: %n ã€y: %n 쪽으로 가기', 'go to %dst': '%dst 위치로 가기', - 'glide %n secs to x: %n y: %n': + 'glide %n secs to x: %n y: %n': '%n ì´ˆ ë™ì•ˆ x: %n ã€y: %n 쪽으로 움ì§ì´ê¸°', 'change x by %n': 'x좌표 %n ë§Œí¼ ë°”ê¾¸ê¸°', @@ -386,7 +386,7 @@ SnapTranslator.dict.ko = { 'í…œí¬ë¥¼ %n bpm으로 맞추기', 'tempo': 'í…œí¬', - + // pen: 'clear': @@ -491,7 +491,7 @@ SnapTranslator.dict.ko = { '타ì´ë¨¸', 'http:// %s': 'http:// %s', - + 'filtered for %clr': '%clr 색 추출하기', 'stack size': @@ -579,7 +579,7 @@ SnapTranslator.dict.ko = { '%s ì„(를) %idx ìœ„ì¹˜ì— ì¶”ê°€í•˜ê¸° %l', 'replace item %idx of %l with %s': '%idx 항목 %l ì— %s 로 êµì²´í•˜ê¸°', - + // other 'Make a block': 'ë¸”ë¡ ë§Œë“¤ê¸°', @@ -615,9 +615,9 @@ SnapTranslator.dict.ko = { 'Import...': '가져오기...', 'file menu import hint': - '내보낸 프로ì íЏ 파ì¼, ë¸”ë¡ ë¼ì´ë¸ŒëŸ¬ë¦¬\n' - + '스프ë¼ì´íЏ 모양 ë˜ëŠ” 소리를 가져옵니다.\n\n' - + 'ì¼ë¶€ 웹브ë¼ìš°ì €ì—서는 ì§€ì›ë˜ì§€ 않습니다.', + '내보낸 프로ì íЏ 파ì¼, ë¸”ë¡ ë¼ì´ë¸ŒëŸ¬ë¦¬\n' + + '스프ë¼ì´íЏ 모양 ë˜ëŠ” 소리를 가져옵니다.\n\n' + + 'ì¼ë¶€ 웹브ë¼ìš°ì €ì—서는 ì§€ì›ë˜ì§€ 않습니다.', 'Export project as plain text ...': '프로ì íŠ¸ë¥¼ í…스트 파ì¼ë¡œ 내보내기...', 'Export project...': @@ -640,9 +640,9 @@ SnapTranslator.dict.ko = { 'ì²´í¬í•˜ë©´, 그림ìžì™€ 하ì´ë¼ì´íŠ¸ê°€\n반투명 ìƒíƒœë¡œ ë©ë‹ˆë‹¤.', 'Zebra coloring': '중첩 ë¸”ë¡ êµ¬ë¶„í•˜ê¸°', - 'check to enable alternating\ncolors for nested blocks': + 'check to enable alternating\ncolors for nested blocks': 'ì²´í¬í•˜ë©´, ì¤‘ì²©ëœ ë¸”ë¡ì„\n다른 색으로 구분할 수 있습니다.', - 'uncheck to disable alternating\ncolors for nested block': + 'uncheck to disable alternating\ncolors for nested block': 'ì²´í¬í•´ì œí•˜ë©´, ì¤‘ì²©ëœ ë¸”ë¡ì„\n다른 색으로 구분할 수 없습니다.', 'Prefer empty slot drops': '빈 ìŠ¬ë¡¯ì— ìž…ë ¥ 가능', @@ -655,31 +655,31 @@ SnapTranslator.dict.ko = { 'check to always show slot\ntypes in the input dialog': 'ì²´í¬í•˜ë©´, ìž…ë ¥ 대화창ì—\ní•­ìƒ ìŠ¬ë¡¯ì˜ í˜•íƒœë¥¼ ë³´ì—¬ì¤ë‹ˆë‹¤.', 'uncheck to use the input\ndialog in short form': - 'ì²´í¬í•´ì œí•˜ë©´, ìž…ë ¥ 대화창ì„\nì§§ì€ í˜•íƒœë¡œ 사용합니다.', + 'ì²´í¬í•´ì œí•˜ë©´, ìž…ë ¥ 대화창ì„\nì§§ì€ í˜•íƒœë¡œ 사용합니다.', 'Virtual keyboard': 'ê°€ìƒ í‚¤ë³´ë“œ', 'uncheck to disable\nvirtual keyboard support\nfor mobile devices': - 'ì²´í¬í•´ì œí•˜ë©´, ëª¨ë°”ì¼ ê¸°ê¸°ì—서\nê°€ìƒ í‚¤ë³´ë“œë¥¼ 사용할 수 없습니다.', + 'ì²´í¬í•´ì œí•˜ë©´, ëª¨ë°”ì¼ ê¸°ê¸°ì—서\nê°€ìƒ í‚¤ë³´ë“œë¥¼ 사용할 수 없습니다.', 'check to enable\nvirtual keyboard support\nfor mobile devices': - 'ì²´í¬í•˜ë©´, ëª¨ë°”ì¼ ê¸°ê¸°ì—서\nê°€ìƒ í‚¤ë³´ë“œë¥¼ 사용할 수 있습니다.', + 'ì²´í¬í•˜ë©´, ëª¨ë°”ì¼ ê¸°ê¸°ì—서\nê°€ìƒ í‚¤ë³´ë“œë¥¼ 사용할 수 있습니다.', 'Input sliders': '입력창ì—서 슬ë¼ì´ë” 사용', 'uncheck to disable\ninput sliders for\nentry fields': - 'ì²´í¬í•´ì œí•˜ë©´, 입력창ì—서\n슬ë¼ì´ë”를 사용할 수 없습니다.', + 'ì²´í¬í•´ì œí•˜ë©´, 입력창ì—서\n슬ë¼ì´ë”를 사용할 수 없습니다.', 'check to enable\ninput sliders for\nentry fields': - 'ì²´í¬í•˜ë©´, 입력창ì—서\n슬ë¼ì´ë”를 사용할 수 있습니다.', + 'ì²´í¬í•˜ë©´, 입력창ì—서\n슬ë¼ì´ë”를 사용할 수 있습니다.', 'Clicking sound': 'ë¸”ë¡ í´ë¦­ì‹œ 소리', 'uncheck to turn\nblock clicking\nsound off': - 'ì²´í¬í•´ì œí•˜ë©´, ë¸”ë¡ í´ë¦­ì‹œ\n소리가 꺼집니다.', + 'ì²´í¬í•´ì œí•˜ë©´, ë¸”ë¡ í´ë¦­ì‹œ\n소리가 꺼집니다.', 'check to turn\nblock clicking\nsound on': - 'ì²´í¬í•˜ë©´, ë¸”ë¡ í´ë¦­ì‹œ\n소리가 켜집니다.', + 'ì²´í¬í•˜ë©´, ë¸”ë¡ í´ë¦­ì‹œ\n소리가 켜집니다.', 'Thread safe scripts': '스레드 안전 스í¬ë¦½íЏ', 'uncheck to allow\nscript reentrancy': - 'ì²´í¬í•´ì œí•˜ë©´, 스í¬ë¦½íЏ\nìž¬ì§„ìž…ì„±ì„ í—ˆë½í•©ë‹ˆë‹¤.', + 'ì²´í¬í•´ì œí•˜ë©´, 스í¬ë¦½íЏ\nìž¬ì§„ìž…ì„±ì„ í—ˆë½í•©ë‹ˆë‹¤.', 'check to disallow\nscript reentrancy': - 'ì²´í¬í•˜ë©´, 스í¬ë¦½íЏ\nìž¬ì§„ìž…ì„±ì„ í—ˆë½í•˜ì§€ 않습니다.', + 'ì²´í¬í•˜ë©´, 스í¬ë¦½íЏ\nìž¬ì§„ìž…ì„±ì„ í—ˆë½í•˜ì§€ 않습니다.', // inputs 'with inputs': @@ -1069,30 +1069,30 @@ SnapTranslator.dict.ko = { 'last': '마지막', 'any': - 'ìž„ì˜', - - // missing entries - 'Untitled': - 'ì´ë¦„ì—†ìŒ', - 'Open Project': - '프로ì íЏ 열기', - 'Open': - '열기', - '(empty)': - '(공란)', - 'Saved!': - '저장했습니다!', - 'Delete Project': - '프로ì íЏ ì‚­ì œ', - 'Are you sure you want to delete': - 'ì •ë§ë¡œ 삭제합니까?', - 'unringify': - '형태변환취소', - 'rename...': - 'ì´ë¦„수정...', - '(180) down': - '(180) 아래', - 'Ok': - 'OK' - -}; + 'ìž„ì˜', + + // missing entries + 'Untitled': + 'ì´ë¦„ì—†ìŒ', + 'Open Project': + '프로ì íЏ 열기', + 'Open': + '열기', + '(empty)': + '(공란)', + 'Saved!': + '저장했습니다!', + 'Delete Project': + '프로ì íЏ ì‚­ì œ', + 'Are you sure you want to delete': + 'ì •ë§ë¡œ 삭제합니까?', + 'unringify': + '형태변환취소', + 'rename...': + 'ì´ë¦„수정...', + '(180) down': + '(180) 아래', + 'Ok': + 'OK' + +}; diff --git a/lang-pt.js b/lang-pt.js index db68d89b..47e47a06 100755 --- a/lang-pt.js +++ b/lang-pt.js @@ -8,7 +8,7 @@ Copyright (C) 2012 by Manuel Menezes de Sequeira - This file is part of Snap!. + 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 @@ -265,21 +265,21 @@ SnapTranslator.dict.pt = { 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. diff --git a/lang-ru.js b/lang-ru.js index 49f1a582..f3ad6a27 100644 --- a/lang-ru.js +++ b/lang-ru.js @@ -4,7 +4,7 @@ Russian translation for SNAP! - This file is part of Snap!. + 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 @@ -168,7 +168,7 @@ SnapTranslator.dict.ru = { Special characters: (see ) €, Š \u00c4, \u00e4 - Â…, š \u00d6, \u00f6 +Â…, š \u00d6, \u00f6 †, Ÿ \u00dc, \u00fc § \u00df */ @@ -260,21 +260,21 @@ SnapTranslator.dict.ru = { 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. diff --git a/lang-si.js b/lang-si.js index b8f09e17..dbe290a0 100644 --- a/lang-si.js +++ b/lang-si.js @@ -1,14 +1,14 @@ -/* - - lang-si.js - - Slovenian translation for SNAP! - - translated by Sasa Divjak - - Copyright (C) 2012 by Jens Mönig - - This file is part of Snap!. +/* + + lang-si.js + + Slovenian translation for SNAP! + + translated by Sasa Divjak + + Copyright (C) 2012 by Jens Mönig + + 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 @@ -22,7 +22,7 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . - + Note to Translators: @@ -62,7 +62,7 @@ pl - Polish => SnapTranslator.dict.pl = { pt - Portuguese => SnapTranslator.dict.pt = { es - Spanish => SnapTranslator.dict.es = { - el - Greek => => SnapTranslator.dict.el = { + el - Greek => => SnapTranslator.dict.el = { si - Slovenian => => SnapTranslator.dict.si = { etc. (see ) @@ -144,7 +144,7 @@ pl - Polish => lang-pl.js pt - Portuguese => lang-pt.js es - Spanish => lang-es.js - el - Greek => => lang-el.js + el - Greek => => lang-el.js si - Slovenian => => lang-si.js and send it to me for inclusion in the official Snap! distribution. @@ -166,7 +166,7 @@ -Jens */ -/*global SnapTranslator*/ +/*global SnapTranslator*/ SnapTranslator.dict.si = { @@ -267,21 +267,21 @@ SnapTranslator.dict.si = { 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. @@ -1066,4 +1066,4 @@ SnapTranslator.dict.si = { 'zadnji', 'any': 'poljuben' -}; +}; diff --git a/lang-zh.js b/lang-zh.js index 378b5cf2..9e2a8a80 100644 --- a/lang-zh.js +++ b/lang-zh.js @@ -9,7 +9,7 @@ Copyright (C) 2012 by Jens Mönig - This file is part of Snap!. + 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 @@ -266,21 +266,21 @@ SnapTranslator.dict.zh = { 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. diff --git a/lists.js b/lists.js index 5b549477..71f8f65a 100644 --- a/lists.js +++ b/lists.js @@ -4,12 +4,12 @@ list data structure and GUI for SNAP! - written by Jens Mšnig and Brian Harvey + written by Jens Mönig and Brian Harvey jens@moenig.org, bh@cs.berkeley.edu - Copyright (C) 2013 by Jens Mšnig and Brian Harvey + Copyright (C) 2013 by Jens Mönig and Brian Harvey - This file is part of Snap!. + 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 diff --git a/locale.js b/locale.js index ec85cb26..11bbe92f 100644 Binary files a/locale.js and b/locale.js differ diff --git a/manifest.mf b/manifest.mf index e5d0c93e..353d47f0 100644 --- a/manifest.mf +++ b/manifest.mf @@ -11,4 +11,4 @@ widgets.js store.js xml.js scriptsPaneTexture.gif -snap_logo_sm.gif \ No newline at end of file +snap_logo_sm.gif diff --git a/morphic.js b/morphic.js index 9bbeaa02..e28ca663 100644 --- a/morphic.js +++ b/morphic.js @@ -5,12 +5,12 @@ a lively Web-GUI inspired by Squeak - written by Jens Mšnig + written by Jens Mönig jens@moenig.org - Copyright (C) 2013 by Jens Mšnig + Copyright (C) 2013 by Jens Mönig - This file is part of Snap!. + 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 @@ -591,9 +591,9 @@ rasterization can be deferred until the destination scale is known, taking advantage of SVG's ability for smooth scaling. If instead SVGs are to be rasterized right away, you can set the - + MorphicPreferences.rasterizeSVGs - + preference to . In this case dropped SVGs also trigger the droppedImage() event with a canvas containing a rasterized version of the SVG. @@ -602,12 +602,12 @@ canvas. Those are dispatched as - + droppedAudio(anAudio, name) droppedText(aString, name) events to interested Morphs at the mouse pointer. - + if none of the above content types can be determined, the file contents is dispatched as an ArrayBuffer to interested Morphs: @@ -637,7 +637,7 @@ keyboardReceiver property. - + Note that processKeyUp() is optional and doesn't have to be present if your morph doesn't require it. @@ -708,34 +708,34 @@ a stream of events, mostly by "bubbling" them up the text element's owner chain. Text elements' parents are notified about the following events: - + Whenever the user presses a key on the keyboard while a text element is being edited, a - + reactToKeystroke(event) is escalated up its parent chain, the "event" parameter being the original one received by the World. - + Once the user has completed the edit, the following events are dispatched: - + accept() - was pressed on a single line of text cancel() - was pressed on any text element Note that "accept" only gets triggered by single-line texte elements, as the key is used to insert line breaks in multi-line elements. Therefore, whenever a text edit is terminated by the user - (accepted, cancelled or otherwise), + (accepted, cancelled or otherwise), reactToEdit(StringOrTextMorph) is triggered. If the MorphicPreference's - + useSliderForInput - + setting is turned on, a slider is popped up underneath the currently edited text element letting the user insert numbers out of the given slider range. Whenever this happens, i.e. whenever the slider is moved @@ -751,7 +751,7 @@ method is invoked. That way complex Morphs containing text elements get a chance to react if something about the embedded text has been modified programmatically. These events are: - + layoutChanged() - sent from instances of TextMorph fixLayout() - sent from instances of StringMorph @@ -842,12 +842,12 @@ menu features Gui-Builder-wise functionality to directly inspect, take apart, reassamble and otherwise manipulate morphs and their contents. - + Instead of using the "customContextMenu" property you can also assign a more dynamic contextMenu by overriding the general - + userMenu() - + method with a customized menu constructor. The difference between the customContextMenu property and the userMenu() method is that the former is also present in development mode and overrides the @@ -936,11 +936,11 @@ seemingly dramatic slow-down of the Morphic system. Typically this occurs when updating the layout of complex Morphs with very many submorphs, e.g. when resizing an inspector window. - + An effective strategy to cope with this is to use the inherited - + trackChanges - + property of the Morph prototype for damage list housekeeping. The trackChanges property of the Morph prototype is a Boolean switch @@ -953,20 +953,20 @@ achieved by setting the trackChanges flag to false before propagating the layout changes, setting it to true again and then storing the full bounds of the surrounding morph. An an example refer to the - + moveBy() - + method of HandMorph, and to the fixLayout() - + method of InspectorMorph, or the - + startLayout() endLayout() - methods of SyntaxElementMorph in the Snap application. - + methods of SyntaxElementMorph in the Snap application. + (9) minifying morphic.js ------------------------ @@ -1025,7 +1025,7 @@ Ian Reynolds contributed backspace key handling for Chrome. Davide Della Casa contributed performance optimizations for Firefox. - - Jens Mšnig + - Jens Mönig */ // Global settings ///////////////////////////////////////////////////// @@ -2157,9 +2157,9 @@ Morph.uber = Node.prototype; bounds of the surrounding morph. An an example refer to the fixLayout() - + method of InspectorMorph, or the - + startLayout() endLayout() @@ -3975,7 +3975,7 @@ PenMorph.prototype.drawNew = function (facing) { /* my orientation can be overridden with the "facing" parameter to implement Scratch-style rotation styles - + */ var context, start, dest, left, right, len, direction = facing || this.heading; @@ -6602,7 +6602,7 @@ MenuMorph.prototype.addItem = function (labelString, action, hint, color) { /* labelString is normally a single-line string. But it can also be one of the following: - + * a multi-line string (containing line breaks) * an icon (either a Morph or a Canvas) * a tuple of format: [icon, string] @@ -8137,7 +8137,7 @@ MenuItemMorph.prototype.createLabel = function () { if (isString(this.labelString)) { this.label = this.createLabelString(this.labelString); } else if (this.labelString instanceof Array) { - // assume its pattern is: [icon, string] + // assume its pattern is: [icon, string] this.label = new Morph(); this.label.alpha = 0; // transparent this.label.add(icon = this.createIcon(this.labelString[0])); @@ -8837,7 +8837,7 @@ function ListMorph(elements, labelGetter, format) { last predicate to evaluate true when given the list element sets the given color. If no condition is met, the default color (black) will be assigned. - + An example of how to use fomats can be found in the InspectorMorph's "markOwnProperties" mechanism. */ @@ -9551,11 +9551,11 @@ HandMorph.prototype.processDrop = function (event) { find out whether an external image or audio file was dropped onto the world canvas, turn it into an offscreen canvas or audio element and dispatch the - + droppedImage(canvas, name) droppedSVG(image, name) droppedAudio(audio, name) - + events to interested Morphs at the mouse pointer */ var files = event instanceof FileList ? event diff --git a/morphic.txt b/morphic.txt index 5b475f5f..afa60967 100755 Binary files a/morphic.txt and b/morphic.txt differ diff --git a/objects.js b/objects.js index 7ebdccf3..71a945c3 100644 --- a/objects.js +++ b/objects.js @@ -6,12 +6,12 @@ based on morphic.js, blocks.js and threads.js inspired by Scratch - written by Jens Mšnig + written by Jens Mönig jens@moenig.org - Copyright (C) 2013 by Jens Mšnig + Copyright (C) 2013 by Jens Mönig - This file is part of Snap!. + 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 @@ -5080,7 +5080,7 @@ CellMorph.prototype.mouseClickLeft = function (pos) { /* I am a little window which observes some value and continuously updates itself accordingly. - + My target can be either a SpriteMorph or a VariableFrame. */ @@ -5337,7 +5337,7 @@ WatcherMorph.prototype.fixLayout = function () { // WatcherMorph events: -/* +/* // Scratch-like watcher-toggling, commented out b/c we have a drop-down menu WatcherMorph.prototype.mouseClickLeft = function () { diff --git a/readme.txt b/readme.txt index 1634cef6..0f11b5c5 100644 --- a/readme.txt +++ b/readme.txt @@ -21,4 +21,4 @@ SVG support limitations OS/X: turn LCD font smoothing off -Beware of third-party Chrome toolbars and iFrames \ No newline at end of file +Beware of third-party Chrome toolbars and iFrames diff --git a/sha512.js b/sha512.js index 03d1c4ef..f9cf3132 100644 --- a/sha512.js +++ b/sha512.js @@ -18,7 +18,7 @@ var hex_sha512 = (function (hex_sha512) { - var hexcase = 0; + var hexcase = 0; function hex_sha512(s) { diff --git a/snap.html b/snap.html index a760a865..2a0a175a 100755 --- a/snap.html +++ b/snap.html @@ -17,7 +17,7 @@ - 1datamapmany1data lists11110i1 contcatchtagcontcatchtag \ No newline at end of file +1datamapmany1data lists11110i1 contcatchtagcontcatchtag diff --git a/translating Snap.txt b/translating Snap.txt index c63b8a68..f4b5ff60 100755 --- a/translating Snap.txt +++ b/translating Snap.txt @@ -2,8 +2,8 @@ Translating BYOB4 / Snap! by Jens Moenig last changed: 12/10/16 -***************************** - +***************************** + At this stage of development, Snap! can be translated to any LTR language maintaining the current order of inputs (formal parameters in blocks). diff --git a/widgets.js b/widgets.js index ea01fa63..dbeeefc0 100644 --- a/widgets.js +++ b/widgets.js @@ -4,12 +4,12 @@ additional GUI elements for morphic.js - written by Jens Mšnig + written by Jens Mönig jens@moenig.org - Copyright (C) 2013 by Jens Mšnig + Copyright (C) 2013 by Jens Mönig - This file is part of Snap!. + 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 @@ -2978,4 +2978,4 @@ InputFieldMorph.prototype.drawRectBorder = function (context) { context.moveTo(this.width() - shift, this.edge); context.lineTo(this.width() - shift, this.height() - this.edge); context.stroke(); -}; \ No newline at end of file +}; diff --git a/xml.js b/xml.js index c8eaacb1..877fff7d 100644 --- a/xml.js +++ b/xml.js @@ -4,12 +4,12 @@ a simple XML DOM, encoder and parser for morphic.js - written by Jens Mšnig + written by Jens Mönig jens@moenig.org - Copyright (C) 2013 by Jens Mšnig + Copyright (C) 2013 by Jens Mönig - This file is part of Snap!. + 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 @@ -425,4 +425,4 @@ XML_Element.prototype.parseStream = function (stream) { this.contents += ch; } } -}; \ No newline at end of file +};